Spring Boot Architecture
- spring boot는 layered architecture 방식.
- Layered Architecture ?
- 각 layer들이 다른 Layer들과 통신하는 것.
- each layer communicates to other layers(in hierarchical order).
Spring Boot Layers
- Presentation Layer – Authentication & Json Translation
- Business Layer – Business Logic, Validation & Authorization
- Persistence Layer – Storage Logic
- Database Layer – Actual Database

Presentation Layer
- Spring boot architecture의 top layer.
- view 같은 front-end part로 구성.
- HTTP requests와 authenticatio 수행.
- JSON filed의 parameter를 Java Objects 변환.
- 인증 요청을 수행하면 다음 Layer로 전달.
Business Layer
- 모든 business logic으로 포함.
- service로 구성.
- validation과 authorization 담당.
Persistence Layer
- 모든 database storage logic 포함.
- Object를 database row로 변경.
Database Layer
- 모든 database 포함.
- 여러 개의 database로 구성 가능.
- CRUD 담당.
Spring Boot Flow Architecture

- Client가 http request를 생성(GET, PUT, POST, etc.).
- Http request가 controller로 전달. controller가 request를 mapping 한 후, sever login 호출.
- Business logic는 service에서 수행. Spring boot는 mapping된 database의 data에 대한 모든 logic을 JPA(Java Persistence Libraray)를 통해서 수행.
- Jsp page가 controller에서 Response로 반환.
Ref:
https://www.geeksforgeeks.org/spring-boot-architecture/#:~:text=The%20Spring%20Boot%20is%20built,or%20below%20in%20hierarchical%20order).