Post

Spring boot architecture, layers, DTO

✅ Spring files

스프링부트에서는 스프링을 실행하는게 아니라 ❌
내장 톰캣서버를 실행하는 것이다. 🐈‍

코딩공책-21

✔️ yaml file

application 설정을 도와주는 파일

이제는 application.properties 파일 형식 아니고❌
application.yaml을 사용할 것임⭕️

👍🏻 .yaml 형식 장점 가독성, profile 사용하기 용이 코딩공책-20

✅ Profile 설정

✔️ 대표 개발 단계

개발 단계에 따라 profile을 분리해 관리할 필요가 있다.
1️⃣ local: 개발자가 개발하고 있는 단계
2️⃣ dev: 여러 개발자들이 개발한 것을 합치고 있는 단계
3️⃣ prod: 사용자에게 제공되고 있는 서비스

그리고 이 개발 단계에 따라 profile을 분리하는데, profile 별로 application.yaml 따로 구성해서 관리한다 코딩공책-22

✅ Code architecture

코드 아키텍쳐: 소프트웨어의 구조/구성을 조직적으로 정리하는 것
코드를 효율적으로 관리하기 위함

✔️ Code architecture 종류

  • Clean architecture
  • Domain driven Development
  • 3 layer architecture

✅ Spring code architecture: 3-layered 🟰 3 tier

3-layered: 전체를 3가지 논리적 계층으로 구성하고, 각 계층이 자신의 역할/책임을 가지는 구조
각 접점을 하나의 계층으로 빼고, 각 계층이 자기 역할을 한다.

👍🏻 외부에서 수정 요청이 들어오면 그 계층만 수정하면 되니까
👍🏻 괜히 코드 수정하다가 다른 부분은 건드리지 않도록

스크린샷 2024-01-09 오후 7 26 14

✔️ Web layer(🟰Presentation Layer)

외부(client/dispatcher servlet)과 맞닿아 있는 레이어

외부 요청/응답의 접점에 위치한다.

✔️ Service layer

비즈니스 로직을 실제로 처리함

✔️ Repository layer(🟰Data Access Layer)

데이터 베이스와 상호작용하는 레이어

스크린샷 2024-01-09 오후 7 34 35

config는 web, service, respository 어디에도 속하지 않는 파일 넣으려고 만들었음

⭐️ SpringBoot 직렬화: Jackson 라이브러리

Jackson 라이브러리: DTO ↔️ JSON 직렬화/역직렬화 하는 라이브러리

Jackson이 getter을 사용해서 DTO를 JSON으로, JSON을 DTO로 바꿔준다.

This post is licensed under CC BY 4.0 by the author.