확장성(Extensibility)
재사용성(Reusability)
보수 유지 가능성(Maintability)
가독성(Readability)
테스트 가능성(Testability)
Presentation Layer
Business Layer
Persistence Layer
Presentation Layer는 Business Layer에 의존하고,
Business Layer는 Persistence Layer에 이존하게 된다.
반대로 Business Layer는 Presentation Layer에 대해 독립적이고,
Persistence Layer는 business나 Presentation Layer에 독립적이다.
"Separation of Concerns" : 각 레이어의 역할이 명확하다.
presentation layer는 business layer를 호출하여 사용.
business layer는 persistence layer를 호출하여 사용.
해당 시스템을 사용하는 사용자 혹은 클라이언트 시스템과 직접적으로 연결되는 부분
웹사이트에서는 UI, 백엔드API에서는 엔드포인트에 해당함.
HTTP 요청(request)들을 읽어 들이는 로직을 구현.
View
비지니스 로직, 즉 정책을 구현하는 부분.
예를들어 Minitter의 경우, tweet 내용은 300자 이상 넘으면 안되는 로직을 구현.
Service
데이터베이스와 관련된 로직을 구현.
Business Layer에서 필요한 데이터 생성, 수정, 읽기 등을 처리.
실제 데이터베이스에서 데이터를 저장, 수정, 읽어들이기 하는 역할 수행.