[백엔드 개발자 면접 단골 질문 뿌시기 - 1] 3계층 아키텍처(3 Tier- Architectur)가 뭘까?

2023. 12. 12. 14:41·Develop/CS
반응형

MSA 환경에 개발을 하는 회사에서는 아마 면접에서 자주 물어보는 질문일 것이라고 생각이 들어 

남겨 놓는다 🤣

 

 

 3계층 아키텍처란?

 

IBM에서는 이렇게 정의하고 있다.

 

3계층 아키텍처(3 Tier-Architectur)는 애플리케이션을 프레젠테이션 계층 또는 사용자 인터페이스, 데이터가 처리되는 애플리케이션 계층 그리고 애플리케이션과 관련된 데이터가 저장 및 관리되는 데이터 계층이라는 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성하는 확립된 소프트웨어 애플리케이션 아키텍처입니다.

 

정의는 알았으니 각 계층에 대해서 상세히 알아보자면 🤔


 

3Tier Architecture - logianalytics.com

 

 

프리젠테이션 계층

- 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 커뮤니케이션 계층

- 웹 브라우저, 데스크탑 애플리케이션 또는 그래픽 사용자 인터페이스(GUI)에서 실행

- 일반적으로 HTML,CSS,JS를 사용하여 개발 ( React, Angular, Ember, Aurora , Vue , Svelte  프레임워크 사용)

 

애플리케이션 계층

- 논리 계층 또는 중간 계층이라고도 불리며 애플리케이션의 핵심

- 사용자 입력을 처리하는 데 사용되는 비즈니스 논리를 수용하는 중간 계층

-  일반적으로 Java,C++,Python,Ruby 개발

 

데이터 계층

- 애플리케이션 데이터 대한 액세스를 제공하는 데이터베이스 관리 시스템 계층

- MSSQL,MYSQL,ORACLE,PostgreSQL

 

 

3계층 아키텍처의 간단한 예

 

CGV 사이트에서  영화를 예매한다고 가정하면

 

프레젠테이션 계층

- CGV 사이트

애플리케이션 계층

- CGV 사이트에서 영화를 예매한 정보들이 애플리케이션 계층에 넘어와서 비지니스 로직을 거쳐

데이터베이스 계층

- 예매 정보를 저장 후 결과 값을 애플리케이션으로 반환

 

3계층 아키텍처를 사용했을 경우 얻을 수 있는 장점과 단점

 

장점

1.각 계층을 담당하는 팀들을 구성하여 업무 분담이 가능하다. (업무 효율성 증가)
2.프레젠테이션 계층과 데이터 계층끼리 직접 통신할 수 없다. (보안성 강화)
3.한 계층의 가동 중단은 다른 계층의 성능에 별로 영향을 끼치지 않는다. (안정성 향상)
4.필요에 따라 임의의 계층을 다른 계층과는 독립접으로 확장할 수 있다.  (확장성 개선)

단점

1. 많아진 계층으로 인해 그만큼 많은 관리 포인트가 생긴다. (비용 증가)

2. 장애가 발생하는 포인트가 늘어난다. (비용 증가)


따라서 비용이 그만큼 많이 발생하게 되므로 서비스 규모 및 증가에 따라
계층 구조 및 설계가 고려되어야 한다.


Reference

https://www.ibm.com/kr-ko/topics/three-tier-architecture

 

3계층 아키텍처란? | IBM

3계층 아키텍처는 애플리케이션을 프리젠테이션 계층, 애플리케이션 계층 및 데이터 계층으로 분리합니다.

www.ibm.com

 

 

https://insightsoftware.com/blog/5-benefits-of-a-3-tier-architecture/

 

5 Benefits of a 3-Tier Architecture

To keep up with the pace of change required to deliver a compelling software product and to leverage emerging technologies, a microservices or three-tier architecture provides numerous benefits. It allows a developer the opportunity to extend, modularize,

insightsoftware.com

 

반응형
저작자표시 비영리 (새창열림)

'Develop > CS' 카테고리의 다른 글

[백엔드 개발자 면접 단골 질문 뿌시기 - 3] 스레드(thread)와 프로세스(process)의 차이를 설명해 줄 수 있어요? 😲  (122) 2023.12.28
[백엔드 개발자 면접 단골 질문 뿌시기 - 2] JVM(Java Virtual Machine) 에 대해 설명 하세요 😤  (77) 2023.12.14
'Develop/CS' 카테고리의 다른 글
  • [백엔드 개발자 면접 단골 질문 뿌시기 - 3] 스레드(thread)와 프로세스(process)의 차이를 설명해 줄 수 있어요? 😲
  • [백엔드 개발자 면접 단골 질문 뿌시기 - 2] JVM(Java Virtual Machine) 에 대해 설명 하세요 😤
    반응형
  • 개발자는어디까지공부해야할까?
  • 전체
    오늘
    어제
    • 분류 전체보기 (51)
      • 인디해커 (1)
      • Develop (42)
        • Front-End (7)
        • Back-End (17)
        • Spring (1)
        • Tool (1)
        • DATABASE (1)
        • DevOps (7)
        • CS (3)
        • Trouble Shooting (5)
      • 다이소 (1)
        • 코딩테스트문제풀이 (1)
      • 변소 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브(Github)
    • 개발 Feed
  • 공지사항

  • 인기 글

  • 태그

    자바
    op.gg
    lol
    jdk
    타임리프 사용방법
    JavaScript
    spring
    리그오브레전드
    리액트
    스프링부트
    개발자
    Java
    spring boot
    react-router-dom
    React
    thymeleaf
    github
    node
    셀레니움
    Recoil
    fow.kr
    backend
    백엔드 개발자 면접 단골 질문 뿌시기
    개발자 면접
    Oracle
    롤
    SpringBoot
    @Scheduled
    mybatis
    백엔드
  • 최근 댓글

  • 최근 글

  • 01-24 04:42
  • hELLO· Designed By정상우.v4.10.3
[백엔드 개발자 면접 단골 질문 뿌시기 - 1] 3계층 아키텍처(3 Tier- Architectur)가 뭘까?
상단으로

티스토리툴바