Spring Boot를 사용하기 위해 알아야 할 것들

2024. 4. 4. 01:59Spring 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

반응형