2024. 4. 4. 01:59ㆍSpring Boot/Common
들어가며
Spring Boot는 Spring 기반의 오픈 소스 프레임워크로, 자체 실행되는 Spring-based 어플리케이션을 빠르게 구축할 수 있게 하는데 목적이 있다.
용어 (Terminology)
Bean
Spring Container에 의해 관리되는 자바 객체
XML, Annotation, Java Code 등의 방법을 사용해 설정할 수 있다.
Inversion of Control (IoC. 제어 역전)
Spring의 main idea
객체의 라이프사이클을 Bean을 통해 관리하고 의존성을 주입함으로서 객체의 제어권을 Spring이 갖는다.
Dependency Injection (DI. 의존성 주입)
Spring의 객체 관리 기법
객체가 의존성을 스스로 생성하거나 탐색하는 대신 Spring Framework가 Bean 형태로 의존성을 관리한다.
Container
Bean을 생성하고 관리하는 Spring의 내부 로직 결합체
ApplicationContext
Spring Container 구현체
Bean 생성 설정을 관리하고 메타데이터를 통해 Bean을 생성한다.
Aspect-Oriented Programming (AOP. 관점 지향 프로그래밍)
구현하려는 관심사에 따라 비즈니스 로직을 분리 설계하는 프로그래밍 기법
Spring에서 지원한다. (이를 통해 logging과 security설정을 분리 작성할 수 있다)
Events
Bean 끼리 주고받는 내부 통신
Bean의 결합도를 감소시켜 어플리케이션 자체의 결합도를 낮춘다.
ApplicationEvents and listener
Spring에서는 특정 이벤트를 감시하는 객체와 이벤트 발생시 동작을 정의하는 객체를 구현할 수 있다.
Data Access
Spring에서는 Hibernate, JDBC, JPA 를 사용하여 데이터 접근 계층을 추상화할 수 있다.
Transaction
마찬가지로 Spring에서는 Hibernate, JDBC, JPA 를 사용하여 DB 로직의 트랜잭션 관리를 할 수 있다.
Task Execution and Scheduling
TaskEcecutor와 TaskScheduler를 사용하여 예약 작업을 비동기 처리할 수 있다.
아키텍쳐 (Architecture)
Presentation Layer
Http 요청을 제어하고, 파라미터를 JSON 객체로 파싱, 인증 과정을 거쳐 Business Layer로 전송한다.
Business Layer
비즈니스 로직을 담당한다. 즉 DB에 접근할 수 있는 객체를 받아서 서비스를 제공한다.
또한 인증과 유효성 검사(Validation) 또한 수행한다.
Persistance Layer
Business Logic 을 DB에서 조회하고 저장하기 위한 번역 방법들이 위치한다.
Database Layer
실제 DB에 CRUD(Create, Read, Update, Delete)가 일어난다.
Resources
'Spring Boot > Common' 카테고리의 다른 글
Spring Boot Actuator란 무엇인가 (1) | 2024.04.27 |
---|---|
Spring Boot AutoConfiguration이란 무엇인가 (0) | 2024.04.27 |
Spring Boot Starter란 무엇인가 (0) | 2024.04.27 |
Spring Boot Application 첫 구축하기 (0) | 2024.04.02 |
Spring Boot란 무엇인가 (0) | 2024.04.02 |