묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
synchronized 와 @Transactional
안녕하세요 재고관리시스템 강의를 복습하며 내용을 정리하는 중 의문이 생겨 질문을 드립니다. 가장 처음에 application code 레벨에서만 동시성을 해결하기 위해 syncrhonized 를 사용할 경우 해당 메서드에는 @Transactional 을 붙여서는 안된다고 설명해 주셨습니다. 실제로 이를 붙일 경우, 동시에 decrease 메서드가 호출되고 해당 로직 내부로 들어가는 것이 가능함을 확인하였습니다. 그런데 여기서 제가 의문이 들었던 것이 있습니다. @Transacitonal 을 사용할 경우 Spring AOP 에 의해 매 번 다른 proxy 인스턴스를 통해 target object 로의 호출을 하게 됩니다. proxy 객체에 대한 lock 은 서로 다른 프록시들 사이에 공유되지 않는다고 하더라도, 내부적으로 호출되는 target 객체에 대한 decrease 메서드는 결국 동일한 객체에 대한 호출을 하기 때문에, 공유되는 lock 에 대한 경쟁이 일어나는 것이 아닌가 생각이 들었습니다. 최종적으로는 target 객체에 대한 synchronized 메서드를 호출하는 것이라면, 단 하나의 스레드만 임계 영역에 들어갈 수 있어야 할 것 같은데, 그렇지 않음을 확인하였습니다. 왜 이런 일이 일어나는 것인지 이해가 잘 되지 않습니다 ㅠㅠ 이와 관련해서 어떤 키워드로 공부해보면 좋을지 추천 가능할까요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
Concat 문의
선생님 안녕하세요? 우선 좋은 강의 감사드립니다 ㅎㅎ 6.24 시험을 위해 막 듣기 시작했습니다 ㅎㅎ오늘 강의 중 concat 개념이 나왔는데,df = pd.concat([x_train, y_train[‘income’], axis = 1) 로 합치는 것 예시가 있었습니다. 여기서 궁금한 게 id 기준으로 합쳐야 할텐데, x_train의 id 컬럼과 y_train의 id 컬럼이 같은 것끼리 연결하라는 말이 없어서, 그냥 자동으로 id에 따라 연결해주는건지 궁금합니다.
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
onClick
해당 부분 22번째 줄에서 onClick에서 navigate함수를 호출할 때 arrow function이 아니라 그냥 navigate("/home") 함수를 호출하였더니 QS 바꾸기 버튼을 눌렀을 때 페이지가 그냥 뒤로 갔습니다. 왜 그런 것인가요?
-
미해결
노트북을 바꾸고 새로운 노트북에서 coreApplication을 실행시켰는데 작동이 잘 안되네요 ㅠㅠ
밑에가 실행화면으로 뜨는데 정상적으로 작동되는게 맞나요..? 로그나 이런것도 하나도 안떠서요 ㅠㅠ:: Spring Boot :: (v3.0.5)2023-05-29T16:56:15.643+09:00 INFO 7152 --- [ main] hello.core1.Core1Application : Starting Core1Application using Java 17.0.7 with PID 7152 (/Users/user/Desktop/core1/build/classes/java/main started by user in /Users/user/Desktop/core1)2023-05-29T16:56:15.646+09:00 INFO 7152 --- [ main] hello.core1.Core1Application : No active profile set, falling back to 1 default profile: "default"2023-05-29T16:56:16.205+09:00 INFO 7152 --- [ main] hello.core1.Core1Application : Started Core1Application in 0.908 seconds (process running for 6.616)Process finished with exit code 0
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
현재 서버 문제있나요?
http://practice.codebootcamp.co.kr/graphql <-- 해당 사이트 접속이 불가하고위 사이트의 mutation 코드도 어제까지는 됐는데 오늘은 실행이 안되네요
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
콜백함수
16번째 줄에서 setSearchParams를 중괄호로 감싸지 않는 이유가 혹시 실행하려는 statement가 하나라서 그런 건가요?
-
미해결대세는 쿠버네티스 [Helm편]
내 챠트 배포
안녕하세요 강사님컨테이너 이미지 같은 경우빌드 후에docker push 명령으로 docker hub에 올리는데요이것처럼 수업과정 중에helm create mychart 로 내 챠트를 생성한 후에mychart를 docker push 명령처럼 artifact hub에 배포하는 과정은 없나요?혹시 수업과정 중에 해당내용이 있었다면 어떤 섹션에 있었는지 알려주시면 감사하겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿 예외 처리 - 오류 페이지 작동 원리
예외 처리와 오류 페이지.pdf 파일에서printErrorInfo 함수 내부에 첫번째 log.info 찍을때 er= 이라고 되어있습니다. 강의상으로나 정상적으로 동작하려면 {}로 들어가야할듯합니다..
-
해결됨홍정모의 따라하며 배우는 C언어
3-9, 고정 너비 정수형 질문
안녕하세요 강의를 복습하며 헷갈리는 점이 있어 질문드립니다.고정 너비 정수형은 시스템이 다른 운영체제에서도 코드가 정상적으로 작동할 수 있도록 정수 자료형의 크기를 미리 지정한 정수형으로 이해했습니다. 이러한 정의가 맞을까요?printf 함수에서 고정 너비 정수형으로 선언된 변수(i32)의 형식지정자를 쓸 때 예시를 보며 살짝 헷갈리는 점이 생겼습니다.예시에서 3가지 경우를 교수님께서 보여주셨는데, 전부 출력이 동일하게 나왔습니다.만약 int type을 2바이트로 인식하는 시스템에 예제의 코드를 사용하면 메크로를 쓰지 않은 첫 번째, 두 번째 예시는 오류가 발생하는 건가요? 맞다면 sigend int 형식 변환자에 속하는 %d와 32비트로 고정된 변수 i32의 크기가 서로 맞지 않아서 일까요? 아직 이해가 부족해서 용어들이 적절히 쓰였는지 모르겠습니다.답변 감사합니다~!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
RequestMappingHandlerAdapter 흐름 질문
안녕하세요.영한님 질문 드립니다. RequestMappingHandlerAdapter 동작 방식ArgumentResolver 호출컨트롤러 파라미터가 @RequestBody Object 인 경우에는 HttpMessageConverter 사용컨트롤러 파라미터가 @ModelAttribute, @PathVariable, @RequestParam 인 경우에는 ConversionService 사용 으로 이해하면 될까요? 감사합니다.
-
미해결
61강 spring security 환경 설정 에러
강사님께서 주신 교재대로 따라 쳤는데 .NoSuchBeanDefinitionException 에러가 뜹니다... 구글링도 해봤지만 아직 제 수준에서는 문제의 해결점을 찾기 쉽지 않습니다..이유가 뭘까요?
-
미해결스프링 시큐리티
spring boot 2.7버전에서 customUserDetailsServce 등록에 관해 질문드립니다
안녕하세요 선생님, 강의에서는 customUserDetailsServce를 configure메서드를 오버라이드 해서 적용하고 있는데요, 새로운 버전에서는 어떻게 적용을 명시적으로 하는지 잘 모르겠고 지정을 하지 않아도 잘 동작하더라구요.제가 찾아봤을 때는 @Bean CustomUserDetailsService customUserDetailsService() { return new CustomUserDetailsService(); }이런식으로 Bean으로 등록하면 된다는데, https://docs.spring.io/spring-security/reference/servlet/authentication/passwords/user-details-service.htmlSecurityconfig파일에서 Bean으로 등록하지 않아도 자동으로 customUserDetailsService가 동작하더라구요 그래서 제가 나름대로 결론 내린 것은 userDetailsService를 구현하는, 빈으로 등록된 커스텀 userDetailsService가 있다면 폼 로그인 방식에서 자동으로 커스텀 userDetailsService를 사용한다. userDetailsService를 구현하는 여러 커스텀 userDetailsService가 잇으면 configuration에서 명시적으로 지정해주어야 한다. 라고 이해했는데, 혹시 제가 잘못 생각한 부분이 있다면 알려주시면 감사하겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Service에 @Transactional(readOnly=true)는 필수적으로 넣어줘야 하는 것인지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]클래스 영역에서 트랜잭션을 걸어두는 것이 필수적인 내용인지 궁금합니다! 실무에서도 마찬가지로 동일하게 클래스 영역에 사용해서 적용하게 되는 것일까요?저는 작업할 때 수정이 필요한 메서드에만 @Transactional을 선언해줬었는데 이렇게 처리했던 부분들이 잘못된 부분이었던 것인지 고민이 되어 질문드리게 되었습니다.정리하자면클래스단에서 무조건 '@Transactional(readOnly=true)' 를 작성해주는 것을 권장한다면 그렇게 해야하는 이유가 무엇인지 궁금하고,무조건 걸었을 때 매번 '@Transactional(readOnly=true)' 값을 작성해줘야 하는데 매번 작성하지 않을 수 있는 방법은 없을지 궁금합니다.감사합니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
테스트 메모리 릭킹 관련 질문
아래와 같은 테스트를 진행했고 이는 강의코드에도 유사하게 발생할 것으로 보입니다. 서버 컨텐츠단에서 패킷 모아 보내기 기능까지 구현500개의 더미 클라이언트가 S_Chat 을 송신서버는 비주얼 스튜디오에서 디버그모드로 구동더미클라이언트는 exe모드로 실행과 종료를 반복 이때 클라이언트의 connect, disconnect가 잦아지면서 서버의 메모리 점유율이 내려가지 않는 현상이 궁금해서 그러는 것이지, 고쳐달라고 떼쓰는게 아닙니다. 이런 현상은 강의 코드에서도 발생할 것으로 보이는데요. 혹시 알고 계신 이유가있다면 그것만 말씀해주시면 됩니다.
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
함수와 메서드 < 강의내용 10분에서 오류요!
강의에서 출력결과가 마지막에 5050 으로나오는데 저는 1로만 출력이 안되네요 제가 뭘 잘못한거겠죠? ㅠㅠ 어디가 잘못된지 모르겠어요 선생님!
-
미해결윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정
jdbc6 다운로드가 안되네요~
제공해주신 소스코드로 했는데도 maven에서 jdbc6를 못가져옵니다. 수업이 전혀 안되네요~
-
해결됨GameFi - 블록체인 Web3 게임 만들기
SnowmenSales.sol 파일의 buyItem 함수에 대해 질문이 있습니다.
token 을 transfer 할 때, address(this) 와 owner() 의 개념이 혼란스럽습니다.buyer 가 amount 를 지불 할 때 owner() 를 쓴 것은 이해가 됩니다만,snowmenToken.safeTransferFrom(buyer, owner(), amount);아래처럼 snowmenGame 에서 token 을 transfer 할 때는 address(this) 를 사용하는 이유는 무엇인가요?snowmenGame.safeTransferFrom(address(this), buyer, tokenId, quantity, "");owner() 와 address(this) 가 각각 주소값이 다른데, snowmenGame.safeTransferFrom 을 할 때, address(this) 대신에 owner() 를 하면 안되는 걸까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
테스트 중 메모리 릭킹 현상 질문
테스트를 하다 릭킹(leaking) 현상이 생기는게 궁금해서 여쭙습니다.테스트 과정서버 컨텐츠단에서 0.15~0.25초 단위로 패킷을 모아보내는 기능까지 구현더미 클라이언트에서 500명이 C_Chat 패킷을 보내도록 구현서버만 Visual Studio의 디버그 모드로 실행 (메모리 진단을 위해)클라이언트는 빌드된 exe파일로 접속클라이언트만 반복적으로 종료하고 다시 실행이때 서버쪽 메모리 점유율이 올라가기만 합니다.Disconnect() 가 분명히 불리고 소캣을 Clean(), Shutdown()을 하는데 (심지어 Dispose()도 넣음 다 돌아가는거 확인)서버 메모리 점유율이 260메가 막 그러네요, 아무리 오래 두고 봐도 CG가 정리할 생각을 안해요 ㅠㅠ다 깔끔하게 정리할 욕심은 없습니다. 다만 릭킹은 안좋아보여서요.이거 이유가 있을까요? 참고로 리스너쪽 대기 큐 150 이상으로 설정해야 테스트가 잘됐습니다, (강의시 backlog 인자)
-
해결됨ElasticSearch Essential
인덱스 일별 생성에 대한 질문
안녕하세요, 강의와 책 모두 구매해서 잘듣고있습니다. 추가 질문사항이 있어서 다시 글 작성해봅니다..인덱스 템플릿을 생성했고 setting, mappin 템플릿을 만들어 두개의 component template을 조합해서 logs라는 템플릿을 생성했습니다. 제가 원하는 인덱스는 logs-2023.05.28-000001 logs-2023.05.29-000002 logs-2023.05.29-000003( 50기가 넘어가면 같은 날짜라도 인덱스 만들어지고 뒤에 숫자 증가) 이런 모양을 기대했는데요, mapping은 다이나믹 템플릿으로 필드를 매핑시켰고, setting에서는 rollover_alias를 logs로 주었고 템플릿을 생성할때 index_patterns는 logs*로 주었습니다. policy에서도 hot으로 max_promary shard size 50기가 설정했구요다 만들고나서 아래와같이 아래와 같이 첫 인덱스를 주었습니다. 생성은 logs-2023.05.29-00001 이렇게 원하는대로 우선 생성되긴했습니다.PUT %3Clogs-%7Bnow%2Fd%7D-000001%3E{ "aliases": { "logs": { "is_write_index": true } }}그런데 다음날 보니 인덱스는 생성되지 않고 저 인덱스에 계속 쌓이더라구요...또 뭐 추가할 사항이 있을까요..??감사합니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
질문 : for문 풀어쓰기
안녕하세요. 선생님.해당 강의에서 아래와 같이 for문을 한줄에 쓰셨는데요?FAANG=["META", "AMZN", "AAPL", "NFLX", "GOOGL"] faang_list=[fdr.DataReader(code,'2015','2021')["Close"]for code in FAANG] df_faang=pd.concat(faang_list, axis=1)제가 이걸 으로 시작해서 두줄에 풀어썼는데... 에러가 나는데요? 혹시 어느 부분이 잘못되었는지 알려주실수 있으신지요?FAANG=["META", "AMZN", "AAPL", "NFLX", "GOOGL"] for code in FAANG: faang_list=[fdr.DataReader(code,'2015','2021')["Close"]for code in FAANG] df_faang=pd.concat(faang_list, axis=1)