묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코딩으로 학습하는 GoF의 디자인 패턴
중재자 패턴에 관하여~
안녕하세요중재자 패턴을 공부하던 중에 궁금한 점이 있어서 질문하게되었습니다.1. 현재 강의에서는ConcreteMediator(FrontDesk)와 ColleagueA(Guest) , ColleagueB(CleaningService) ColleagueC(Restaurant) ... 이렇게 구성되는걸로 파악되는데현재 ConcreteMediator에 대한 인터페이스(Mediator)와 그 인터페이스를 참조하는 Colleague가 만들어 있지 않은데 굳이 만들지 않아도 괜찮은건가여?2.중재자 패턴을 ConcreteMediator에 모든 의존성을 다 가지게 만들어서 사용한다 라고 이해하면 되나요??
-
미해결스프링 핵심 원리 - 고급편
포인트컷과 어드바이스의 관계를 다음과 같이 이해하면 될까요?
프록시대리자를 통칭디자인 패턴프록시 패턴접근 제어캐싱(Caching), 지연 로딩(Lazy Loading)검증(Valid), 인증(Auth)데코레이터 패턴부가 기능로깅(Log)컨버터(Convertor), 포맷터(Formatter)스프링 프록시포인트 컷검증(Filter)만 담당어드바이스검증 이외의 모든 로직을 담당데코레이터 패턴 + 프록시 패턴(캐싱, 지연 로딩)어드바이저포인트 컷 1개 + 어드바이스 1개의 묶음위와 같이 이해하는게 맞게 이해하고 있는지 궁금합니다.
-
미해결스프링 핵심 원리 - 고급편
예시 코드가 실행하면 프록시로 등록이 안되네요ㅠㅠ
이 상태에서 계속해서 proxy로 ExamRepository랑 ExamService 가 proxy로 등록이 안돼서 로그 남기는 거랑 오류 복구 과정이 안됩니다 ㅠㅠ
-
미해결스프링 핵심 원리 - 고급편
쓰레드 로컬과 쓰레드 스택의 차이
동시성 문제를 해결하기 위해서 쓰레드 로컬이 각 쓰레드별 전용 저장공간을 만들어 데이터를 저장한다고 하셨는데 JVM의 메모리영역중에서 힙과 메소드영역은 모든 쓰레드가 공유하지만 각 쓰레드별로 스택공간이 할당된다고 알고 있습니다.그렇다면 쓰레드 로컬을 통해 데이터를 저장하면 각 쓰레드의 스택영역에 데이터가 저장되는 것인가요?만약 아니라면 쓰레드 로컬과 각 쓰레드의 스택영역에 저장되는 데이터들은 어떤 차이가 있는 것인지 궁금합니다.
-
미해결스프링 핵심 원리 - 고급편
@transaction
안녕하세요! 영한님 강의 정말 감사합니다!궁금한게있어요!그러면 Srping 에서 제공하는 트랜잭션이 default로 CGLIB 를 사용하는 것을 알겠습니다. 또한, 프록시 패턴을 통해서 inner method가 트랜잭션이 안탄다는것도 완벽 이해했습니다. ( self invocation )그럼 당연히 @Transactionalpublic void a () { // logic innerMethod()}private void innerMethod() {}와 같은 코드에서도 innerMetohd가 target 에 걸리는 바람에 트랜잭션이 끊기는 걸로 이해했는데요.맞나요!?
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
undo 메소드 작업중에서
예를 들어 LightOffCommand 클래스에서 Light를 가지고 있는데 undo() {light.on();}이렇게 사용하지 않는건 단일책임 원칙때문에 그런건가요?
-
미해결스프링 핵심 원리 - 고급편
@Slf4j
@Slf4j 어노테이션 의미를 잘 모르겠습니다.현재로그추적기 부분에서 사용되는 부분에서요
-
미해결스프링 핵심 원리 - 고급편
강의 자료 다운로드 안돼요
아이패드로 강의 시청하다가 강의자료 다운로드 누르고 다시 노트북으로 다운로드 받을려니깐 다운로드를 받을 수 있는 표시가 없어요
-
미해결스프링 핵심 원리 - 고급편
"3. 템플릿 메서드 패턴과 콜백 패턴" pdf > 38페이지
소스 수정 중에 "@RequireArgsCon..." 를 지워야 오류가 발생하지 않습니다. 어떤 원리때문에, 오류가 발생했을까요?
-
미해결스프링 핵심 원리 - 고급편
"3. 템플릿 메서드 패턴과 콜백 패턴" pdf > 38페이지 질문
- "참고로 TraceTemplate 를 처음부터 스프링 빈으로 등록하고 주입받아도 된다. 이 부분은 선택이다." 라는 문구가 있습니다. 이렇게 하려면 소스를 어떻게 수정해야 하나요?
-
미해결스프링 핵심 원리 - 고급편
setter대신 생정자에 @Lazy 어노테이션을 주었는데, 해당 방법도 올바른 방법일까요?
순환참조 방지용으로 생성자에 @Lazy 어노테이션을 추가했습니다.강의내용에는 properties에 다음과 같이 설정하라고 하셨는데spring.main.allow-circular-references=true 위 속성 대신 @Lazy 어노테이션을 사용했을때 문제가 발생할 수 있는 가능성이 있는 케이스가 있을까요?
-
미해결은종쌤과 자바로 디자인 패턴 쉽게 시작하기
수업내용을 개인 블로그에 정리하여 게시해도 될까요?
선생님 안녕하세요! 자바 강의부터 디자인패턴 강의까지 선생님의 수업으로 많은 것을 배우고 있는 수강생입니다. 선생님의 디자인패턴 강의를 복습차 정리하여 개인 블로그에 올려도 괜찮을지 문의드립니다. 허락하신다면, 강의에서 배운 디자인패턴 내용을 제가 이해한 부분 중심으로 정리하고, 예시코드 일부를 함께 게시하려고 합니다! (해당 강의 링크를 출처로 기재하겠습니다)혹시 강의 자료와 내용의 저작권과 관련된 문제가 생길 수 있다면 게시하지 않겠습니다!
-
미해결스프링 핵심 원리 - 고급편
newProxyInstance의 인자중 ClassLoader 질문
newProxyInstance(ClassLoader, Class<?>[] interfaces, InvocationHandler)newProxyInstance의 인자는 위와 같습니다.본 강의에서는 interfaces 배열에 하나의 interfaces만 들어있습니다. 그리고, interfaces배열에 딱 하나 들어있는 그 인터페이스 클래스에서 getClassLoader()로 클래스로더를 받아와서 이를 newProxyInstance를 호출할때 첫번째 인자로 사용하고 있습니다.Q1. 그렇다면 만약, interfaces에 하나가 아닌 여러개가 있다고 하면 클래스로더는 어디서 받아오나요? 임의의 인터페이스에서 골라서 받아오나요?Q2. 사실 클래스로더는 아무 클래스에서 받아와도 상관없는것이고. 관습적으로 interfaces 배열에 들어있는 임의의 인터페이스에서 받아오는것이다. 이런건가요?질문 읽어주셔서 감사합니다.
-
미해결스프링 핵심 원리 - 고급편
강의를 듣다 문득, ThreadLocal과 synchronized의 성능차이?가 궁금하여서 질문했습니다.
안녕하세요. 영한님!! ThreadLocal 쪽강의를 듣다가 궁금하게 생겨 질문하게 되었습니다.java에서 동시성을 해결할 수 있는 방법 중 하나인 synchronized가 있다고 알고 있습니다.ThreadLocal과 비교해볼 때 성능적으로 큰 차이가 있을까요??? 혹은 코드 취향에 따라 선택적으로 사용하면 될지 문득 궁금하여 질문을 남겼습니다.
-
미해결스프링 핵심 원리 - 고급편
강의에서 사실 의미없다고 모니터링툴을 쓰면 된다고 하는데
강의에서 사실 의미 없다고 모니터링 툴을 쓰면 된다고 하는데 어떤 툴을 써야하나요?진입 시점을 알려주는것보면 그냥 오류메시지를 전달하는 형태는 아닌 것 같고,센트리라는 것을 사용하면 저런형태로 커스터마이징 할 수 있는건가요?저번에 제가 도입해보려다가 무료기간이 1주일정도라서, 그냥 err메시지를 슬랙으로 전송해주는 모니터링만 구현했었거든요...말씀하시는 모니터링툴이 무엇인지 알고싶습니다 김영한 선생님!