Spring boot

Spring boot

스프링 핵심원리 7 [빈 후처리기]

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 이나 컴포넌트 스캔으로 스프링 빈을 등록하면, 스프링은 대상 객체를 생성하고 스프링 컨테이너 내부의 빈 저장소에 등록한다. 그리고 이후에는 스프링 컨테이너를 통해 등록한 스프링 빈을 조회해서 사용하면 된다...

Spring boot

스프링 핵심원리 6 [스프링에서의 프록시: proxyFactory]

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를 적용하려면 어떻게 해야할까? 두 기..

Spring boot

스프링 핵심원리 5 [동적 프록시 기술]

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 위의 글과 이어지는 내용입니다. 리플렉션 이전 글에서 프록시를 사용해서 기존 코드를 변경하지 않고, 로그 추적기라는 부가 기능을 적용할 수 있었다. 그런데 문제는 대상 클래스 수 만큼 로그 추적을 위한 프록시 클래스를 만들어야 한다는 점이다. 로그 추적을 위한 프..

Spring boot

스프링 핵심원리 4 [프록시 패턴과 데코레이터 패턴]

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 - 인터페..

Spring boot

스프링 핵심원리 3 [스프링 디자인 패턴]

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에서 로직과 관련없는, 로그 코드..

Spring boot

자바 제네릭(generic)

제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미 제네릭의 장점 1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다. 2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다. 3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다. 아래와 같이, 클래스, 인터페이스, 추상 클래스 등을 정의할 때, 타입을 임의의 제네릭으로 둔 뒤, 사용 시점에서 타입을 정의하여 사용하는 것이 가능하다. // 제네릭 클래스 class SimpleClass { private E element;// 제네릭 타입 변수 void set(E element) {// 제네릭 파라미..

Spring boot

자바 익명함수와 람다식

익명 함수 먼저 익명 함수라는 것은 말 그대로 이름이 없는 함수를 말한다. 익명 함수를 사용하는 이유는 나중에 다시 부를 일이 없으므로 프로그램 안에서 일시적으로 한 번만 사용되고 버려져도 되는 객체일 때 사용하는 것이다. 일회성이기 때문에 메모리 관리에서 효과적이다. 이는 함수를 정의하고 해당 함수를 변수에 저장하여 다른 곳에서 사용할 수 있도록 하는 기능을 제공한다. 익명 함수는 주로 다음과 같은 상황에서 유용하다. 함수를 변수에 할당하고 재사용해야 할 때: 익명 함수는 함수를 변수에 할당하여 다른 곳에서 호출하거나 전달할 수 있습니다. 이는 코드의 중복을 줄이고 유지보수성을 향상시키는 데 도움이 됩니다. 또한 다른 함수의 파라미터로 전달할 수 도 있습니다. 이벤트 처리: 익명 함수는 이벤트 처리기로..

Spring boot

스프링 핵심원리 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 위의 글에서 만든 예제를 develop 하기 위해 쓰레드 로컬 사용에 대해 정리하겠습니다. 우선은, 필드 동기화를 통해 이전의 문제를 해결할 것인데요, 미리 말씀드리면 이 방법은 동시성 문제가 발생하게 됩니다. 따라서 먼저 ..

코앤미
'Spring boot' 카테고리의 글 목록 (2 Page)