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

春 春 33479 
Created at
Updated at  
280 0 0

개념

레이어드 아키텍처 패턴(Layered architectural pattern)은 소프트웨어 시스템을 여러 개의 논리적인 계층(Layer)으로 분리하여 구성하는 방식입니다. 각 계층은 특정 수준의 추상화된 서브 기능을 담당하며, 상위 계층에 서비스를 제공하도록 설계됩니다. 이는 관심사의 분리(Separation of Concerns) 원칙을 효과적으로 구현하여, 시스템의 복잡성을 관리하고 유연성을 높이는 데 기여합니다. 주로 PC 애플리케이션이나 아마존, 알리익스프레스와 같은 쇼핑몰(이커머스) 웹사이트 등 복잡한 비즈니스 로직과 데이터 처리가 요구되는 시스템에서 널리 활용됩니다.

 

구조 및 주요 계층

일반적으로 정보 시스템은 다음과 같이 4단계의 계층으로 구성되는 경우가 많습니다. 각 계층은 바로 아래 계층에만 의존하며, 직접적으로 하위의 하위 계층과 통신하지 않는 것이 원칙입니다.

  • 프레젠테이션 계층 (Presentation Layer / UI Layer)
    • 사용자 인터페이스(User Interface, UI)를 담당하며, 사용자의 요청을 받아 상위 계층으로 전달하고, 처리 결과를 사용자에게 시각적으로 보여주는 역할을 합니다. 웹 페이지, 데스크톱 애플리케이션의 GUI 등이 여기에 해당합니다.
    • 예시: 웹 브라우저의 HTML/CSS/JavaScript, 안드로이드/iOS 앱의 화면 구성, 데스크톱 애플리케이션의 폼(Form).
  • 애플리케이션 계층 (Application Layer / Service Layer)
    • 프레젠테이션 계층과 비즈니스 로직 계층 사이에서 중개자 역할을 수행합니다. 특정 비즈니스 흐름(Workflow)을 정의하고, 여러 비즈니스 로직을 조합하여 프레젠테이션 계층이 요청한 작업을 수행합니다. 자체적인 비즈니스 규칙을 포함하기보다는 비즈니스 로직 계층의 기능을 호출하여 조율하는 역할을 주로 합니다.
    • 예시: 사용자 로그인 처리, 상품 주문 프로세스 조율, 결제 흐름 관리.
  • 비즈니스 로직 계층 (Business Logic Layer / Domain Layer)
    • 애플리케이션의 핵심 비즈니스 규칙과 도메인 모델을 포함하는 계층입니다. 애플리케이션의 "뇌"와 같은 역할을 하며, 데이터의 유효성 검사, 계산, 특정 업무 규칙 적용 등 핵심적인 비즈니스 기능이 구현됩니다. 데이터 접근 계층에서 가져온 데이터를 가공하거나 저장하기 전의 로직을 처리합니다.
    • 예시: 재고 확인, 할인 정책 적용, 사용자 권한 검증, 은행 거래 로직.
  • 데이터 접근 계층 (Data Access Layer / Persistence Layer)
    • 데이터 저장소(데이터베이스, 파일 시스템, 외부 서비스 등)에 접근하고 데이터를 영속화하는(저장 및 조회) 역할을 담당합니다. 상위 계층으로부터 데이터 요청을 받아 저장소와 통신하며, 저장소의 세부적인 구현 방식(SQL 쿼리, ORM 사용 등)을 상위 계층으로부터 추상화하여 감춥니다.
    • 예시: 데이터베이스에 사용자 정보 저장/조회, 파일에서 설정 정보 읽기, 외부 API를 통해 데이터 가져오기.

 

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

 

적용 사례

  • 일반적인 데스크톱 애플리케이션 (General desktop applications): 복잡한 로직과 사용자 인터페이스를 가진 오피스 프로그램, 그래픽 디자인 툴 등.
  • 이커머스 웹 애플리케이션 (E-commerce web applications): 아마존닷컴, 알리익스프레스와 같은 온라인 쇼핑몰. (상품 조회, 장바구니, 주문, 결제 등)
  • 기업용 정보 시스템 (Enterprise Information Systems): ERP(전사적 자원 관리), CRM(고객 관계 관리), SCM(공급망 관리) 등 대규모 시스템.
  • 은행 및 금융 시스템: 보안과 안정성이 중요하며 복잡한 거래 로직을 처리해야 하는 시스템.

 

장점

  • 관심사의 분리 (Separation of Concerns): 각 계층이 명확한 역할과 책임을 가지므로, 코드의 가독성이 높아지고 특정 기능에 대한 수정이 용이해집니다.
  • 모듈성 및 재사용성 (Modularity and Reusability): 하위 계층은 상위 계층에 독립적이며, 여러 상위 계층에서 재사용될 수 있습니다. 예를 들어, 데이터 접근 계층은 다양한 비즈니스 로직에서 활용될 수 있습니다.
  • 유지보수성 및 테스트 용이성 (Maintainability and Testability): 계층 간의 느슨한 결합(Loose Coupling) 덕분에 한 계층의 변경이 다른 계층에 미치는 영향을 최소화합니다. 각 계층을 독립적으로 테스트할 수 있어 디버깅 및 유지보수가 효율적입니다.
  • 확장성 (Scalability): 시스템의 특정 부분이 병목 현상을 일으킬 때, 해당 계층만 독립적으로 확장하거나 최적화하기 용이합니다. 예를 들어, 사용자 트래픽 증가 시 프레젠테이션 계층만 서버를 추가하여 확장할 수 있습니다.
  • 표준화 용이 (Easy Standardization): 각 계층의 역할을 정의하고 표준화하기 쉽습니다. 이는 대규모 팀에서 협업할 때 일관된 개발을 가능하게 합니다.

 

단점

  • 복잡성 (Complexity): 소규모 또는 단순한 애플리케이션의 경우, 여러 계층을 도입하는 것이 오히려 불필요한 복잡성을 증가시키고 초기 개발 시간을 늘릴 수 있습니다. 특정 상황에서는 특정 계층이 불필요할 수도 있습니다.
  • 성능 오버헤드 (Performance Overhead): 요청이 여러 계층을 통과해야 하므로, 계층 간의 호출로 인한 약간의 성능 저하가 발생할 수 있습니다. 각 계층의 추상화 및 캡슐화 비용이 따를 수 있습니다.
  • 경직성 (Rigidity) 및 추상화 누수 (Leaky Abstraction): 계층 간의 엄격한 규칙을 지키기 어렵거나, 때로는 하위 계층의 세부 구현이 상위 계층으로 노출되는 '추상화 누수'가 발생할 수 있습니다. 이는 계층 구조의 장점을 해치고 코드의 의존성을 높일 수 있습니다.
  • 광범위한 적용의 어려움: 모든 종류의 시스템에 이 패턴이 최적이지 않을 수 있습니다. 특히 실시간 처리가 중요하거나 매우 단순한 애플리케이션에는 과도한 구조가 될 수 있습니다.
Tags Application layer Architectural Patterns Business layer Business logic layer Data access layer E commerce Layered architectural pattern Layered pattern Presentation layer Structure programs UI layer domain layer persistence layer service layer 레이어드 아키텍쳐 패턴 스트럭쳐드 프로그램 아마존닷컴 아키텍쳐 아키텍쳐 패턴 알리익스프레스 이커머스 Facebook X
Comments 0
Similar posts
  1. Client-server pattern은 TCP/IP를 통해 데이터를 주고 받는 이메일, 웹하드 등이 주로 이용하는 아키텍쳐
    559
  2. Master-slave pattern은 장애 대응을 위한 Database 복제 등 병렬처리 및 Disaster Recovery 대응 로직에 주로 이용
    580
  3. Pipe-filter pattern은 컴파일러와 같이 통해 연속되는 필터링 기법을 통한 분석을 하는 아키텍쳐에 주로 이용
    495
  4. Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용
    528
  5. Peer-to-peer pattern은 BitTorrent와 같이 파일공유 솔루션이나 P2PTV, PDTP와 같은 멀티미디어 프로토콜에 주로 이용
    473
  6. Event-bus pattern은 Push Notification Service, 안드로이드 앱 개발에 주로 응용되는 아키텍쳐
    548
  7. MVC(Model-view-controller) pattern은 Django, Rails와 같은 웹 어플리케이션 개발에 주로 응용되는 아키텍쳐
    609
  8. Blackboard pattern은 오늘날 NLU(Natural Language Understanding)이나 차량인식 등에 응용되는 아키텍쳐
    770
  9. Interpreter pattern은 SQL 또는 통신프로토콜을 기술하는 언어 구현시 주로 이용되는 아키텍쳐
    495
  10. 아키텍쳐 패턴이란 - 소프트웨어 디자인 패턴
    490
  11. p2pCamViewer 사용 방법
    250
  12. 아틀라시안 뱀부(Atlassian Bamboo)를 활용한 CI(Continuous Integration) 환경 구축
    493
  13. 플러거블 스토리지 엔진을 가진 MySQL 아키텍쳐 - InnoDB는 인메모리 캐싱을 하는 고성능 솔루션
    240
  14. 넷플릭스 서비스 오토스케일링 아키텍쳐
    413
  15. AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)
    330
  16. 마이크로 서비스 아키텍쳐 (MSA, Micro Service Architecture)의 장단점 및 구현 방법
    712
  17. Machine Learning Tool의 종류와 용도
    637
  18. 자연어처리(NLU)를 하기 위한 소프트웨어 아키텍쳐 - 걸음마단계부터 인간 수준으로 진화하는 방향에 대해 알아본다
    485
  19. 구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼
    282
  20. EIDR(Entertainment IDentifier Registry) - 콘텐츠 ID 표준화를 이끄는 미디어/엔터테인먼트 서비스 연관 국제 표준 단체
    609
  21. 인텔이 주장하는 데이터 센터 아키텍쳐의 미래는 Software-Defined Infrastructure(SDI)
    290
  22. 집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 - 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해
    594
  23. 서버 인프라 설계시 장애를 고려하여 만드는 Single Infra, Active-Stand-by,Active-Active, Active-Stand-by/Active-Active+DR Center
    456
  24. 2-Tier 아키텍쳐와 3-Tier 아키텍쳐의 다른점
    353
  1. 카나리 배포 vs A/B 테스팅
    165
  2. 바이브코딩은 나의 명확한 의도(Vibe)와 AI의 폭발적인 생산성을 결합하여, 어제는 불가능했던 일을 오늘 현실로 만드는 혁신적인 과정
    907
  3. 그림으로 보는 CI/CD Pipeline
    335
  4. ChatGPT로 그려보는 그림 - 행복한 토끼를 그려 본다
    114
  5. Google Docs/Slide에서 화살표 -> 를 → 로 자동 변환하는 꿀팁
    1,690
  6. 엑셀 스프레드시트 프린트 범위 설정하기
    486
  7. 샤오미 YI 웹캠 덕분에 카메라에 녹화된 아버지의 모습을 복원하여 볼 수 있어 감사
    259
  8. Delphi Community Edition - 비영리/개인 개발자에게 완전 무료
    757
  9. 멀티도메인(Multi-domain) SSL 인증서 무료로 만드는 방법
    349
  10. CENTOS 7.x에 ffmepg 설치하는 방법
    312
  11. 삼성 wyz070 SIP Phone 설정 방법
    965
  12. ffmpeg으로 mov file을 mp4로 변환하는 방법
    420
  13. Windows Live Writer로 글 올릴 때 프로그램이 freeze되는 현상 해결 방법
    926
  14. HP EliteBook 8440p 시리즈 노트북 PC - 8440p 에 장착된 메모리 정보
    553
  15. 삼성 MG900 블루투스 헤드셋 페어링 방법 (EO-MG900)
    1,153
  16. 추억의 스타크래프트 사무실에서 한판 뜨기 - IPX가 안되어 방법을 찾아 보았습니다
    618
  17. 갑자기 컴퓨터가 너무 느려져 내가 한 일 - 백신프로그램 하나를 제외한 나머지를 다 지우니 해결
    235
  18. 코드리뷰도 생산성 있게 - Visual Studio Code를 이용하여 코드리뷰 중 JIRA에 이슈 등록하는 방법
    305
  19. 구입 후 만족스러웠던 맥북프로 케이스 - insquare 2017 맥북프로 13/15 터치바 케이스
    650
  20. 원격 폴더를 외장 하드처럼 자유롭게 써 보자 - 마운틴덕(Mountain Duck)
    587
  21. CentOS에서 포트 여는 방법 - iptables를 이용하여 80포트, 22번 포트 등을 열어
    286
  22. CentOS 6.x에 APM(Apache+PHP+MySQL) 설치 및 초기 설정 방법
    398
  23. 논문/특허 인용여부를 검색해주는 웹사이트
    239
  24. LED 리폼으로 보다 밝은 거실/부엌 만들고, 더불어 전기요금 절감에 도전
    213
  25. SK 텔링크 선불전화 충전 방법
    225
  26. 스마트 TV에 이어 스마트폰까지 진출한 중국의 동영상 업체 LeTV
    259
  27. 엑셀(EXCEL) 사용시 한자(중국어)를 한글로 번역하는 방법
    535
  28. 서버 해킹 도대체 누가?
    316
  29. 8K 고화질 영상 - 섬세한 화질과 현란한 색상에 매료되
    219
Recently updated
  1. 떡꼬치 양념이 착! 중독성 대박 두툼한 매콤 통스팸김밥 만들기
    26
  2. 살 안 찌는 레몬즙, 많이 마시면 위험한 의외의 이유
    49
  3. 겨울철 꿀차 효능과 매일 마시면 살찔까? 오해와 진실
    57
  4. 실바 넘은 극한 몰빵 배구, 귀화 준비 인쿠시 홀로 48득점 폭주
    47
  5. 히트곡을 딸과 함께 부르는 박남정 박시은 부녀 동반 무대
    89
  6. 계란찜 뚝배기 그릇에 하는 방법
    333
  7. 라면 사리와 라면 스프로 만드는 라면 피자
    492
  8. 순두부와 라면의 알싸한 조화로 만들 수 있는 순두부 찌게 라면
    387
  9. 모션데스크 공간 200% 활용하기: 엔지니어가 찜한 페그보드 데스크 오거나이저 리뷰
    207
  10. 삼성전자 3분기 영업이익 107조 돌파! 국내 최초 '분기 100조원' 시대 열었다
    100
  11. 야! 남규리님 프로야구 레전드 시구 봤던 사람 있냐?
    515
  12. 내 유튜브 알고리즘을 점령한 남규리 여인의 향기 쇼츠 추천
    80
  13. 씨야 데뷔 20주년 콘서트로 전한 남규리의 반가운 근황
    82
  14. 요즘 다시 반복해서 듣고 있는 클론의 음악에서 느껴지는 김태영님의 피쳐링 파워
    70
  15. 솔직해서 더 매력적인 아일릿 원희의 성격 알아보기
    93
  16. 걸그룹 베스티 '연애의 조건', 13년 만의 역주행 신화 분석
    102
  17. YG '베이비몬스터'의 모든 것: 7인 멤버 프로필부터 앨범 활동 역사까지 완전 정리
    102
  18. 보험에서 질병당일 입원금 보상 받는 방법
    410
  19. 사고시 가입 된 보험에서 통원비가 지급되는 경우
    192
  20. 상해의료실비란?
    242
  21. 일본 예능부터 샤넬쇼까지 완벽 소화! 독보적인 일본어 실력 보여준 아일릿 원희
    75
  22. 호랑이 감독 김연경 - 인쿠시와 함께 갓생 댄스 폭발
    76
  23. 군인들을 설레이게 했던 군통령 - 걸스데이
    132
  24. 베이비몬스터 아사 일본 현지 근황
    159
  25. 지마켓의 재미난 컨셉 광고
    103
  26. 재결성한 터보, 그 이후의 행보와 최근 근황
    80
  27. 한때 소셜미디어를 흔들었던 나루토 댄스 챌린지
    65
  28. 성경 역사와 세계사를 한눈에 비교해보는 아담의 역사 지도 연표 추천
    112
  29. 외계에서 온 우뢰메 - 에스퍼맨의 목소리는 지금 들어도 뭔가 어색한
    88
  30. 중국 6대2 무규칙 매치, 링 줄로 몰아붙인 압도적 경기 전개
    88
  31. 공부가 하고 싶었던 가난한 소년 - 하고자 하는 의지만 있다면 원하는 바를 이룰 수 있어
    205
  32. 돌아온 인쿠시와 신인감독 김연경! 벌써부터 설레는 원더독스 기대평
    131
  33. 별 이유 없이 혼인신고를 미루어 왔는데 최근 남편이 부정한 관계에 있는 여자와 먼저 혼인신고를 한 경우, 정식 결혼한 저는 어떻게 됩니까?
    269
  34. 전광훈 목사가 빤스목사로 불리우는 이유
    417
  35. 자녀배상책임 보험 가입시 배상 범위
    285
  36. 태아보험 가입시 저체중아 인큐베이터 특약
    303
  37. 추석 아침 식사와 혈당 관리의 중요성 - 아침 공복에 피해야 할 대표 명절 음식 3가지
    92
  38. 교통사고 합의는 보험회사와 언제까지 합의해야 하는가? 소멸시효?
    472
  39. 사고로 인하여 장해가 발생하면 소송이 필요할수도 있는가?
    251
  40. 사고시 보험사들의 장해 판단 유형
    216
  41. 각종 사고 발생시 합의금 계산 방법
    349
  42. 세무조정의 개념적 이해
    222
  43. 결산조정사항의 개념 및 분류
    296
  44. 불길속의 영웅
    93
  45. 외국인인척 하고 통인시장 가보기
    135
  46. 재고자산의 평가방법을 신고치 않을 경우 받는 영향
    267
  47. 법인세의 중간예납이 가지는 의미
    225
  48. 매콤달콤 황금비율 라면 떡볶이 (라볶이) 레시피
    507
  49. 참치로 간단히 만드는 매운탕
    642
  50. 라면으로 고로케 만드는 방법
    372