Spring Boot-6

윤상혁·2024년 10월 10일

(백기선)Spring Boot

목록 보기
6/10

Spring Boot features

스프링 부트에 대한 자세한 기능들에 대한 설명을 시작함.
->이전까지는 설정에 대한 설명을 함.


cf.) 백엔드 아키텍쳐

1.Controller (컨트롤러 레이어) -> 요청(Http) 및 응답의 레이어. Rest API.
->핵심 역할: 요청(Request) 처리, 경로 매핑(URL routing), 요청 데이터를 서비스로 전달.
->@RestController, @RequestMapping, @GetMapping, @PostMapping 등..

2.Service (서비스 레이어) -> 비즈니스 로직 처리하는 중간 계층. Controller와 Repository 사이를 연결하는 역할.
->핵심 역할: 비즈니스 로직 처리, 트랜잭션 관리, 데이터 조작.
->@Service

3.Repository (레포지토리 또는 데이터 액세스 레이어) -> 데이터베이스와의 통신 담당. 주로 JPA나 Hibernate를 사용.
->핵심 역할: 데이터베이스 CRUD 작업 처리, ORM 기능 활용.
->@Repository, @JpaRepository, @CrudRepository

4.Model/Entity (엔티티 또는 도메인 레이어) -> 데이터베이스 테이블과 매핑되는 도메인 객체를 정의.
->핵심 역할: 도메인 모델 정의, 데이터베이스 테이블 매핑.
->@Entity, @Id, @Column

5.Configuration (설정 레이어) -> 스프링 부트 애플리케이션의 다양한 설정을 정의. 의존성 주입, 보안 설정, 데이터베이스 설정, API 설정.
->핵심 역할: 애플리케이션 전반의 설정 관리, 외부 리소스 및 의존성 설정.
->application.properties 또는 application.yml. @Configuration을 통해 빈(bean) 설정.

6.Exception Handling (예외 처리 레이어) -> 애플리케이션 실행 중 발생하는 에러를 처리하는 계층.
->핵심 역할: 에러 응답 처리, 사용자 정의 예외 처리.
->@ControllerAdvice, @ExceptionHandler -> 글로벌 예외 처리


Spring Application


->이걸 의미함.


cf.)plug-in

플러그인은 기본 애플리케이션의 기능을 확장하기 위해 외부에서 설치하는 모듈을 의미함.
->즉, '외부 설치'.


Customizing SpringApplication

->위와 같은 코드를 아래와 같이 변경 가능함.(코드 의미는 같음.)
->그냥 static method(모든 객체가 공유하는) -> 객체를 하나 만든 것임.

->다만, 이거의 장점은 'app.run' 뿐만 아니라 다른 기능들도 추가 가능. ->customize.


Fluent Builder API - hierarchy(계층 구조)

->Spring Boot 이전에는 계층 구조라는 게 있었는데, 이런 방식으로 동작했다고 함.
->계층 구조로 쓰고 싶으면 이렇게 쓰면 된다.
->잘 안 쓴다고 함.


Application Events and Listeners

-> 'Some events are ~ cannot register a listener in those as a Bean.'
-> Bean은 ApplicationContext에 등록되어 있어야지 Bean이 되는데, listener는 ApplicationContext 이전에도 존재 할 수 있으므로, Bean에 등록 x.

->자동으로 listener 등록되게 하려면 -> META-INF/spring.factories를 사용하면 됨.

※cf.) Listener란?


profile
통합형 개발자. 기획부터 개발, 자동화까지. 문제를 구조적으로 이해하고, AI를 능동적으로 활용해 본질적인 해결책을 제시하는 사람입니다.

0개의 댓글