일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 결합인덱스구조
- heapq
- join
- index fast full scan
- RAC
- B*Tree인덱스
- 로버트C마틴
- db
- intellij
- table full scan
- 리눅스
- SQL튜닝의시작
- 파이썬
- SQLP
- clean code
- leetcode215
- B*Tree
- 오라클
- 클린 코드
- 클린코드
- 조인
- 친절한SQL튜닝
- database
- 리트코드215
- SQLD
- 알고리즘
- 데이터모델링
- Oracle
- B*Tree인덱스구조
- 오라클튜닝
- Today
- Total
개발노트
Layered Architecture 본문
[Layered Architecture1]
대부부분의 중/대규모의 어플리케이션은 효율적인 개발 및 유지 보수를 위해 계층화 (Layered)하여 개발하는 것이 일반적이다. 계층화 아키텍처는 MVC로 대표되는 MVC 패턴의 특징은 다음과 같다.
① Controller와 Model과는 독립적으로 View를 수정 할 수 있다.
② Model component는 View와 Controller component로부터 데이터 구조와 같은 내부적인 상 세한 사항을 숨긴다.
③ Model에 interface를 사용하면, 재사용이 용이하다.
고려사항
이와 같이 계층화 아키텍처는 UI의 로직과 비즈니스 로직은 어떻게 구현하고 어디에 위치시킬 것인가, 그리고 어플리케이션에 필요한 데이터 및 어플리케이션의 상태는 어떻게 유지하고 공유할 것인가 등에 대해서 정의하고 각 계층을 분할한다. 계층의 분할에 있어서, 각 계층을 연결하기 위해 사용할 기술 요소들과 특정 계층을 교체하거나 변경할 경우 다른 계층들에 영향을 주지 않을 정도의 유연성에 대해서 반드시 고려해야 한다.
[Layered Architecture 2]
계층별 특징
① 프레젠테이션 계층(Presentation Layer) – 표현과 이벤트 처리, 데이터 포맷 책임 담당
사용자의 최종 접점으로, 사용자로부터 데이터를 입력 받거나 데이터를 출력해 보이는 계층이다. 프레젠테이션 계층은 외부로부터의 어플리케이션에 대한 요구를 받아들이는 부분인 동시에 처리 결과를 사용자에게 보여주는 부분이다.
② 비즈니스 계층(Business Layer) – Controller와 View를 연결하는 역할, 다른 계층과 통신하기 위한 인터페이스 제공 담당
어플리케이션의 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성을 검증한다. 또한, 다른 계층들과 통신하기 위한 인터페이스를 제공한다. 핵심 업무 로직의 구현과 그에 관련된 데이터의 적합성 검증 이외에도 다양한 부가적인 구현이 추가된다.
③ 퍼시스턴스 계층(Persistence Layer) – 데이터베이스나 파일에 접근하여 데이터 CRUD를 담당
영구 데이터를 빼내어 객체화 시키며, 영구 저장소에 데이터를 저장, 수정, 삭제하는 계층이다.
④ 데이터베이스 계층(Database Layer) – 데이터 객체
관계형 데이터베이스의 엔티티와 비슷한 개념을 가지는 것으로 데이터 객체를 의미한다.