Tag Archives: Layered pattern

아키텍쳐 패턴이란 – 소프트웨어 디자인 패턴

외국인회사에 있다 보면 개발자 채용시 아키텍쳐 설계 부분도 이야기를 하게 됩니다. 그러면 어떤 어프로치로 소프트웨어를 설계해야 하느냐에 대한 논의를 하게 됩니다.

소프트웨어 개발/설계시 아키텍쳐링을 하다 보니 반복되는 패턴이 나오기 시작했고, 사람들은 이 패턴에 이름을 붙이기 시작했습니다. 즉, 아키텍쳐 패턴(Archiectural Patterns)이라 함은 소프트웨어 디자인 패턴이라고 할 수 있습니다. 참고로 패턴(Pattern)=유형,종류 라고 간주하셔도 될 것 같습니다.

 

아키텍쳐 패턴(Architectural Patterns)은 대략 다음의 10가지 종류가 있습니다.

1. Layered pattern

2. Client-server pattern

3. Master-slave pattern

4. Pipe-filter pattern

5. Broker pattern

6. Peer-to-peer pattern

7. Event-bus pattern

8. Model-view-controller pattern

9. Blackboard pattern

10. Interpreter pattern

 

여기에 하나 빠진것이 있다면 최근 떠오르는 MSA(Micro Service Architecture)가 있을텐데요… 이정도 길이면 학생들 가르킬때 21주짜리 프로그램이 하나 나올법도 하네요.

Layered pattern은 PC App, 쇼핑몰(이커머스) 웹사이트 등이 주로 쓰는 아키텍쳐 패턴

레이어드 아키텍쳐 패턴(Layered architectural pattern)은 특정 수준의 추상화 된 레벨의 서브 펑션으로 구성된 스트럭쳐드 프로그램(Structure programs)에 널리 이용되고 있습니다.

각각의 레이어는 차상위 레벨의 레이어에게 서비스를 구성하도록 설계되어져 있는데, 통상 다음과 같이 4단계의 레이어를 이용하여 일반적인 정보 시스템을 구성하고는 합니다.

  • Presentation layer (UI layer라고도 부름)
  • Application layer (service layer라고도 부름)
  • Business logic layer (domain layer라고도 부름)
  • Data access layer (persistence layer라고도 부름)

 

Layered pattern은 PC App, 쇼핑몰(이커머스) 웹사이트 등이 주로 쓰는 아키텍쳐 패턴

 

레이어드 아키텍쳐 패턴의 사례로는 일반적인 데스크톱 어플리케이션 (General desktop applications)이나 아마존닷컴이나 알리익스프레스 같은 이커머스 웹 어플리케이션 (E commerce web applications)을 들 수 있습니다.

이 아키텍쳐의 장점이라 하면 하위 레이어는 다른 상위 레이어에 의해 사용이 되며, 레이어 표준화가 쉬우며 레이어 수준을 정의하기가 수월하다는 것입니다. 또한 레이어를 변경해도 다른 레이어에는 영향을 끼치지 않습니다.

반면에 단점이라 하면 광범위한 적용이 어렵다는 것인데, 특정 상황에서는 특정 레이어가 불필요할 수도 있습니다.