-
MVC PatternArchitecture/Application Architecture 2025. 2. 14. 18:58
Process
Client <—(DTO)—> Controller (API) <——> Service(Business) <——> DAO(Persistance) <——> DB
- Controller : Client - Server 중간역할
- API 요청에 따라 응답
- View로 Request Body에 담긴 데이터를 DTO로 변환하여 Service 로 전달
- 처리결과를 DTO로 받고 Response Body에 담아 Client에게 반환
@Controller
- API, View 를 동시에 사용
- View 반환이 주목적
@RestController
- View가 필요없는 상황에서 API만 서비스에서 사용
- @Controller + @ResponseBody
- 데이터반환이 주목적
2. Service : 데이터 가공자 역할
- DAO 를 통해서 DB 접근 DTO로 데이터 전달받은후 비지니스 로직 처리
- @Autowired Repository 를 통해 repository method 사용
3. Repository(DAO) : DB 접근을 위한 객체
- 데이터를 CRUD 하는 객체
- Service 와 DB 가교 역할
- DI (Dependenct Injection) 역할
- Repository는 DAO를 사용하여 구현할 수 있음 (반대는 불가)
DAO (Data Access Object): 영구 데이터 저장소 (데이터 접근 가능하도록 관련 로직을 모아둔 객체)
Repository : Entity 객체의 상태를 관리하는 저장소
4. Entity (Domain) : DB 테이블에 대응하는 하나의 클래스, 각행을 객체로 표현
- Builder 패턴 : 가독성을 높이고 필수 값과 선택적 값을 구분할 수 있게함
5. DTO (Data Transfer Object): 데이터 교환을 도와주는 객체
- Getter/Setter 메소드만 가지고 있으며 계층간 데이터 교환시 사용
Entity, DTO 분리하는 이유
- DTO: Domain Model 복사한형태, Persistent만을 위해 사용
- Repository를 통해 DB에 접근할때 Entity를 호출하여 DB 테이블과 매핑된 객체를 처리
'Architecture > Application Architecture' 카테고리의 다른 글
OOP (Object-Oriented Programming) (0) 2025.02.14