일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 스프링 입문(무료)
- 스프링 mvc1 - 스프링 mvc
- 스프링 mvc2 - 검증
- @Aspect
- 자바의 정석 기초편 ch1
- 스프링 트랜잭션
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch13
- 람다
- 자바 고급2편 - io
- 스프링 mvc2 - 로그인 처리
- 스프링 mvc2 - 타임리프
- 자바 기초
- 자바 고급2편 - 네트워크 프로그램
- 자바로 키오스크 만들기
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch14
- 2024 정보처리기사 수제비 실기
- 자바 중급2편 - 컬렉션 프레임워크
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch5
- 데이터 접근 기술
- 자바의 정석 기초편 ch12
- 스프링 고급 - 스프링 aop
- 자바 중급1편 - 날짜와 시간
- 자바로 계산기 만들기
- 자바의 정석 기초편 ch9
- Today
- Total
목록스프링 로드맵 강의 정리/스프링 핵심원리 - 고급편 (14)
개발공부기록

출처 : 인프런 - 스프링 핵심 원리 - 고급편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 인터페이스 기반 프록시 - 적용1) V1 App에 LogTrace 적용(1) 프록시 사용프록시를 사용하면 기존 코드를 전혀 수정하지 않고 로그 추적 기능을 도입할 수 있음 (데코레이터 패턴 사용)V1예제의 클래스 의존관계를 살펴보면 인터페이스와 구현체를 생성하여 각 인터페이스의 구현체들은 각 계층의 인터페이스를 의존하고 있으며 클라이언트도 컨트롤러 인터페이스를 주입받고 있음런타임 객체에 의존관계도를 보면 클라이언트는 각 구현체들을 의존관계 주입을 받게 됨프록시를 도입하게 되면 각 계층의 인터페이스에 실제 구현체외에 프록시 클래스를 생성하여 동시에 구현하고, 런타임 시에는 클라..

출처 : 인프런 - 스프링 핵심 원리 - 고급편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 프로젝트 생성 및 예제 프로젝트 만들기1) 프로젝트 생성(1) 프로젝트 생성 및 설정 변경강의에서 제공된 프로젝트를 복사해서 사용자바 : 17스프링 부트 : 3.3.5dependency-management : 1.1.6gradle : 8.10.22) 예제 프로젝트 v1여기에서의 v1, v2, v3는 버전업이 되는 것은 아니고 실무에서 마주하게 되는 3가지 상황에 대한 예제라고 보면 되며 v1, v2, v3의 패키지를 각각 만들어서 코드들을 작성v1 - 인터페이스와 구현 클래스가 있고 스프링 빈으로 수동으로 직접 등록하는 상황(1) OrderRepositoryV1, OrderR..

출처 : 인프런 - 스프링 핵심 원리 - 고급편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 전략 패턴 - 시작1) 예제 만들기(1) ContextV1Test 생성템플릿 메서드 패턴에서 만들었던 완전히 동일한 테스트 코드로 클래스 이름과 패키지만 변경해서 사용패키지는 test하위 경로에 strategy 패키지를 생성하고 테스트 코드의 메서드명을 strategyV0로 변경package hello.advanced.trace.strategy;@Slf4jpublic class ContextV1Test { @Test void strategyV0() { logic1(); logic2(); } // 나머지 코드는 동일 ..

출처 : 인프런 - 스프링 핵심 원리 - 고급편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 템플릿 메서드 패턴 - 시작1) 템플릿 메서드 패턴의 필요성(1) 로그 추적기 도입 시도지금까지 요구사항도 만족하고 쓰레드로컬을 도입하여 동시성문제도 제거한 로그추적기를 프로젝트에 도입하려고하는데, 개발자들의 반대에 부딪힘그 이유를 로그 추적기 도입전과 도입 후의 코드를 보고 분석해보기(2) 로그 추적기 도입 전 코드 - V0V0 버전인 Controller와 Service의 코드만 보면 매우 간단하게 비즈니스 로직을 수행하는 코드만 있음@RestController@RequiredArgsConstructorpublic class OrderControllerV0 { priv..

출처 : 인프런 - 스프링 핵심 원리 - 고급편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 필드 동기화 - 개발1) 정식버전 개발(1) 프로토타입 버전의 문제점앞서 개발한 프로토타입의 로그 추적기는 다음 로그를 출력할 때 트랜잭션ID와 level을 동기화를 하는 방법으로 해당 정보를 가지고 있는 TraceId를 파라미터로 넘기도록 구현하였음동기화는 성공했지만 로그를 출력하는 모든 메서드에 TraceId를 파라미터에 추가해야하는 문제가 있었는데 이를 해결하는 정식 버전을 개발(2) LogTrace 인터페이스향후 다양한 구현체로 변경할 수 있도록 LogTrace 인터페이스를 생성로그 추적기를 위한 최소한의 기능을하는 메서드들을 선언public interface LogT..

출처 : 인프런 - 스프링 핵심 원리 - 고급편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 프로젝트 생성 및 프로젝트 만들기1) 프로젝트 생성 (1) ProjectGradleJava 17Spring Boot 3.3.5(2) MetadataGroup - helloArtifact - advancedPackaging - Jar(3) DependenciesSpring WebLombok2) 프로젝트 만들기V0학습을 위한 간단한 예제로 상품을 주문하는 프로세스로 가정하고 일반적인 웹 애플리케이션에서 Controller -> service -> Repository로 이어지는 흐름을 최대한 단순하게 작성(1) 리포지토리V0상품 저장 시 1초정도의 소요시간이 걸리고, 상품 id가 ..