계층의 발전 일괄 처리 시스템 시절에는 계층을 적용할 필요가 없었다. 필요한 형식의 파일(ISAM, VSAM 등)을 조작하는 프로그램을 작성하면 충분했기 때문이다. 90년대에 클라이언트-서버 시스템이 등장하면서 계층은 조금 더 중요해졌다. 클라이언트-서버 시스템은 클라이언트가 사용자 인터페이스와 다른 애플리케이션 코드를 포함하고 있어야 하고 서버는 관계형 데이터베이스를 포함하는 2 계층 시스템이다. 애플리케이션의 기능이 주로 데이터를 표시하고 간단한 업데이트를 수행하는 것이라면 클라이언트-서버 시스템은 상당히 잘 작동한다. 문제는 도메인 논리를 수행하는 경우에 일어난다. 일반적으로 클라이언트에 이러한 논리를 추가하였고 논리가 복잡해지면 코드를 작업하기가 매우 어려워지는 문제가 있었다. 게다가 화면에 삽입..
Study/엔터프라이즈 애플리케이션 아키텍처 패턴
계층화(layering)는 복잡한 소프트웨어 시스템을 분할하는 데 사용하는 일반적인 기법이다. 네트워킹에서 OSI 7 계층을 예로 들 수 있다. 이렇게 나눈 계층은 불투명한 구조를 가진다는 특징이 있다. 상위 계층은 하위 계층이 정의하는 다양한 서비스를 사용하지만, 하위 계층은 상위 계층을 인식하지 못한다. 이러한 체계를 불투명한 구조라고 한다. 계층화의 이점 1. 다른 계층에 대한 정보 없이도 단일 계층을 하나의 일관된 계층으로 이해할 수 있다. 예) 이더넷이 작동하는 방법을 자세히 몰라도 FTP 서비스를 구축할 수 있다. 2. 동일한 기본 서비스를 가진 대안 구현으로 계층을 대체할 수 있다. 예) FTP 서비스는 이더넷, PPP 또는 케이블 회사에서 제공하는 다른 프로토콜 기반에서 변경 없이 작동할 ..