https://codenme.tistory.com/115 스프링 핵심원리-고급편 6 [@Aspect AOP] https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고 codenme.tistory.com 위의 글과 이어지는 내용입니다. AOP 소개 - 핵심 기능과 부가 기능 핵심 기능과 부가 기능 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다. 핵심 기능은 해당 객체가 제공하는 고유의 기능이다. 예를 들어서 OrderService 의 핵심 ..
https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 codenme.tistory.com 위의 글과 이어지는 내용 입니다. 스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저 ( Advisor )를 만들어서 스프링 빈으로 등록하면 된다. 그러면 나머지는 앞서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록..
https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 스프링 핵심원리-고급편 3 [스프링 디자인 패턴] https://codenme.tistory.com/105 스프링 핵심 codenme.tistory.com 위의 글에서 이어지는 내용입니다. @Bean 이나 컴포넌트 스캔으로 스프링 빈을 등록하면, 스프링은 대상 객체를 생성하고 스프링 컨테이너 내부의 빈 저장소에 등록한다. 그리고 이후에는 스프링 컨테이너를 통해 등록한 스프링 빈을 조회해서 사용하면 된다...
https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 스프링 핵심원리-고급편 3 [스프링 디자인 패턴] https://codenme.tistory.com/105 스프링 핵심원리-고급편 2 [쓰레드 로컬을 통한 동시성 문제해결] https://codenme.tistory.com/104 스프링 codenme.tistory.com 위의 글과 이어지는 내용입니다. 프록시 팩토리 - 소개 이전 글에서 설명했던 동적 프록시를 사용할 때 문제점을 다시 확인해보자. 문제점 인터페이스가 있는 경우에는 JDK 동적 프록시를 적용하고, 그렇지 않은 경우에는 CGLIB를 적용하려면 어떻게 해야할까? 두 기..
https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 스프링 핵심원리-고급편 3 [스프링 디자인 패턴] https://codenme.tistory.com/105 스프링 핵심원리-고급편 2 [쓰레드 로컬을 통한 동시성 문제해결] https://codenme.tistory.com/104 스프링 codenme.tistory.com 위의 글과 이어지는 내용입니다. 리플렉션 이전 글에서 프록시를 사용해서 기존 코드를 변경하지 않고, 로그 추적기라는 부가 기능을 적용할 수 있었다. 그런데 문제는 대상 클래스 수 만큼 로그 추적을 위한 프록시 클래스를 만들어야 한다는 점이다. 로그 추적을 위한 프..
https://codenme.tistory.com/108 스프링 핵심원리-고급편 3 [스프링 디자인 패턴] https://codenme.tistory.com/105 스프링 핵심원리-고급편 2 [쓰레드 로컬을 통한 동시성 문제해결] https://codenme.tistory.com/104 스프링 핵심원리-고급편 1 [예제 생성 및 요구사항 이해] https://www.inflearn.com/cours codenme.tistory.com 위의 글과 이어지는 내용입니다. 실무에선, 다양한 상황에서 프록시를 적용해야하는 상황이 존재한다. 다양한 상황에서 프록시 사용법을 이해하기 위해 다음과 같은 기준으로 기본 예제 프로젝트를 만들어보자. 예제 프로젝트 만들기 예제는 크게 3가지 상황으로 만든다. v1 - 인터페..
https://codenme.tistory.com/105 스프링 핵심원리-고급편 2 [쓰레드 로컬을 통한 동시성 문제해결] https://codenme.tistory.com/104 스프링 핵심원리-고급편 1 [예제 생성 및 요구사항 이해] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B3%A0%EA%B8%89%ED%8E%B8/dashboard 스프링 핵 codenme.tistory.com 위 글에 이어지는 내용입니다. 템플릿 메서드 패턴 where: 쓰레드 로컬로 동시성 문제 해결 로그 추적기에서 여전히 남은 문제점- Controller에서 로직과 관련없는, 로그 코드..
https://codenme.tistory.com/104 스프링 핵심원리-고급편 1 [예제 생성 및 요구사항 이해] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B3%A0%EA%B8%89%ED%8E%B8/dashboard 스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 codenme.tistory.com 위의 글에서 만든 예제를 develop 하기 위해 쓰레드 로컬 사용에 대해 정리하겠습니다. 우선은, 필드 동기화를 통해 이전의 문제를 해결할 것인데요, 미리 말씀드리면 이 방법은 동시성 문제가 발생하게 됩니다. 따라서 먼저 ..