Spring Framework 소개 ◎ Framework과 Library ◎ Spring Framework
◎ SOLID ◎ SRP(단일 책임의 원칙) ◎ OCP(개방폐쇄의 원칙) ◎ LSP(리스코브 치환의 원칙) ◎ ISP(인터페이스 분리의 원칙) ◎ DIP(의존성 역전의 원칙)
Spring Framework 특징 ◎ POJO ◎ IoC / DI ◎ AOP ◎ PSA
아키텍처(Architecture) ◎ 아키텍처 ◎ 시스템 아키텍쳐 ◎ 시스템 아키텍쳐 사례 ◎ 소프트웨어 아키텍처 / 애플리케이션 아키텍처 ◎ 소프트웨어 아키텍쳐의 예시
Spring Boot ◎ Spring Boot ◎ Spring Boot을 사용해야 하는 이유
DI - Container, Bean ◎ 스프링 컨테이너 ◎ 스프링 컨테이너 구현 (어떻게 되어있는지) ◎ 빈(Bean)
빈 스코프(Bean Scope) ◎ 빈 스코프(Bean Scope) ◎ 싱글톤(singleton) 스코프
스프링 컨테이너 설정 ◎ 스프링 컨테이너 인스턴스화 ◎ @Bean, @Configuration ◎ @ComponentScan
스프링 DI(의존성 주입) 방법 ◎ 생성자 주입 ◎ 수정자 주입 (Setter 주입) ◎ 필드 주입 ◎ 생성자 주입을 추천하는 이유 ◎ 옵션 처리
AOP - 개념, 용어 ◎ AOP (Aspect Oriented Programming) ◎ AOP 용어
AOP - Pointcut ◎ Pointcut ◎ 포인트컷 지시자(Pointcut Designator, PCD) ◎ 포인트컷 부가기능
AOP - Advice ◎ Advice ◎ Advice 종류
AOP - JoinPoint ◎ JoinPoint ◎ JoinPoint Interface & Object
Spring MVC ◎ Spring MVC ◎ MVC (Model, View, Controller) ◎ JSON(JavaScript Object Notation) ◎ Spring MVC의 동작 방식
Spring 기본 구조 및 설계 ◎ 패키지 구조 ◎ Controller 설계 ◎ EntryPoint (엔트리 포인트)
Controller 기본 구현 ◎ 기본 Controller 어노테이션 ◎ Input 관련 어노테이션 ◎ ResponseEntity
Spring에서 HTTP Header 이용 ◎ HTTP ◎ HTTP Header ◎ Spring, HTTP Header 정보 얻기 ◎ Spring, HTTP Header 정보 추가
Controller 구현 - DTO, 유효성 검사 ◎ DTO(Data Transfer Object) ◎ DTO 적용 ◎ DTO 유효성 검사
◎ 엔티티(Entity) ◎ 매퍼(Mapper) ◎ MapStruct
Spring 예외 처리 ◎ 예외 처리 필요성 ◎ Spring MVC 예외 처리 ◎ ErrorResponse Object ◎ 비즈니스 로직 예외처리
JDBC, Spring Data JDBC ◎ JDBC (Java Database Connectivity) ◎ 데이터 액세스 기술 ◎ Spring Data JDBC
JPA ◎ JPA(Java Persistence API, Jakarta Persistence) ◎ JPA API ◎ JPA - 데이터 저장 과정
JPA - Entity Mapping ◎ 엔티티와 테이블 간의 매핑 ◎ Entity와 Table 매핑 사용 권장 방법 ◎ Entity 간의 연관 관계 매핑 ◎ Entity Mapping시, 편리한 설정 ◎ Entity 간의 연관 관계 매핑 권장 방법
Transaction ◎ Transaction ◎ Transaction의 과정 ◎ Transaction 적용 ◎ Transaction 특징 및 설정
Testing - 단위 테스트 (JUnit) ◎ 테스트 ◎ 단위 테스트 ◎ JUnit
Testing - Mockito, SliceTest ◎ Mockito ◎ API 계층 테스트 (Controller 부분) ◎ 데이터 액세스 계층 (Repository)
TDD (Test Driven Development) ◎ TDD ◎ 전통적인 개발 방식 ◎ TDD의 특징
API 문서화 - Spring Rest Docs ◎ API 문서화 ◎ Spring Rest Docs ◎ Spring Rest Docs 적용
◎ IntelliJ IDE를 이용한 빌드 ◎ Gradle Task를 이용한 빌드 ◎ 어플리케이션 실행
Rest Client ◎ Rest Client ◎ RestTemplete ◎ RestTemplete 예시