[SW공학] 3계층 아키텍처(작성중)

cowmin·2025년 6월 2일

3계층 아키텍처

Client (프론트엔드)

[1] Presentation Layer (웹 서버)

[2] Business Logic Layer (애플리케이션 서버)

[3] Data Layer (데이터베이스 서버)

계층설명예시 기술
1. Presentation Layer사용자와 직접 상호작용하는 계층. UI/UX를 담당HTML, CSS, JavaScript, React, Vue, Angular 등
2. Business Logic Layer핵심 로직과 규칙 처리. 요청 검증, 서비스 로직 실행Java(Spring), Node.js, Python(Django), Express 등
3. Data Layer영속적인 데이터 저장 및 조회 담당MySQL, PostgreSQL, MongoDB, Oracle 등

네트워크 구성도

3계층 아키텍처 네트워크 구성도

작업 순서

  1. 프록시 서버 구축
  2. 웹 서버 구축
  3. 앱 서버 구축
  4. DB 구축
  5. 테스트용 프론트엔드 파일, 백엔드 파일 배포
  6. 데이터 인서트 후 테스트

작업 내용

1. 프록시(haproxy) 서버 구축

목적 1. 클라이언트의 요청을 두 웹서버에 고르게 분산시켜서 트래픽 부하를 분산(로드밸런싱)
목적 2. 단일 진입점 제공

프록시-WEB

  • haproxy 설정 파일 경로: /etc/haproxy/haproxy.cfg
  • haproxy 로드밸런싱 설정
frontend webserver
  bind *:80 
  mode http
  default_backend nginx-server
  
backend nginx-server
  mode http
  balance roundrobin 
  option httpchk GET /
  server nginx1 10.10.10.22:80 check
  server nginx2 10.10.10.33:80 check
  • 프론트엔드 설정
    bind *:80: 모든 IP에서 80포트를 수신
    default_backend nginx-server: 요청을 nginx-server 백엔드로 전달

  • 백엔드 설정
    balance roundrobin: 라운드로빈 방식으로 부하 분산
    - 라운드 로빈 방식이란? 들어오는 요청을 서버들에게 순서대로 하나씩 번갈아 가며 분배하는 방식
    option httpchk GET /: HTTP 상태 체크 – 루트 경로(/)로 GET 요청을 보내서 서버가 살아있는지 확인

0개의 댓글