묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
안녕하세요, 강의 순서 질문드립니다.
안녕하세요.헤드퍼스트 디자인 패턴 책을 읽으면서 백기선님 강의를 같이 들으려고 하는데요!혹시 강의 순서대로 수강하는걸 권장하시는지 상관없는지 질문드립니다.
-
미해결스프링 핵심 원리 - 고급편
@Around 에서 joinPoint.proceed()
@Around 설명 부분에 joinPoint.proceed() 호출 여부를 선택할 수 있다고 하셨는데 코드의 문제점을 설명해주실 떄 그런데 @Around 는 항상 joinPoint.proceed() 를 호출해야 한다. 라고 자료에 써져있는데.. 호출 여부를 선택할 수 있는거 아닌가요?!
-
미해결JSP WEB MVC Model2 Programming(중급 과정)
강의가 완강이안된것같은데 미완된부분 다른강사님이라도 촬영해주실수없나요?
강의구성을 보니까 게시판 crud까지만 강의하고 해당강사님께서 계약만료로 하차하신것같은데... 너무아쉽습니다. 많이 쓰이는게 model2방식인데 중간에 강의흐름이 끊겨서... 혹시 소프트캠퍼스의 다른강사님꼐서 원래 예정했던 커리큐럼중 빠진 뒷부분을 완성해주실수없으신지?
-
미해결은종쌤과 자바로 디자인 패턴 쉽게 시작하기
Strategy 패턴 예시 질문드립니다
Strategy 패턴 예시에서showGradeInfo 의 gradeEvaluation을 Factory로 구현하면 Factory 패턴 인가요 Strategy패턴인가요..?
-
해결됨스프링 핵심 원리 - 고급편
ThreadLocal.remove()
사용자A 가 thread-A 로 thread-A 전용 보관소에 사용자A 데이터를 저장했다가 ThreadLocal.remove() 를 하게 되면 thread-A 전용 보관소에 저장된 사용자A 데이터도 사라지게 되는 것 아닌가요..??
-
미해결스프링 핵심 원리 - 고급편
강의자료 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 영한님 강의를 수강 하고 있는 수강생 입니다. 다름이 아니라, 블로그 작성에 있어 영한님 강의자료 PDF 이미지를 사용해도 괜찮을까요?(PDF의 Diagram이 인용 가능한 라이센스인지 확인하고자 문의 드립니다!)
-
해결됨스프링 핵심 원리 - 고급편
try / catch 문 질문
1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]김영한님은 intellij에서 try / catch 문을 생성하면 catch 문 안에 자동으로 e.printStackTrace(); 가 나오는데, 저는 throw new Exception(e); 이 나옵니다.Configure Live Templates를 확인해보았지만, try catch문에 대한 설정을 찾지 못했습니다. 어떻게 하면 김영한 님처럼 catch문 안에 자동 생성되는 내용을 throw가 아닌, printStackTrace로 변경할 수 있는지 궁금합니다.
-
미해결스프링 핵심 원리 - 고급편
V2 ConcreteProxyController 빈 중복 에러 (SpringBoot V3)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요, 영한님! 먼저 이렇게 좋은 강의를 들을 수 있게 되어서 너무 기쁘고 감사드립니다.먼저 저는 SpringBoot 3.0.5 버전 사용중입니다.그렇기 때문에 어쩔 수 없이 @RequestMapping으론 컴포넌트 스캔 대상이 되지 않기 때문에 V2 컨트롤러에는 @RestController가 붙어있습니다.구체 클래스 기반 프록시 V2에 적용할 때, 프록시 컨트롤러를 빈으로 등록하려고 하니 아래처럼 빈이 중복으로 등록된다고 오류가 발생하였습니다.*************************** APPLICATION FAILED TO START *************************** Description: The bean 'orderControllerV2', defined in class path resource [me/iseunghan/hello/proxy/app/v2/concrete_proxy/ConcreteProxyConfig.class], could not be registered. A bean with that name has already been defined in file [/Users/iseunghan/workspaces/study/lecture-spring-advanced/proxy/build/classes/java/main/me/iseunghan/hello/proxy/app/v2/OrderControllerV2.class] and overriding is disabled. Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true Process finished with exit code 1 그래서 로그에 친절하게 나와있는대로 application.yaml에 아래 설정을 추가하니 정상적으로 실행 및 테스트가 되었습니다.application.yamlspring.main.allow-bean-definition-overriding: true혹시 이와 같은 방법 이외에는 다른 방법이 없을지 여쭤보고 싶습니다..! 감사합니다.
-
미해결스프링 핵심 원리 - 고급편
OrderControllerV1 인터페이스에서 @RequestParam 작성 관련 질문
OrderControllerV1 인터페이스에서 @RequestParam을 생략하면 안 되고 작성해줘야 한다고 하셨는데, '@RequestParam("itemId")'과 같이 "itemId"라는 속성도 생략하면 안 되는 것인가요? @RequestParam이 아닌 @RequestParam("itemId")로 적어주어야 하는 것인가요?
-
미해결스프링 핵심 원리 - 고급편
쓰레드, 쓰레드 전용 보관소 관련 질문
질문1. Thread-A가 살아있을 때까지 Thread-A 전용 보관소도 살아있는 것인가요? 그렇다면 쓰레드 풀을 사용하는 경우, Thread-A와 함께 Thread-A 전용 보관소도 영구적으로 살아있는 것인가요?질문2. ThreadLocal.remove()하는 것은 쓰레드 전용 보관소를 제거하는 것이 아니라, 보관소에 존재하는 값을 제거하는 것이 맞을까요?질문3. ThreadLocal<TraceId>에서 TraceId는 쓰레드 전용 보관소에 저장된 데이터의 타입이 TraceId라는 뜻인가요..?
-
해결됨스프링 핵심 원리 - 고급편
수업 방식 질문입니다.
테스트에 @Test 가 달린 코드만 작성하는게 아니라 테스트에 사용되는 다른 개발 코드들도 테스트 폴더 밑에 작성하고 계신데 이런걸 TDD로 봐도 될까요?
-
미해결스프링 핵심 원리 - 고급편
try문 안에 trace.begin() 넣기
OrderControllerV1.java @GetMapping("/v1/request") public String request(@RequestParam String itemId) { TraceStatus status = trace.begin("OrderController.request()"); //시작 로그 출력 try { orderService.orderItem(itemId); trace.end(status); //종료 로그 출력1 return "ok"; } catch (IllegalStateException e) { trace.exception(status, e); //종료 로그 출력2 throw e; } }trace.begin() 코드에서도 예외가 발생할 수 있으니 try문에 넣어야 한다고 하셨는데, 어떤 부분에서 예외가 발생하나요..?? 혹시 log.info()에서 예외가 발생하나요??
-
미해결스프링 핵심 원리 - 고급편
api 결과에 대한 질문
restapi로 댓글 crud를 할때에 대한 질문입니다. (crud 모두 restapi로 구현하였습니다.) create, update, delete에 대한 결과값으로 return new ResponseEntity<>(200); 을 하게 만들었습니다. 그리고 성공하면 클라이언트가 댓글리스트를 가져오는 api를 요청하도록 만들었습니다. 이렇게 만드는 게 맞는 건가요? ResponseEntity를 리턴하는 컨트롤러의 경우 @RestController말고 @Controller를 달아도 되던데, @RestController로 명시적으로 해주는 게 맞을가요? 자신이 쓴 댓글에는 수정 및 삭제를 보이게 하고 싶습니다. 다양한 방식이 있던데 일반적으로는 어떤 방식으로 하는지 궁금합니다.
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
스프링 시큐리티 WebSecurityConfigurerAdapter deprecated 대체 코드
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 책임 연쇄 패턴에서 스프링 시큐리티 예제코드 중에 WebSecurityConfigurerAdapter를 사용하는 코드가 있는데, 최신 버전을 사용하는 경우에 deprecated되어 사용하지 못하는 듯 합니다. < 대체코드 >@Configuration @EnableWebSecurity public class SecurityConfig { /** * WebSecurityConfigurerAdapter가 Spring Security 5.7.0-M2부터 deprecated 됨. * component-based security configuration으로의 사용자 전환 격려 위함. * 따라서 아래와 같이 bean으로 등록하여 사용. */ @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth.anyRequest().permitAll()); return http.build(); } } 이 경우, 기존 코드를 위의 코드로 작성하시면 됩니다. : )
-
미해결스프링 핵심 원리 - 고급편
하위 에러를 상위로 던진 후 나온 로그 보는 법
어느 강의인지가 기억이 안나서 문의드립니다! 기억나는 내용은 3단계(가장 하위)에서 익셉션 발생 시켜서 2단계에서 해당 익셉션을 받은 다음 다시 1단계로 던져서 나온 로그 보는 법에 대한 강의였던 걸로 기억합니다.
-
해결됨스프링 핵심 원리 - 고급편
댓글 구현에 대한 질문
댓글 구현 중에 질문이 있어서 남깁니다. 댓글 수정 기능 구현할 때, 댓글의 주인인지 아닌지를 검사해야하는데findByCommentIdAndUsername으로 한번에 가져오는 것 (조인)findByCommentId해서 게시자 지연로딩findByCommentIdWithUser해서 user도 같이 가져오도록 fetch join 어떤게 가장 좋은 방법일까요. 그리고 성공시에 클라이언트에게 어떤 정보를 리턴하는 게 가장 좋을까요?댓글을 리턴해주면 될까요?
-
미해결스프링 핵심 원리 - 고급편
어드바이스에 변수
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 안녕하세요, 궁금한 점이 있어 문의 드립니다. AOP를 적용하여, joinPoint.proceed(); 수행 시간을 재려고 하는데요,어드바이스 Method안에서, 시작 시간과, 종료시간을 모두 측정하거든요, 그럼 ThreadLocal을 사용하지 않아도 된다고 생각했습니다.(인스턴스 변수가 아니기 때문에) 제 판단이 맞을까요?- 클래스의 인스턴스 변수 만이 동시성 문제가 있는걸까요?
-
미해결스프링 핵심 원리 - 고급편
빈 후처리기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================섹션 7을 보면, 그냥 빈 후처리기가 있고, 스프링에서 제공하는 빈 후처리가 있는데, 그냥 민 후처리기는 스프링에서 제공하는 게 아닌건가요? 헷갈리네요ㅠㅠ
-
미해결스프링 핵심 원리 - 고급편
@Import 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 내용에 궁금한 점이있어 11. 스프링 AOP- 포인트컷.pdf 에 18 페이지에 있는, AtTargetAtWithinTest class에 대한 질문이 있어 글 남깁니다. @Import({AtTargetAtWithinTest.Config.class}) 를 쓰지 않고, static class Config 에 @TestConfiguration을 써도 동작하더라구요, 혹시 작동방식에있어서 차이가 있을까요?
-
해결됨스프링 핵심 원리 - 고급편
ProceedingJoinPoint에 대해 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 스프링 AOP 구현부분의 강의를 들으면서ProceedingJoinPoint가 어떻게 호출되는 객체에 대한 정보나, 실행되는 메서드의 정보에 대해 아는지에 대해 궁금해서 질문 올립니다.앞의 자동 프록시 등록 과정들을 설명들을 정리해보면,스프링 부트 자동 설정으로 "AnnotationAwareAspectJAutoProxyCreator" 이라는 자동 프록시 생성기가 빈 등록되어 있는데,이 자동 프록시 생성기가 @Aspect가 붙은 클래스를 보고 Advisor(어드바이저)로 변환해 저장해준다.그리고 이 Advisor(어드바이저)를 보고 포인트컷의 대상이 되는 것들을 "ProxyFactory"에 인자로 넘겨 자동으로 프록시를 생성하고 적용해준다.그런데 여기서 ProceedingJoinPoint는 왜, 무슨 연관관계가 있어서 타겟에 대한 정보들을 알고 있는지에 대해 궁금합니다.