묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
형들 이거 왜 안돼??
형들 나 코린인데 html로 웹 페이지 하나 만들려고 html이랑 css랑 javascript 공부중인데 서로 연결도 잘 되고 나름 걱정 없었는데 폰트 다운 받을 라고 했더니 갑자기 사이트 이상해지고 (사진 첨부함) 검색 해봐도 나갔는 일은 없는것 같음 그래도 3시간 정도 서핑 해봤는데 전혀 해결 법이 없어서 형들한테 물어 보는 거야... 그리고 비쥬얼 스튜디오에 유튜브에서 코딩할 떄 쓰는 폰트어썸 코드 따라 써봤는데 인식이 안된는지 실행해 봐도 써놓은 글자만 보이고 이미지는 아예 안보여... 이거 끝까지 다 읽은 형님 있으시다면 감사드리고 제발 해결 법좀 알려 주세욥 ㅜ
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
iosteam 헤더 파일 중복
바쁘실 텐데 죄송합니다! 추가 질문 하겠습니다 ㅠㅠ 저번 수업에서 분할 컴파일을 할때, 헤더파일이 중복되지 않게 하기 위해 #ifndef ~ #endif를 사용하는 것을 배웠습니다. 하지만, 본 코드에서 Time.h 파일에서 iosteam 헤더 파일은 #ifndef ~ #endif 범위 밖에 있고, Time.h 헤더 파일과 Main 파일에 중복으로 사용되었습니다. 그럼에도 코드가 정상적으로 작동하는데 그 이유가 궁금합니다!!
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
함수 뒤 세미콜론
좋은 강의 영상 항상 감사합니다!!! 다름 아니라 func.cpp 파일의 함수 내용을 작성하는 부분에서 어느 함수는 끝나고 ; 을 붙여주고 또 어느 함수는 붙이지 않은 것이 궁금해서 질문 드립니다! #include "time.h" Time::Time() { hours = mins = 0; } Time::Time(int h, int m) { hours = h; mins = m; } void Time::addHours(int h) { hours += h; }; void Time::addMins(int m) { mins += m; hours += mins / 60; mins %= 60; }; Time Time::operator+(Time& t) { Time sum; sum.mins = mins + t.mins; sum.hours = hours + t.hours; sum.hours += sum.mins / 60; sum.mins %= 60; return sum; }; void Time::show() { std::cout << "시간 : " << hours << std::endl; std::cout << "분 : " << mins << std::endl; }
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
클래스
- 학습 관련 질문을 선생님 여기 강의에서 fish_name이 생성을 하자마자 초기화가 됐다고 말씀을 하셨는데 초기화가 무슨 뜻인지 알 수 있을까여?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
Authentication에서 hoc를 이용하는 방식
선생님 제가 작성한 코드가 redux saga로 처음에 작성을 해서 어찌저찌 이 강의를 보고 hoc방식으로 Auth를 완성했어요. 그런데 nodemon으로 돌렸을 때 로그인 페이지가 살짝 보였다가 / 로 가게되는데 배포하고도 이러는거 아닌지 걱정이 되어요.. 제가 작성한 코드가 비효율적으로 작성해서 느리게 작동하는걸까요? 아니면 배포할 때 속도를 확 줄일수 있는 방법이 있을까요? AWS배포 예정이고 선생님의 docker강의까지 들을 예정이에요!! 항상 감사합니다. 그리고 이 에러가 어떤의미인지 혹시 아신다면 답변 부탁드립니다. 계속 뜨는거는 아니고 한번씩 떠요ㅠ Error: EPERM: operation not permitted, rename 'C:\Users\eunbi\Desktop\MyProject\First_0706\server\sessions\fc5m5xAHkKWmlzodyTnHOmjFpDei5VX4.json.1627197637' -> 'C:\Users\eunbi\Desktop\MyProject\First_0706\server\sessions\fc5m5xAHkKWmlzodyTnHOmjFpDei5VX4.json'
-
미해결실전! 스프링 데이터 JPA
Spring Data Jpa를 사용한 테스트 문의
안녕하세요.JpaRepository를 사용해서 테스트를 할 때 방법이 맞는지 궁금해서 문의드립니다. 1. saveMember = memberRepository.save(member)2. findMember = memberRepository.findById(saveMember.getId()) 이렇게 테스트코드를 짜면, 실제로 DB에서 find하는 것이 아니라 영속컨텍스트에서 해당 엔티티를 찾아서 반환하는 것으로알고 있습니다. 만약에 insert 쿼리가 나가는 것과 실제 DB에서 find하기 위해서 아래와 같이 테스트 코드를 짰는데요. 1. saveMember = memberRepository.save(member)추가) memberRepository.flush()추가) em.clear()2. findMember = memberRepository.findById(saveMember.getId()) memberRepository의 flush() 메소드를 통해 DB에 반영하고, 엔티티매니저의 clear()를 통해 영속 컨텍스트를 비웠습니다. 질문)여기서 의문점은 JpaRepository에는 clear() 메소드가 없어서 영속 컨텍스트를 비우기 위해선 엔티티매니저를 테스트 클래스에서 주입받아야 했습니다.JpaRepository를 사용해서 영속 컨텍스트를 비울 수 있는 방법은 없나요???
-
해결됨스프링 핵심 원리 - 기본편
컴포넌트 스캔 필터 강의 관련
컴포넌트 스캔 필터 부분을 수강중입니다. 아래 코드 처럼 클래스를 ststic으로하는 특별한 이유가 있는것인지 궁금합니다 @Configuration @ComponentScan( includeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class), excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class) ) static class ComponentFilterAppConfig { } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]터미널에서 gradlew build를 입력했는데 다음과 같은 오류가 나옵니다. 혹시나 해서 cmd창으로 gradlew build를 입력해봤지만 다음과 같은 오류가 나오네요
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
생성한 예측모델로부터 최적 조건을 구하는 방법이 있을까요?
안녕하세요 선생님, 강의를 보던 중 질문이 있어 이렇게 글 남깁니다. 1. 회귀 실습에서 여러 가지 모델로 성능을 측정해 보았습니다. 각각의 방법에서, MAE, MSE 등의 지표로 모델의 정확도를 측정합니다. 그런데 혹시, 이렇게 만든 모델들을 이용해서, 최고의 결과를 도출하는 지표들을 역으로 얻어내는 방법이 있을까요? 가령, XGBoost로 자전거 대여에 관한 모델 A을 만들었다고 가정해보겠습니다. 이 모델 A가 "B대 만큼의 자전거 대여량" 이 존재할 수 있다고 예측하였다고 한다면, 이 B를 도출해 내는 조건 C (여기엔 train input으로 주어졌던 holiday, workingday, weather, temp 등의 값이 들어있을 것으로 생각합니다.) 를 구해낼 수 있을까요? 만약 가능하다면, scikit-learn 이나 XGboost 등의 framework에서 내장함수가 존재하는지 알고 싶습니다.(구글링을 열심히 해 보았는데 관련 내용을 찾지 못하였습니다. 심지어 이렇게 조건들을 역으로 도출해내는 과정을 어떻게 부르는지 조차 모르겠습니다ㅠ) 2. 로컬에서, bike sharing demand 예제의 마지막 쉘에서 XGboost의 문제인지 쉘이 작동하지 않습니다. 버전에 따라 ndarray로 바꾸라는 말씀을 해주셔서 다음과 같이 코드를 고쳐보았지만, 실행되지 않습니다. 실습환경은 m1 mac, miniforge3 (m1에 anaconda가 호환되지 않을 때 설정한 환경이라 miniforge3를 이용중입니다.), python=3.9, numpy=1.22.3, pandas=1.4.2, xgboost=1.6.0 (1.5.x, 1.6.1 모두 작동하지 않았습니다.) 입니다. 혹시 제가 ndarray로 변환하라는 말씀을 제가 잘못 이해한것인지, 아니면 xgboost의 문제인건지 궁금합니다. </> from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor from xgboost import XGBRegressor from lightgbm import LGBMRegressor # 랜덤 포레스트, GBM, XGBoost, LightGBM model 별로 평가 수행 rf_reg = RandomForestRegressor(n_estimators=500, verbose=10) gbm_reg = GradientBoostingRegressor(n_estimators=500, verbose=1) xgb_reg = XGBRegressor(n_estimators=500, verbose=0) lgbm_reg = LGBMRegressor(n_estimators=500, verbose=1) for model in [rf_reg, gbm_reg, xgb_reg, lgbm_reg]: # XGBoost의 경우 DataFrame이 입력 될 경우 버전에 따라 오류 발생 가능. ndarray로 변환. get_model_predict(model, np.array(X_train.values), np.array(X_test.values), np.array(y_train.values), np.array(y_test.values),is_expm1=True) <에러 메세지> --------------------------------------------------------------------------- XGBoostError Traceback (most recent call last) /Users/h/Documents/dev/machine_learning/PerfectGuide-master/5장/5.9 Regression실습-Bike Sharing Demand.ipynb 셀 27 in <cell line: 11>() 9 lgbm_reg = LGBMRegressor(n_estimators=500, verbose=1) 11 for model in [rf_reg, gbm_reg, xgb_reg, lgbm_reg]: 12 # XGBoost의 경우 DataFrame이 입력 될 경우 버전에 따라 오류 발생 가능. ndarray로 변환. ---> 13 get_model_predict(model, np.array(X_train.values), np.array(X_test.values), np.array(y_train.values), np.array(y_test.values),is_expm1=True) /Users/h/Documents/dev/machine_learning/PerfectGuide-master/5장/5.9 Regression실습-Bike Sharing Demand.ipynb 셀 27 in get_model_predict(model, X_train, X_test, y_train, y_test, is_expm1) 6 def get_model_predict(model, X_train, X_test, y_train, y_test, is_expm1=False): ----> 7 model.fit(X_train, y_train) 8 pred = model.predict(X_test) 9 if is_expm1 : File ~/miniforge3/envs/tf/lib/python3.9/site-packages/xgboost/core.py:532, in _deprecate_positional_args.<locals>.inner_f(*args, **kwargs) 530 for k, arg in zip(sig.parameters, args): 531 kwargs[k] = arg --> 532 return f(**kwargs) File ~/miniforge3/envs/tf/lib/python3.9/site-packages/xgboost/sklearn.py:931, in XGBModel.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks) 880 """Fit gradient boosting model. 881 882 Note that calling ``fit()`` multiple times will cause the model object to be (...) 928 Use `callbacks` in :py:meth:`__init__` or :py:meth:`set_params` instead. ... [bt] (6) 7 _ctypes.cpython-39-darwin.so 0x0000000105202a80 PyCFuncPtr_call + 1176 [bt] (7) 8 python3.9 0x0000000104414acc _PyObject_MakeTpCall + 348 [bt] (8) 9 python3.9 0x000000010452090c call_function + 724 긴 글 읽어주셔서 감사합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
Hbase 에러 관련
안녕하세요! 탐색 파일럿 실행 4단계를 수행하다가 Workflow에서 에러가 발생해서 원인을 찾아가다보니 SmartCar_Drive_Info 테이블을 조회할 때 아래같은 에러가 발생하더라구요.. 그런데 저 테이블은 Hbase의 DriverCarInfo 테이블을 가지고 만들었던거 같아서 hbase shell로 들어가 DriverCarInfo 테이블을 scan 해보니 아래와 같은 에러가 발생했습니다. 전에 Hbase에 테이블 생성하고 Hue에서 확인했을 때는 잘 적재되어 있었는데 갑자기 이런 에러가 발생하네요.. 어떻게 해결해야할까요??
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치시 오류 질문입니다...
- 강의 내용외의 개인 질문은 받지 않아요. (개인 과제, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..)- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수고많으십니다. 기존에 리눅스가 깔려있었는데, 재설치하는 과정에서 계속 오류가 발생합니다... STEP 2 vivado 설치 명령어 ./Xilinx_Unified_2020.2_1118_1232_Lin64.bin -- -a 3rdPartyEULA,WebTalkTerms,XilinxEULA -b Install -c /root/.Xilinx/install_config.txt 를 입력하면, 아래와 같은 오류가 나타나며 설치가 되지 않습니다. mobaxterm을 재설치했는데, 재설치시 비밀번호를 새롭게 설정하는 과정도 나타나지 않았고 아래 2번째 사진처럼 실행시 로컬서버연결로 나타나는데(윈도우의 네트워크센터를 보면 본래 있던 리눅스가 사라짐) 이게 문제일까요... 해당 오류로 구글링해도 유용한 정보를 찾지 못해서 혹시 해결방안이 있다면 알려주시면 감사하겠습니다 ㅠㅠ
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 편의 메서드 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 양방향 연관관계 대해 이해가 잘 안되서 질문 드립니다. 양방향 연관관계는 연관관계 주인 생성 시 자식 객체에 값을 동시에 넣어 생성할 때 편하게 쓰려고 만든게 맞습니까? 만약 연관관계 주인을 생성하고 굳이 동시에 값을 넣어주지 않는 상황이라면 양방향 연관관계는 안쓰는건가요? 예를 들어 게시물의 추천이나 댓글 같은 경우 게시물이 작성될 때 댓글을 쓸 상황도 없고 쓸 이유도 없지만 멤버의 팀 같은 경우에는 멤버 생성 시 바로 어떤 팀에 들어갈 수도 있기때문에 사용하는거라 이해해도 괜찮을까요? 추가로 혹시 실무에서는 양방향 연관관계랑 단방향 연관관계를 사용하는 비율이 어느정도 될까요? 두서없이 질문해서 죄송합니다 글이 이해가 안되신다면 댓글 남겨주시면 감사하겠습니다.
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
hooks 에러?? 문제 질문드립니다.
검색 했을 경우 hooks 문제인 것 같은데 어느 부분의 문제인지를 모르겠습니다. 이 전 까지는 문제가 없어서 드래그 앤 드랍 강의에서 건든 Lists.js 파일에서 뭔가 잘 못 된것 같은데 간단한 오류인 건지 찾을 수가 없어서 문의 드립니다. 아래는 Lists.js 의 전 파일이며 저의 깃허브 링크는 https://github.com/gardenia0917/clone-coding-list/tree/main/react-todo-app 여기 입니다. 감사합니다 ㅜㅜ import React from "react"; import { DragDropContext, Droppable, Draggable } from "react-beautiful-dnd"; export default function List({ todoData, setTodoData }) { const handleCompleteChange = (id) => { let newTodoData = todoData.map((data) => { if (data.id === id) { data.completed = !data.completed; } return data; }); setTodoData(newTodoData); }; const handleClick = (id) => { let newTodoData = todoData.filter((data) => data.id !== id); console.log("newTodoData", newTodoData); setTodoData(newTodoData); }; const handleEnd = (result) => { if (!result.destination) return; const newTodoData = todoData; const [reorderedItem] = newTodoData.splice(result.source.index, 1); newTodoData.splice(result.destination.index, 0, reorderedItem); setTodoData(newTodoData); }; return ( <div> <DragDropContext onDragEnd={handleEnd}> <Droppable droppableId="to-dos"> {(provided) => ( <div {...provided.droppableProps} ref={provided.innerRef}> {todoData.map((data, index) => ( <Draggable key={data.id} draggableId={data.id.toString()} index={index} > {(provided, snapshot) => ( <div key={data.id} {...provided.draggableProps} ref={provided.innerRef} {...provided.dragHandleProps} className={`${ snapshot.isDragging ? "bg-gray-400" : "bg-gray-100" } flex items-center justify-between w-full px-4 py-1 my-2 text-gray-600 bg-grey-100 border rounded`} > <div className="items-center"> <input type="checkbox" defaultChecked={false} onChange={() => handleCompleteChange(data.id)} /> <span className={ data.completed ? "line-through" : undefined } > {data.title} </span> </div> <div className="items-center"> <button className="px-4 py-2 float-right" onClick={() => handleClick(data.id)} > x </button> </div> </div> )} </Draggable> ))} {provided.placeholder} </div> )} </Droppable> </DragDropContext> </div> ); }
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
단위 테스트는 통과하는데 전체 테스트를 통과를 못하고 있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 호돌맨님 강의를 들으면서 저도 따라 만들고 있는데.. 강의의 PostController Test에 해당 하는 부분에서 문제가 발생 했습니다. 각각의 단위 테스트는 통과를 하는데 Controller 전체를 돌려보면 문제가 발생하네요 @BeaforEach를 써서 clean 메소드도 구현 한 상태이고 @BeforeEachvoid clean() { writeRepository.deleteAll();} 각 각 테스트에 테스트가 끝나면 queryDSL로 DB를 삭제해주는 쿼리를 넣어줘도 같은 문제가 일어납니다. 디버깅을 해봤을때 class WriteService 부분의 (강의 PostService에 해당) public List<WriteResponse> getList(WriteSearch writeSearch) { List<WriteResponse> collect = writeRepository.getList(writeSearch).stream() .map(write -> new WriteResponse(write) ) .collect(Collectors.toList()); return collect; 이 부분에 writeId가 기존의 값에 +2가 되서 나오고 있습니다. (원래 writeId에 30이 출력 되어야 하는데 writeId 32가 출력이 됩니다. 단위 테스트 할때는 제대로 출력이 되는것을 확인 했습니다. ) 오늘 내내 고쳐보려고 했는데 해결 방법이 안보이네요... 어떻게 고쳐야 할지 도와주시면 감사하겠습니다. * 추가 Pageable pageable = PageRequest.of(page, 5, Sort.Direction.DESC, "writeId"); 이 부분을 구현 하기전에 원래 write_Id였는데 writeId로 고쳤습니다. 이 부분에 문제가 생겼는지 쿼리를 보면 writeId로 생성 하는것이 아닌 write_Id로 테이블을 만들어졌습니다. 해당 문제도 writeId로 고치고 나서 발생하는 것 같습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리액트 CSR SSR 로그인 세션,토큰 관련 질문 드립니다.
안녕하세요 제가 리액트같은 SPA는 인증하려면 토큰 방식밖에 없다고 들었는데 제로초님의 노드버드 강좌는 Next.js(리액트SSR)이기 때문에 세션쿠키 기반 인증도 가능한건가요? 질문사항을 조금 더 정리해보았습니다. 1. CSR 리액트 = 토큰 인증방식만 가능 2. SSR 리액트(next.js) = 세션/쿠키, 토큰 인증 모두 가능 이렇게 이해해도 괜찮을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
pre() 메소드에 관한 질문이 있습니다!
안녕하세요 선생님!덕분에 너무 재밌게 강의 잘 듣고 있습니다. 사실 예전에 듣다가 너무 어려워서 도중에 그만두고다시 기초부터 공부하고 왔더니 이제는 이해가 쏙쏙돼서 너무 재밌네요! 이번 수업에서 mongoose에서 제공하는 pre() 메소드에 대해서 설명해 주셨는데, pre() 메소드에 들어가는 첫번째 인자를 'save'라고 주신 것은 register router에서 user.save() 메소드를 주셨기 때문에 save라고 똑같이 적어주신 건가요? 그리고 User.js에 있는 userSchema.pre()가 어떻게 index.js의 register라우터의 user.save() 메소드 위로 위치하게 되는 것인지 조금 이해가 되지 않습니다. 나중에 다른 라우터에서도 save() 메소드를 사용할 수도 있을텐데 그렇게 여러개의 save() 메소드를 사용하게 되는 경우에는 어떻게 pre()메소드가 딱 register 라우터의 save()메소드 위로 위치하게 되는것인지 궁금합니다. 감사합니다~!
-
미해결모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)
질문
데코레이터로 디스크립터의 기능을 구현할 수 있나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 프록시 내부 호출에 대해 질문이 있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 트랜잭션 프록시의 내부 호출 강의를 듣고 궁금한 점이 생겨서 질문드립니다. class Service { public void external() { internal(); } @Transactional public void internal() { return; } } 위와 같은 상황에서 외부에서 external()을 호출하면 -> 프록시가 호출되고 -> 트랜잭션이 적용되지 않은 상태로 실제 external()이 호출되고 -> this.internal()이 호출될 때는 프록시를 통하지 않고 호출했기 때문에 트랜잭션 AOP가 적용되지 않는다고 이해했습니다그럼 두 메서드 모두 @Transactional이 붙어있을 때 내부 호출을 하면 어떻게 될까 궁금해서 확인을 해보니 그때는 internal() 메서드를 호출할 때 트랜잭션이 적용이 되더라구요 ! 모든 내부 호출 시 this.XXXX() 호출이기 때문에 트랜잭션 AOP가 적용되지 않는다고 생각했는데 잘못 이해했나봐요 @Slf4j static class BasicService2 { @Transactional public void tx() { log.info("call tx"); final boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); log.info("tx active = {}", txActive); this.tx2(); } @Transactional public void tx2() { log.info("call tx2"); final boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); log.info("tx active = {}", txActive); } } 이렇게 하면 tx()에서 this로 tx2()를 직접 호출해도 트랜잭션이 적용되더라구요 프록시 방식의 AOP에서 내부 호출 시 AOP가 적용되지 않는다는 것은 모든 Spring AOP의, 모든 내부 호출이 그렇다는게 아니라 트랜잭션 AOP에서, 트랜잭션이 적용되지 않은 채로 호출된 메서드에서, 내부 호출을 할 때만 AOP가 적용되지 않는다는 뜻일까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
npm이 설치가 안됩니다..
ㅇ 루트 디렉토리에서 npm이 설치가 안되요 client는 되는데요. 선생님 도와주세요제발요
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
jquery 관련 질문
김영한님의 백엔드 로드맵도 보고 스프링 로드맵도 보았는데 jquery관련 강의는 없던데 1. 김영한님의 로드맵을 따라가는데는 jquery지식이 없어도 되는건가요?? 2.아니면 요즘 백엔드 개발자들이 jquery를 알 필요가 없는건가요?? 3. 만약 둘 다 아니라면 jquery 공부를 해야한다는건데 인프런에 jquery관련 강의를 처음부터 끝까지들어야만 김영한님의 로드맵을 따라갈수 있는건지 아니면 특정 자주 사용되는 부분만 공부하고 로드맵을 따라가면 되는건지 궁금합니다. 4.만약 특정부분만 알아도 로드맵을 따라가도 되는거라면 어느쪽 jquery부분을 공부하는게 좋을까요??