과제
1. 현재 사용하고 있는, 적용해 본 SW아키텍처가 무엇인가요? 해당 SW아키텍처에 대해 설명 가능하신가요?
깊게는 아니지만 간단하게 작성해 본 경험이 있습니다.
MVC(Model - View - Controller) 패턴
-
Model : 데이터와 비즈니스 로직을 관리하는 역할
- 사용자가 편집하길 원하는 데이터를 가지고 있어야 한다.
- 뷰와 컨트롤러에 대해 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야 한다.
-
View : 사용자로부터 명령을 받고, 데이터를 보여주는 역할
- 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다.
-
Contoller : View와 Contoller 사이에서 명령을 전달하는 역할
- 모델이나 뷰를 알고 있어야 한다.
- 모델이나 뷰의 변경을 모니터링해야 한다.
Layerd Architecture 패턴

그림 출처 https://geonoo.tistory.com/152

https://kimjingo.tistory.com/159
-
Presentation layer - 사용하는 사용자 혹은 클라이언트 시스템과 직접적으로 연결되는 부분
- Contoller : 사용자 화면(View)으로부터 정보를 수신한다.
- DTO : 전달할 데이터를 DB로 보내기 위해 변형될 객체이다.
-
Buisiness layer - 비즈니스 로직을 구현하는 부분
- Service : Controller에게 요청을 받고, 비즈니스 로직을 수행한다.
-
Persistence layer - 데이터베이스와 관련된 로직을 구현하는 부분
- Entity : 각 속성(데이터)들을 정의한다.
- Repository : 비즈니스 로직 중 DB 접근이 필요할 경우 호출된다.