일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바의 정석 기초편 ch12
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch14
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch1
- 스프링 입문(무료)
- 자바의 정석 기초편 ch7
- 게시글 목록 api
- @Aspect
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch4
- 스프링 mvc1 - 스프링 mvc
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch11
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch3
- 스프링 db1 - 스프링과 문제 해결
- 2024 정보처리기사 시나공 필기
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch5
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch9
- 스프링 db2 - 데이터 접근 기술
- 2024 정보처리기사 수제비 실기
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch2
- 스프링 mvc2 - 로그인 처리
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch8
- Today
- Total
목록인프런 - 스프링 완전정복 코스 로드맵 (98)
나구리의 개발공부기록
출처 : 인프런 - 스프링 핵심 원리 - 고급편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용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가 ..
출처 : 인프런 - 스프링 DB 2편 데이터 접근 핵심 원리 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-21. 트랜잭션 전파 활용1 - 예제 프로젝트 시작지금 까지 배운 트랜잭션 전파에 대한 내용을 실제 예제를 통해 학습1) 비즈니스 요구 사항회원을 등록하고 조회회원에 대한 변경이력을 추적할 수 있도록 회원 데이터가 변경될 때 변경 사유에 대한 이력을 DB LOG 테이블에 남겨야함예제를 단순화 하기 위해서 회원 등록시에만 DB LOG 테이블에 남기는 것으로 진행2) MemberJPA를 통해 관리하는 회원 엔터티package hello.springtx.p..
출처 : 인프런 - 스프링 DB 2편 데이터 접근 핵심 원리 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-21. 스프링 트랜잭션 전파1 - 커밋, 롤백1) BasicTxTest기본적으로 트랜잭션을 실행하는 예제 코드new DataSourceTransactionManager를 스프링 빈으로 등록하고 PlatformTransactionManager를 주입받으면 DataSourceTransactionManager가 주입됨(1) commit(), rollback() 메서드txManager.getTransaction(new DefaultTransactionAttr..
출처 : 인프런 - 스프링 DB 2편 데이터 접근 핵심 원리 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-21. 트랜잭션 옵션 소개1) @Transaction - 코드, 설명 순서에 따라 약간 수정됨전체 옵션 예시public @interface Transactional { String value() default ""; String transactionManager() default ""; Class[] rollbackFor() default {}; Class[] noRollbackFor() default {}; ..
출처 : 인프런 - 스프링 DB 2편 데이터 접근 핵심 원리 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-21. 스프링 트랜잭션 소개 및 프로젝트 생성스프링 DB1편 스프링과 문제 해결 - 트랜잭션 강의에서 배운 내용을 간략히 복습https://nagul2.tistory.com/308https://nagul2.tistory.com/3091) 스프링 트랜잭션 추상화각각의 데이터 접근 기술들은 트랜잭션을 처리하는 방식에 차이가 있었음JDBC 기술을 사용하다가 JPA 기술로 변경하게 되면 트랜잭션을 사용하는 코드도 모두 함께 변경했어야 하는데 스프링이 제공하는..
출처 : 인프런 - 스프링 DB 2편 데이터 접근 핵심 원리 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-2** 여러가지 데이터 접근 기술을 실무에 적용할 때 고민거리나 팁에 대해서 설명하는 강의1. 스프링 데이터 JPA 예제와 트레이드 오프(1) 스프링 데이터 JPA 예제의 고민중간에서 JpaItemRepositoryV2가 어댑터 역할을 해준 덕분에 ItemService가 사용하는 ItemRepository 인터페이스를 그대로 유지할 수 있었고 ItemService의 코드를 변경하지 않을 수 있었음이런 추상화된 구조를 맞추기 위해서 중간에 어댑터가 들어..