반응형
01. 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
1. 프로젝트 환경설정
- 프로젝트 생성
- 라이브러리 살펴보기
- View 환경설정
- 빌드하고 실행하기
2. 스프링 웹 개발 기초
- 정적 컨텐츠
- MVC와 템플릿 엔진
- API
3. 회원 관리 예제 - 백엔드 개발
- 비즈니스 요구사항 정리
- 회원 도메인과 리포지토리 만들기
- 회원 리포지토리 테스트 케이스 작성
- 회원 서비스 개발
- 회원 서비스 테스트
4. 스프링 빈과 의존관계
- 컴포넌트 스캔과 자동 의존관계 설정
- 자바 코드로 직접 스프링 빈 등록하기
5. 회원 관리 예제 - 웹 MVC 개발
- 회원 웹 기능 - 홈 화면 추가]
- 회원 웹 기능 - 등록
- 회원 웹 기능 - 조회
6. 스프링 DB 접근 기술
- H2 데이터베이스 설치
- 순수 Jdbc
- 스프링 통합 테스트
- 스프링 JdbcTemplate
- JPA
- 스프링 데이터 JPA
7. AOP
- AOP가 필요한 상황
- AOP 적용
02. 스프링 핵심 원리 - 기본편 v2023-12-04
1. 객체 지향 설계와 스프링
- 이야기 - 자바 진의 추운 겨울과 스프링의 탄생 15:22
- 스프링이란? 14:30
- 좋은 객체 지향 프로그래밍이란? 21:21
- 좋은 객체 지향 설계의 5가지 원칙(SOLID) 18:14
- 객체 지향 설계와 스프링 08:29
2. 스프링 핵심 원리 이해1 - 예제 만들기
- 프로젝트 생성
- 비즈니스 요구사항과 설계
- 회원 도메인 설계
- 회원 도메인 개발
- 회원 도메인 실행과 테스트
- 주문과 할인 도메인 설계
- 주문과 할인 도메인 개발
- 주문과 할인 도메인 실행과 테스트
3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용
- 새로운 할인 정책 개발
- 새로운 할인 정책 적용과 문제점
- 관심사의 분리
- AppConfig 리팩터링
- 새로운 구조와 할인 정책 적용
- 전체 흐름 정리
- 좋은 객체 지향 설계의 5가지 원칙의 적용
- IoC, DI, 그리고 컨테이너
- 스프링으로 전환하기
4. 스프링 컨테이너와 스프링 빈
- 스프링 컨테이너 생성
- 컨테이너에 등록된 모든 빈 조회
- 스프링 빈 조회 - 기본
- 스프링 빈 조회 - 동일한 타입이 둘 이상
- 스프링 빈 조회 - 상속 관계
- BeanFactory와 ApplicationContext
- 다양한 설정 형식 지원 - 자바 코드, XML
- 스프링 빈 설정 메타 정보 - BeanDefinition
5. 싱글톤 컨테이너
- 웹 애플리케이션과 싱글톤
- 싱글톤 패턴
- 싱글톤 컨테이너
- 싱글톤 방식의 주의점
- @Configuration과 싱글톤
- @Configuration과 바이트코드 조작의 마법
6. 컴포넌트 스캔
- 컴포넌트 스캔과 의존관계 자동 주입 시작하기
- 탐색 위치와 기본 스캔 대상
- 필터
- 중복 등록과 충돌
7. 의존관계 자동 주입
- 다양한 의존관계 주입 방법
- 옵션 처리
- 생성자 주입을 선택해라!
- 롬복과 최신 트랜드
- 조회 빈이 2개 이상 - 문제
- @Autowired 필드 명, @Qualifier, @Primary
- 애노테이션 직접 만들기
- 조회한 빈이 모두 필요할 때, List, Map
- 자동, 수동의 올바른 실무 운영 기준
8. 빈 생명주기 콜백
- 빈 생명주기 콜백 시작
- 인터페이스 InitializingBean, DisposableBean
- 빈 등록 초기화, 소멸 메서드 지정
- 애노테이션 @PostConstruct, @PreDestroy
9. 빈 스코프
- 빈 스코프란?
- 프로토타입 스코프
- 프로토타입 스코프 - 싱톤 빈과 함께 사용시 문제점
- 프로토타입 스코프 - 싱톤 빈과 함께 사용시 Provider로 문제 해결
- 웹 스코프
- request 스코프 예제 만들기
- 스코프와 Provider
- 스코프와 프록시
04. 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
1. 웹 애플리케이션 이해
- 웹 서버, 웹 애플리케이션 서버
- 서블릿
- 동시 요청 - 멀티 쓰레드
- HTML, HTTP API, CSR, SSR
- 자바 백엔드 웹 기술 역사
2. 서블릿
- 프로젝트 생성
- Hello 서블릿
- HttpServletRequest - 개요
- HttpServletRequest - 기본 사용법
- HTTP 요청 데이터 - 개요
- HTTP 요청 데이터 - GET 쿼리 파라미터
- HTTP 요청 데이터 - POST HTML Form
- HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트
- HTTP 요청 데이터 - API 메시지 바디 - JSON
- HttpServletResponse - 기본 사용법
- HTTP 응답 데이터 - 단순 텍스트, HTML
- HTTP 응답 데이터 - API JSON
- 정리
3. 서블릿, JSP, MVC 패턴
- 회원 관리 웹 애플리케이션 요구사항
- 서블릿으로 회원 관리 웹 애플리케이션 만들기
- JSP로 회원 관리 웹 애플리케이션 만들기
- MVC 패턴 - 개요
- MVC 패턴 - 적용
- MVC 패턴 - 한계
- 정리
4. MVC 프레임워크 만들기
- 프론트 컨트롤러 패턴 소개
- 프론트 컨트롤러 도입 - v1
- View 분리 - v2
- Model 추가 - v3
- 단순하고 실용적인 컨트롤러 - v4
- 유연한 컨트롤러1 - v5
- 유연한 컨트롤러2 - v5
- 정리
5. 스프링 MVC - 구조 이해
- 스프링 MVC 전체 구조
- 핸들러 매핑과 핸들러 어댑터
- 뷰 리졸버
- 스프링 MVC - 시작하기
- 스프링 MVC - 컨트롤러 통합
- 스프링 MVC - 실용적인 방식
- 정리
6. 스프링 MVC - 기본 기능
- 프로젝트 생성
- 로깅 간단히 알아보기
- 요청 매핑
- 요청 매핑 - API 예시
- HTTP 요청 - 기본, 헤더 조회
- HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form
- HTTP 요청 파라미터 - @RequestParam
- HTTP 요청 파라미터 - @ModelAttribute
- HTTP 요청 메시지 - 단순 텍스트
- HTTP 요청 메시지 - JSON
- HTTP 응답 - 정적 리소스, 뷰 템플릿
- HTTP 응답 - HTTP API, 메시지 바디에 직접 입력
- HTTP 메시지 컨버터
- 요청 매핑 헨들러 어뎁터 구조
- 정리
7. 스프링 MVC - 웹 페이지 만들기
- 프로젝트 생성
- 요구사항 분석
- 상품 도메인 개발
- 상품 서비스 HTML
- 상품 목록 - 타임리프
- 상품 상세
- 상품 등록 폼
- 상품 등록 처리 - @ModelAttribute
- 상품 수정
- PRG Post/Redirect/Get
- RedirectAttributes
- 정리
05. 스프링 MVC2
1. 타임리프 - 기본 기능
- 프로젝트 생성
- 타임리프 소개
- 텍스트 - text, utext
- 변수 - SpringEL
- 기본 객체들
- 유틸리티 객체와 날짜
- URL 링크
- 리터럴
- 연산
- 속성 값 설정
- 반복
- 조건부 평가
- 주석
- 블록
- 자바스크립트 인라인
- 템플릿 조각
- 템플릿 레이아웃1
- 템플릿 레이아웃2
- 정리
2. 타임리프 - 스프링 통합과 폼
- 프로젝트 설정
- 타임리프 스프링 통합
- 입력 폼 처리
- 요구사항 추가
- 체크 박스 - 단일1
- 체크 박스 - 단일2
- 체크 박스 - 멀티
- 라디오 버튼
- 셀렉트 박스
- 정리
3. 메시지, 국제화
- 프로젝트 설정
- 메시지, 국제화 소개
- 스프링 메시지 소스 설정
- 스프링 메시지 소스 사용
- 웹 애플리케이션에 메시지 적용하기
- 웹 애플리케이션에 국제화 적용하기
- 정리
4. 검증1 - Validation
- 검증 요구사항
- 프로젝트 설정 V1
- 검증 직접 처리 - 소개
- 검증 직접 처리 - 개발
- 프로젝트 준비 V2
- BindingResult1~2
- FieldError, ObjectError
- 오류 코드와 메시지 처리1~6
- Validator 분리1~2
- 정리
5. 검증2 - Bean Validation
- Bean Validation - 소개
- Bean Validation - 시작
- Bean Validation - 프로젝트 준비 V3
- Bean Validation - 스프링 적용
- Bean Validation - 에러 코드
- Bean Validation - 오브젝트 오류
- Bean Validation - 수정에 적용
- Bean Validation - 한계
- Bean Validation - groups
- Form 전송 객체 분리 - 프로젝트 준비 V4
- Form 전송 객체 분리 - 소개
- Form 전송 객체 분리 - 개발
- Bean Validation - HTTP 메시지 컨버터
- 정리
6. 로그인 처리1 - 쿠키, 세션
- 로그인 요구사항
- 프로젝트 생성
- 홈 화면
- 회원 가입
- 로그인 기능
- 로그인 처리하기 - 쿠키 사용
- 쿠키와 보안 문제
- 로그인 처리하기 - 세션 동작 방식
- 로그인 처리하기 - 세션 직접 만들기
- 로그인 처리하기 - 직접 만든 세션 적용
- 로그인 처리하기 - 서블릿 HTTP 세션1
- 로그인 처리하기 - 서블릿 HTTP 세션2
- 세션 정보와 타임아웃 설정
- 정리
7. 로그인 처리2 - 필터, 인터셉터
- 서블릿 필터 - 소개
- 서블릿 필터 - 요청 로그
- 서블릿 필터 - 인증 체크
- 스프링 인터셉터 - 소개
- 스프링 인터셉터 - 요청 로그
- 스프링 인터셉터 - 인증 체크
- ArgumentResolver 활용
- 정리
8. 예외 처리와 오류 페이지
- 프로젝트 생성
- 서블릿 예외 처리 - 시작
- 서블릿 예외 처리 - 오류 화면 제공
- 서블릿 예외 처리 - 오류 페이지 작동 원리
- 서블릿 예외 처리 - 필터
- 서블릿 예외 처리 - 인터셉터
- 스프링 부트 - 오류 페이지1
- 스프링 부트 - 오류 페이지2
- 정리
9. API 예외 처리
- API 예외 처리 - 시작
- API 예외 처리 - 스프링 부트 기본 오류 처리
- API 예외 처리 - HandlerExceptionResolver 시작
- API 예외 처리 - HandlerExceptionResolver 활용
- API 예외 처리 - 스프링이 제공하는 ExceptionResolver1
- API 예외 처리 - 스프링이 제공하는 ExceptionResolver2
- API 예외 처리 - @ExceptionHandler
- API 예외 처리 - @ControllerAdvice
- 정리
10. 스프링 타입 컨버터
- 프로젝트 생성
- 스프링 타입 컨버터 소개
- 타입 컨버터 - Converter
- 컨버전 서비스 - ConversionService
- 스프링에 Converter 적용하기
- 뷰 템플릿에 컨버터 적용하기
- 포맷터 - Formatter
- 포맷터를 지원하는 컨버전 서비스
- 포맷터 적용하기
- 스프링이 제공하는 기본 포맷터
- 정리
11. 파일 업로드
- 파일 업로드 소개
- 프로젝트 생성
- 서블릿과 파일 업로드1
- 서블릿과 파일 업로드2
- 스프링과 파일 업로드
- 예제로 구현하는 파일 업로드, 다운로드
- 정리
06. 스프링 DB 1편 - 데이터 접근 핵심 원리 v2023-11-27
1. JDBC 이해
- 프로젝트 생성
- H2 데이터베이스 설정
- JDBC 이해
- JDBC와 최신 데이터 접근 기술
- 데이터베이스 연결
- JDBC 개발 - 등록
- JDBC 개발 - 조회
- JDBC 개발 - 수정, 삭제
- 정리
2. 커넥션풀과 데이터소스 이해
- 커넥션 풀 이해
- DataSource 이해
- DataSource 예제1 - DriverManager
- DataSource 예제2 - 커넥션 풀
- DataSource 적용
- 정리
3. 트랜잭션 이해
- 트랜잭션 - 개념 이해
- 데이터베이스 연결 구조와 DB 세션
- 트랜잭션 - DB 예제1 - 개념 이해
- 트랜잭션 - DB 예제2 - 자동 커밋, 수동 커밋
- 트랜잭션 - DB 예제3 - 트랜잭션 실습
- 트랜잭션 - DB 예제4 - 계좌이체
- DB 락 - 개념 이해
- DB 락 - 변경
- DB 락 - 조회
- 트랜잭션 - 적용1
- 트랜잭션 - 적용2
- 정리
4. 스프링과 문제 해결 - 트랜잭션
- 문제점들
- 트랜잭션 추상화
- 트랜잭션 동기화
- 트랜잭션 문제 해결 - 트랜잭션 매니저1
- 트랜잭션 문제 해결 - 트랜잭션 매니저2
- 트랜잭션 문제 해결 - 트랜잭션 템플릿
- 트랜잭션 문제 해결 - 트랜잭션 AOP 이해
- 트랜잭션 문제 해결 - 트랜잭션 AOP 적용
- 트랜잭션 문제 해결 - 트랜잭션 AOP 정리
- 스프링 부트의 자동 리소스 등록
- 정리
5. 자바 예외 이해
- 예외 계층
- 예외 기본 규칙
- 체크 예외 기본 이해
- 언체크 예외 기본 이해
- 체크 예외 활용
- 언체크 예외 활용
- 예외 포함과 스택 트레이스
- 정리
6. 스프링과 문제 해결 - 예외 처리, 반복
- 체크 예외와 인터페이스
- 런타임 예외 적용
- 데이터 접근 예외 직접 만들기
- 스프링 예외 추상화 이해
- 스프링 예외 추상화 적용
- JDBC 반복 문제 해결 - JdbcTemplate
- 정리
07. 스프링 DB 2편 - 데이터 접근 활용 기술
1. 데이터 접근 기술 - 시작
- 데이터 접근 기술 진행 방식 소개
- 프로젝트 설정과 메모리 저장소
- 프로젝트 구조 설명1 - 기본
- 프로젝트 구조 설명2 - 설정
- 프로젝트 구조 설명3 - 테스트
- 데이터베이스 테이블 생성
- 정리
2. 데이터 접근 기술 - 스프링 JdbcTemplate
- JdbcTemplate 소개와 설정
- JdbcTemplate 적용1 - 기본
- JdbcTemplate 적용2 - 동적 쿼리 문제
- JdbcTemplate 적용3 - 구성과 실행
- JdbcTemplate - 이름 지정 파라미터 1
- JdbcTemplate - 이름 지정 파라미터 2
- JdbcTemplate - 이름 지정 파라미터 3
- JdbcTemplate - SimpleJdbcInsert
- JdbcTemplate 기능 정리
- 정리
3. 데이터 접근 기술 - 테스트
- 테스트 - 데이터베이스 연동
- 테스트 - 데이터베이스 분리
- 테스트 - 데이터 롤백
- 테스트 - @Transactional
- 테스트 - 임베디드 모드 DB
- 테스트 - 스프링 부트와 임베디드 모드
- 정리
4. 데이터 접근 기술 - MyBatis
- MyBatis 소개
- MyBatis 설정
- MyBatis 적용1 - 기본
- /MyBatis 적용2 - 설정과 실행
- MyBatis 적용3 - 분석
- MyBatis 기능 정리1 - 동적 쿼리
- MyBatis 기능 정리2 - 기타 기능
- 정리
5. 데이터 접근 기술 - JPA
- JPA 시작
- ORM 개념1 - SQL 중심적인 개발의 문제점
- ORM 개념2 - JPA 소개
- JPA 설정
- JPA 적용1 - 개발
- JPA 적용2 - 리포지토리 분석
- JPA 적용3 - 예외 변환
- 정리
6. 데이터 접근 기술 - 스프링 데이터 JPA
- 스프링 데이터 JPA 소개1 - 등장 이유
- 스프링 데이터 JPA 소개2 - 기능
- 스프링 데이터 JPA 주요 기능
- 스프링 데이터 JPA 적용1
- 스프링 데이터 JPA 적용2
- 정리
7. 데이터 접근 기술 - Querydsl
- Querydsl 소개1 - 기존 방식의 문제점
- Querydsl 소개2 - 해결
- Querydsl 설정
- Querydsl 적용
- 정리
8. 데이터 접근 기술 - 활용 방안
- 스프링 데이터 JPA 예제와 트레이드 오프
- 실용적인 구조
- 다양한 데이터 접근 기술 조합
- 정리
9. 스프링 트랜잭션 이해
- 스프링 트랜잭션 소개
- 프로젝트 생성
- 트랜잭션 적용 확인
- 트랜잭션 적용 위치]
- 트랜잭션 AOP 주의 사항 - 프록시 내부 호출1
- 트랜잭션 AOP 주의 사항 - 프록시 내부 호출2
- 트랜잭션 AOP 주의 사항 - 초기화 시점
- 트랜잭션 옵션 소개
- 예외와 트랜잭션 커밋, 롤백 - 기본
- 예외와 트랜잭션 커밋, 롤백 - 활용
- 정리
10. 스프링 트랜잭션 전파1 - 기본
- 스프링 트랜잭션 전파1 - 커밋, 롤백
- 스프링 트랜잭션 전파2 - 트랜잭션 두 번 사용
- 스프링 트랜잭션 전파3 - 전파 기본
- 스프링 트랜잭션 전파4 - 전파 예제
- 스프링 트랜잭션 전파5 - 외부 롤백
- 스프링 트랜잭션 전파6 - 내부 롤백
- 스프링 트랜잭션 전파7 - REQUIRES_NEW
- 스프링 트랜잭션 전파8 - 다양한 전파 옵션
- 정리
11. 스프링 트랜잭션 전파2 - 활용
- 트랜잭션 전파 활용1 - 예제 프로젝트 시작
- 트랜잭션 전파 활용2 - 커밋, 롤백
- 트랜잭션 전파 활용3 - 단일 트랜잭션
- 트랜잭션 전파 활용4 - 전파 커밋
- 트랜잭션 전파 활용5 - 전파 롤백
- 트랜잭션 전파 활용6 - 복구 REQUIRED
- 트랜잭션 전파 활용7 - 복구 REQUIRES_NEW
- 정리
08. 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 v2023-12-04
1. 프로젝트 환경설정
- 프로젝트 생성
- 라이브러리 살펴보기
- View 환경 설정
- H2 데이터베이스 설치
- JPA와 DB 설정, 동작확인
2. 도메인 분석 설계
- 요구사항 분석
- 도메인 모델과 테이블 설계
- 엔티티 클래스 개발
- 엔티티 설계시 주의점
3. 애플리케이션 구현 준비
- 구현 요구사항
- 애플리케이션 아키텍처
4. 회원 도메인 개발
- 회원 리포지토리 개발
- 회원 서비스 개발
- 회원 기능 테스트
5. 상품 도메인 개발
- 상품 엔티티 개발(비즈니스 로직 추가)
- 상품 리포지토리 개발
- 상품 서비스 개발
6. 주문 도메인 개발
- 주문, 주문상품 엔티티 개발
- 주문 리포지토리 개발
- 주문 서비스 개발
- 주문 기능 테스트
- 주문 검색 기능 개발
7. 웹 계층 개발
- 홈 화면과 레이아웃
- 회원 등록
- 회원 목록 조회
- 상품 등록
- 상품 목록
- 상품 수정
- 변경 감지와 병합(merge)
- 상품 주문
- 주문 목록 검색, 취소
09. JPA
1. JPA 소개
2. JPA 시작
3. 영속성 관리
4. 엔티티 매핑
5. 연관관계 매핑 기초
6. 다양한 연관관계 매핑
7. 고급 매핑
8. 프록시와 연관관계 정리
9. 값 타입
10. 객체지향 쿼리 언어
10. 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 v2023-11-27
1. API 개발 기본
- 회원 등록 API
- 회원 수정 API
- 회원 조회 API
2. API 개발 고급 - 준비
- 소개
- 조회용 샘플 데이터 입력
3. API 개발 고급 - 지연 로딩과 조회 성능 최적화
- 간단한 주문 조회 V1: 엔티티를 직접 노출
- 간단한 주문 조회 V2: 엔티티를 DTO로 변환
- 간단한 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화
- 간단한 주문 조회 V4: JPA에서 DTO로 바로 조회
4. API 개발 고급 - 컬렉션 조회 최적화
- 주문 조회 V1: 엔티티 직접 노출
- 주문 조회 V2: 엔티티를 DTO로 변환
- 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화
- 주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파
- 페이징과 한계 돌파
- 주문 조회 V4: JPA에서 DTO 직접 조회
- 주문 조회 V5: JPA에서 DTO 직접 조회 - 컬렉션 조회 최적화
- 주문 조회 V6: JPA에서 DTO로 직접 조회, 플랫 데이터 최적화
- API 개발 고급 정리
5. API 개발 고급 - 실무 필수 최적화
- OSIV와 성능 최적화
11. 실전! 스프링 데이터 JPA
1. 프로젝트 환경설정
- 프로젝트 생성
- 라이브러리 살펴보기
- H2 데이터베이스 설치
- 스프링 데이터 JPA와 DB 설정, 동작확인
2. 예제 도메인 모델
- 예제 도메인 모델과 동작확인
3. 공통 인터페이스 기능
- 순수 JPA 기반 리포지토리 만들기
- 공통 인터페이스 설정
- 공통 인터페이스 적용
- 공통 인터페이스 분석
4. 쿼리 메소드 기능
- 메소드 이름으로 쿼리 생성
- JPA NamedQuery
- @Query, 리포지토리 메소드에 쿼리 정의하기
- @Query, 값, DTO 조회하기
- 파라미터 바인딩
- 반환 타입
- 순수 JPA 페이징과 정렬
- 스프링 데이터 JPA 페이징과 정렬
- 벌크성 수정 쿼리
- @EntityGraph
- JPA Hint & Lock
5. 확장 기능
- 사용자 정의 리포지토리 구현
- Auditing
- Web 확장 - 도메인 클래스 컨버터
- Web 확장 - 페이징과 정렬
6. 스프링 데이터 JPA 분석
- 스프링 데이터 JPA 구현체 분석
- 새로운 엔티티를 구별하는 방법
7. 나머지 기능들
- Specifications (명세)
- Query By Example
- Projections
- 네이티브 쿼리
12. 실전! Querydsl
1. 프로젝트 환경설정
- 프로젝트 생성
- Querydsl 설정과 검증
- 라이브러리 살펴보기
- H2 데이터베이스 설치
- 스프링 부트 설정 - JPA, DB
2. 예제 도메인 모델
- 예제 도메인 모델과 동작확인
3. 기본 문법
- 시작 - JPQL vs Querydsl
- 기본 Q-Type 활용
- 검색 조건 쿼리
- 결과 조회
- 정렬
- 페이징
- 집합
- 조인 - 기본 조인
- 조인 - on절
- 조인 - 페치 조인
- 서브 쿼리
- Case 문
- 상수, 문자 더하기
4. 중급 문법
- 프로젝션과 결과 반환 - 기본
- 프로젝션과 결과 반환 - DTO 조회
- 프로젝션과 결과 반환 - @QueryProjection
- 동적 쿼리 - BooleanBuilder 사용
- 동적 쿼리 - Where 다중 파라미터 사용
- 수정, 삭제 벌크 연산
- SQL function 호출하기
5. 실무 활용 - 순수 JPA와 Querydsl
- 순수 JPA 리포지토리와 Querydsl
- 동적 쿼리와 성능 최적화 조회 - Builder 사용
- 동적 쿼리와 성능 최적화 조회 - Where절 파라미터 사용
- 조회 API 컨트롤러 개발
6. 실무 활용 - 스프링 데이터 JPA와 Querydsl
- 스프링 데이터 JPA 리포지토리로 변경
- 사용자 정의 리포지토리
- 스프링 데이터 페이징 활용1 - Querydsl 페이징 연동
- 스프링 데이터 페이징 활용2 - CountQuery 최적화
- 스프링 데이터 페이징 활용3 - 컨트롤러 개발
7. 스프링 데이터 JPA가 제공하는 Querydsl 기능
- 인터페이스 지원 - QuerydslPredicateExecuto
- Querydsl Web 지원
- 리포지토리 지원 - QuerydslRepositorySupport
- Querydsl 지원 클래스 직접 만들기
8. 스프링 부트 3.x(2.6 이상), Querydsl 5.0 지원 방법
- build.gradle 설정 방법
- PageableExecutionUtils Deprecated(향후 미지원) 패키지 변경
- Querydsl fetchResults(), fetchCount() Deprecated(향후 미지원)
13. 스프링 부트
1. 스프링 부트 소개
- 스프링 프레임워크의 등장
- 스프링 부트의 등장
2. 웹 서버와 서블릿 컨테이너
- 웹 서버와 스프링 부트 소개
- 톰캣 설치
- 프로젝트 설정
- WAR 빌드와 배포
- 톰캣 설정 - 인텔리J 유료 버전
- 톰캣 설정 - 인텔리J 무료 버전
- 서블릿 컨테이너 초기화1
- 서블릿 컨테이너 초기화2
- 스프링 컨테이너 등록
- 스프링 MVC 서블릿 컨테이너 초기화 지원
- 정리
3. 스프링 부트와 내장 톰캣
- WAR 배포 방식의 단점
- 내장 톰캣1 - 설정
- 내장 톰캣2 - 서블릿
- 내장 톰캣3 - 스프링
- 내장 톰캣4 - 빌드와 배포1
- 내장 톰캣5 - 빌드와 배포2
- 편리한 부트 클래스 만들기
- 스프링 부트와 웹 서버 - 프로젝트 생성
- 스프링 부트와 웹 서버 - 실행 과정
- 스프링 부트와 웹 서버 - 빌드와 배포
- 스프링 부트 실행 가능 Jar
- 정리
4. 스프링 부트 스타터와 라이브러리 관리
- 라이브러리 직접 관리
- 스프링 부트 라이브러리 버전 관리
- 스프링 부트 스타터
- 정리
5. 자동 설정(Auto Configuration)
- 프로젝트 설정
- 예제 만들기
- 자동 구성 확인
- 스프링 부트의 자동 구성
- 자동 구성 직접 만들기 - 기반 예제
- @Conditional
- @Conditional - 다양한 기능
- 순수 라이브러리 만들기
- 순수 라이브러리 사용하기1
- 순수 라이브러리 사용하기2
- 자동 구성 라이브러리 만들기
- 자동 구성 라이브러리 사용하기1
- 자동 구성 라이브러리 사용하기2
- 자동 구성 이해1 - 스프링 부트의 동작
- 자동 구성 이해2 - ImportSelector
- 정리
6. 외부설정과 프로필1
- 프로젝트 설정
- 외부 설정이란?
- 외부 설정 - OS 환경 변수
- 외부 설정 - 자바 시스템 속성
- 외부 설정 - 커맨드 라인 인수
- 외부 설정 - 커맨드 라인 옵션 인수
- 외부 설정 - 커맨드 라인 옵션 인수와 스프링 부트
- 외부 설정 - 스프링 통합
- 설정 데이터1 - 외부 파일
- 설정 데이터2 - 내부 파일 분리
- 설정 데이터3 - 내부 파일 합체
- 우선순위 - 설정 데이터
- 우선순위 - 전체
- 정리
7. 외부설정과 프로필2
- 프로젝트 설정
- 외부 설정 사용 - Environment
- 외부설정 사용 - @Value
- 외부설정 사용 - @ConfigurationProperties 시작
- 외부설정 사용 - @ConfigurationProperties 생성자
- 외부설정 사용 - @ConfigurationProperties 검증
- /YAML
- @Profile
- 정리
8. 액츄에이터
- 프로덕션 준비 기능이란?
- 프로젝트 설정
- 액츄에이터 시작
- 엔드포인트 설정
- 다양한 엔드포인트
- 헬스 정보
- 애플리케이션 정보
- 로거
- HTTP 요청 응답 기록
- 액츄에이터와 보안
- 정리
9. 마이크로미터, 프로메테우스, 그라파나
- 마이크로미터 소개
- 메트릭 확인하기
- 다양한 메트릭
- 프로메테우스와 그라파나 소개
- 프로메테우스 - 설치
- 프로메테우스 - 애플리케이션 설정
- 프로메테우스 - 수집 설정
- 프로메테우스 - 기본 기능
- 프로메테우스 - 게이지와 카운터
- 그라파나 - 설치
- 그라파나 - 연동
- 그라파나 - 대시보드 만들기
- 그라파나 - 공유 대시보드 활용
- 그라파나 - 메트릭을 통한 문제 확인
- 정리
10. 모니터링 메트릭 활용
- 메트릭 등록 - 예제 만들기
- 메트릭 등록1 - 카운터
- 메트릭 등록2 - @Counted
- 메트릭 등록3 - Timer
- 메트릭 등록4 - @Timed
- 메트릭 등록5 - 게이지
- 정리
- 실무 모니터링 환경 구성 팁
14. 스프링 핵심 원리 - 고급편 전체 목차 v2023-11-27
1. 예제 만들기
- 프로젝트 생성
- 예제 프로젝트 만들기 - V0
- 로그 추적기 - 요구사항 분석
- 로그 추적기 V1 - 프로토타입 개발
- 로그 추적기 V1 - 적용
- 로그 추적기 V2 - 파라미터로 동기화 개발
- 로그 추적기 V2 - 적용
- 정리
2. 쓰레드 로컬 - ThreadLocal
- 필드 동기화 - 개발
- 필드 동기화 - 적용
- 필드 동기화 - 동시성 문제
- 동시성 문제 - 예제 코드
- ThreadLocal - 소개
- ThreadLocal - 예제 코드
- 쓰레드 로컬 동기화 - 개발
- 쓰레드 로컬 동기화 - 적용
- 쓰레드 로컬 - 주의사항
- 정리
3. 템플릿 메서드 패턴과 콜백 패턴
- 템플릿 메서드 패턴 - 시작
- 템플릿 메서드 패턴 - 예제1~3
- 템플릿 메서드 패턴 - 적용1~2
- 템플릿 메서드 패턴 - 정의
- 전략 패턴 - 시작
- 전략 패턴 - 예제1~3
- 템플릿 콜백 패턴 - 시작
- 템플릿 콜백 패턴 - 예제
- 템플릿 콜백 패턴 - 적용
- 정리
4. 프록시 패턴과 데코레이터 패턴
- 프로젝트 생성
- 예제 프로젝트 만들기 v1 ~ v3
- 요구사항 추가
- 프록시, 프록시 패턴, 데코레이터 패턴 - 소개
- 프록시 패턴 - 예제 코드1~2
- 데코레이터 패턴 - 예제 코드1~3
- 프록시 패턴과 데코레이터 패턴 정리
- 인터페이스 기반 프록시 - 적용
- 구체 클래스 기반 프록시 - 예제1~2
- 구체 클래스 기반 프록시 - 적용
- 인터페이스 기반 프록시와 클래스 기반 프록시
- 정리
5. 동적 프록시 기술
- 리플렉션
- JDK 동적 프록시 - 소개
- JDK 동적 프록시 - 예제 코드
- JDK 동적 프록시 - 적용1
- JDK 동적 프록시 - 적용2
- CGLIB - 소개
- CGLIB - 예제 코드
- 정리
6. 스프링이 지원하는 프록시
- 프록시 팩토리 - 소개]
- 프록시 팩토리 - 예제 코드1~2
- 포인트컷, 어드바이스, 어드바이저 - 소개
- 예제 코드1 - 어드바이저
- 예제 코드2 - 직접 만든 포인트컷
- 예제 코드3 - 스프링이 제공하는 포인트컷
- 예제 코드4 - 여러 어드바이저 함께 적용
- 프록시 팩토리 - 적용1~2
- 정리
7. 빈 후처리기
- 빈 후처리기 - 소개
- 빈 후처리기 - 예제 코드1~2
- 빈 후처리기 - 적용
- 빈 후처리기 - 정리
- 스프링이 제공하는 빈 후처리기1~2
- 하나의 프록시, 여러 Advisor 적용
- 정리
8. @Aspect AOP
- @Aspect 프록시 - 적용
- @Aspect 프록시 - 설명
- 정리
9. 스프링 AOP 개념
- AOP 소개 - 핵심 기능과 부가 기능
- AOP 소개 - 애스펙트
- AOP 적용 방식
- AOP 용어 정리
- 정리
10. 스프링 AOP 구현
- 프로젝트 생성
- 예제 프로젝트 만들기
- 스프링 AOP 구현1 - 시작
- 스프링 AOP 구현2 - 포인트컷 분리
- 스프링 AOP 구현3 - 어드바이스 추가
- 스프링 AOP 구현4 - 포인트컷 참조
- 스프링 AOP 구현5 - 어드바이스 순서
- 스프링 AOP 구현6 - 어드바이스 종류
- 정리
11. 스프링 AOP - 포인트컷
- 포인트컷 지시자
- 예제 만들기
- execution1, 2
- within
- args
- @target, @within
- @annotation, @args
- bean
- 매개변수 전달
- this, target
- 정리
12. 스프링 AOP - 실전 예제
- 예제 만들기
- 로그 출력 AOP
- 재시도 AOP
- 정리
13. 스프링 AOP - 실무 주의사항
- 프록시와 내부 호출 - 문제
- 프록시와 내부 호출 - 대안1 자기 자신 주입
- 프록시와 내부 호출 - 대안2 지연 조회
- 프록시와 내부 호출 - 대안3 구조 변경
- 프록시 기술과 한계 - 타입 캐스팅
- 프록시 기술과 한계 - 의존관계 주입
- 프록시 기술과 한계 - CGLIB
- 프록시 기술과 한계 - 스프링의 해결책
- 정리
반응형
'springboot' 카테고리의 다른 글
[spring boot] 1. 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 요약 (0) | 2024.07.06 |
---|