ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3계층 웹 아키텍처란?
    CS 지식/chat gpt와 TIL 2023. 8. 12. 17:54

    3계층 웹 아키텍처는 소프트웨어 개발에서 사용되는 아키텍처 패턴 중 하나입니다. 이 패턴은 애플리케이션을 세 가지 주요 계층으로 나누는 방식을 나타냅니다. 각 계층은 특정한 역할과 책임을 가지며, 서로 독립적으로 작동할 수 있습니다. 이렇게 계층을 나눔으로써 유지보수성, 확장성 및 개발 효율성을 향상시킬 수 있습니다.


    다음은 3계층 웹 아키텍처의 각 계층과 역할에 대한 간략한 설명입니다:

    1. **프레젠테이션 계층 (Presentation Layer)**:
       이 계층은 사용자와 상호작용하며, 웹 브라우저나 모바일 앱과 같은 클라이언트 인터페이스를 담당합니다. 사용자 인터페이스(UI)를 구성하고, 사용자 입력을 받아 처리하며, 결과를 사용자에게 표시합니다. HTML, CSS, JavaScript 등을 사용하여 웹 페이지를 렌더링하고, 클라이언트와 서버 간의 통신을 관리합니다. 프레젠테이션 계층은 API 호출을 통해 다른 계층과 소통한다. 

    2. **비즈니스 계층 (Business Layer)**:
       비즈니스 계층은 애플리케이션의 핵심 로직을 처리하는 곳으로, 비즈니스 규칙과 데이터 처리 로직을 포함합니다. Java와 같은 프로그래밍 언어로 작성된다. 사용자 입력을 받아 검증하고, 데이터베이스와의 상호작용을 처리하며, 비즈니스 요구사항에 따라 데이터를 가공하고 로직을 실행합니다. 이 계층은 프레젠테이션 계층과 데이터 계층 간의 중개자 역할을 수행합니다.

    3. **데이터 계층 (Data Layer)**:
       데이터 계층은 데이터베이스나 외부 데이터 소스와의 상호작용을 처리합니다. 데이터베이스에서 데이터를 저장, 검색, 업데이트, 삭제하는 작업을 담당하며, 비즈니스 계층의 요구에 따라 데이터를 가져와 전달합니다. 이 계층은 데이터의 영속성과 관련된 작업을 처리하므로 데이터베이스 관리 시스템(DBMS)과 연관이 있습니다.

     



    3계층 아키텍처의 주요 장점은 다음과 같습니다. 

    1. **모듈화와 유지보수성 향상**

    각 계층은 특정한 역할과 책임을 갖기 때문에 코드를 논리적으로 분리하여 모듈화할 수 있습니다. 이로써 특정 계층의 변경이나 업데이트가 다른 계층에 영향을 미치지 않고 수행될 수 있습니다. 이로 인해 유지보수성이 향상되며, 코드를 더 쉽게 관리할 수 있습니다.

    2. **재사용성 증가**

    비즈니스 로직이나 데이터 액세스 로직이 각각의 계층에 캡슐화되어 있기 때문에 이를 다른 프로젝트나 모듈에서 재사용할 수 있습니다. 특히 비즈니스 로직은 여러 인터페이스에서 공유되거나 활용될 수 있어, 개발 효율성을 높일 수 있습니다.

    3. **확장성과 성능 향상**

    각 계층을 독립적으로 확장할 수 있습니다. 예를 들어, 프레젠테이션 계층의 서버 수를 늘리거나, 데이터 계층의 데이터베이스 서버를 분리하여 병렬 처리를 가능하게 할 수 있습니다. 이렇게 하면 전체 시스템의 성능을 향상시킬 수 있습니다.

    4. **기술 선택의 자유**

    각 계층은 독립적으로 구현될 수 있으므로, 특정 기술에 종속되지 않고 가장 적합한 기술을 선택하여 구현할 수 있습니다. 이는 새로운 기술을 도입하거나 업그레이드할 때 더욱 유연성을 제공합니다.

    5. **보안 강화**

    각 계층을 분리함으로써 보안을 강화할 수 있습니다. 데이터베이스 계층은 외부와의 직접적인 연결 없이 내부 네트워크에서 운영될 수 있으며, 중요한 비즈니스 로직이나 데이터 처리는 외부에서 직접 액세스할 수 없도록 보호할 수 있습니다.

    6. **팀 작업 용이성**

    각 계층은 서로 독립적으로 작동하므로, 팀 간의 협업이 용이합니다. 프론트엔드 개발자, 백엔드 개발자, 데이터베이스 관리자 등 각각의 전문성을 가진 팀원들이 동시에 작업할 수 있습니다.

    3계층 아키텍처는 이러한 장점들을 통해 애플리케이션 개발과 유지보수를 효율적으로 수행하고, 시스템의 확장성과 유연성을 높일 수 있습니다.

    댓글

SSOONTORY Blog.