본문 바로가기

공부

백엔드 아키텍처란

백엔드 아키텍처는 서버, 데이터베이스, 애플리케이션 로직, API, 보안, 성능 최적화 등 서버 사이드의 구조와 설계 방식

이는 애플리케이션의 안정성, 확장성, 유지보수성, 성능을 결정하는 중요한 요소로, 비즈니스 요구 사항과 기술 스택에 따라 다양한 형태로 설계

주요 백엔드 아키텍처 유형에는 모놀리식 아키텍처, 마이크로서비스 아키텍처, 서버리스 아키텍처 등

 

장점:

  • 모놀리식 아키텍처:
    • 단일 코드베이스로 관리되어 개발 및 배포가 간단
    • 통합된 환경으로 테스트와 디버깅이 용이
    • 초기 개발 비용과 복잡도가 낮음
  • 마이크로서비스 아키텍처:
    • 각 서비스가 독립적으로 개발, 배포, 확장될 수 있어 유연성이 높음
    • 특정 기능의 문제로 전체 시스템에 영향이 미치는 것을 방지
    • 다양한 기술 스택을 서비스별로 사용가능
  • 서버리스 아키텍처:
    • 인프라 관리 부담이 줄어들고, 자동으로 확장되며 사용한 만큼 비용 부과
    • 빠른 프로토타이핑과 배포가 가능하여 개발 속도 향상
    • 서버 유지보수와 관리의 부담이 없어 운영 비용 절감

단점:

  • 모놀리식 아키텍처:
    • 애플리케이션이 커지면 배포 주기가 길어지고, 확장성이 제한
    • 단일 실패 지점이 전체 시스템에 영향
    • 코드베이스가 커질수록 유지보수가 어려워짐
  • 마이크로서비스 아키텍처:
    • 서비스 간 통신과 데이터 일관성 관리가 복잡
    • 각 서비스의 배포, 모니터링, 로그 관리 등이 추가적으로 필요
    • 네트워크 오버헤드로 인해 성능 저하
  • 서버리스 아키텍처:
    • 장기 실행 작업에 부적합하며, 특정 환경에서는 비용이 높아짐
    • 플랫폼 종속성이 강해 특정 클라우드 서비스에 종속될 위험
    • 런타임 환경에 따라 성능과 제한 사항

사용 예시:

  1. 모놀리식 아키텍처 사용 예시 - 기본적인 웹 애플리케이션:
    • 구조: 프레젠테이션, 애플리케이션 로직, 데이터 접근 계층이 하나의 코드베이스로 통합
    • 예시: 작은 팀에서 개발하는 초기 단계의 전자상거래 애플리케이션
    • 장점: 빠른 개발과 배포가 가능하며, 모든 기능이 하나의 프로젝트로 관리
    - 웹 서버 (Spring Boot, Django 등)
    - 데이터베이스 (MySQL, PostgreSQL)
    - 프론트엔드 템플릿 엔진 통합 (Thymeleaf, Jinja2)
     
  2. 마이크로서비스 아키텍처 사용 예시 - 복잡한 비즈니스 로직을 가진 애플리케이션:
    • 구조: 각 기능이 독립적인 서비스로 분리되어, API 게이트웨이를 통해 통신
    • 예시: 대규모 사용자를 대상으로 하는 비디오 스트리밍 플랫폼
    • 장점: 각 서비스가 독립적으로 개발 및 배포 가능하며, 트래픽이 많은 부분만 확장 가능
    - 서비스 A: 사용자 관리 (Node.js)
    - 서비스 B: 결제 처리 (Java)
    - 서비스 C: 비디오 스트리밍 (Python)
    - API 게이트웨이 (Kong, NGINX)
    - 데이터베이스 (MongoDB, Cassandra)
     
  3. 서버리스 아키텍처 사용 예시 - 이벤트 기반의 처리 애플리케이션:
    • 구조: 함수 단위로 실행되는 서비스로, 트리거에 의해 자동 실행됨
    • 예시: 이미지 업로드 시 자동으로 이미지 리사이징 및 저장
    • 장점: 인프라 관리가 필요 없고, 이벤트 기반으로 확장성
    - AWS Lambda 함수 (이미지 리사이징)
    - API Gateway (클라이언트 요청 처리)
    - S3 (이미지 저장)
    - DynamoDB (메타데이터 저장)

'공부' 카테고리의 다른 글

서버 스케줄링이란  (0) 2024.08.31
시스템 설계란  (0) 2024.08.31
Spring과 Node.js  (1) 2024.08.30
RDBMS와 NoSQL의 차이  (1) 2024.08.29
블록킹(Blocking), 논블록킹(Non-Blocking)이란?  (0) 2024.08.29