HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
[New] 타일러팀
[New] 타일러팀
/
🌎
웹 아키텍쳐 집중탐구
/
🧶
연호
🧶

연호

웹 아케텍쳐

notion image

1. DNS (Domain Name Server)

💡
도메인 이름(google.com)에서 IP 주소로의 키/값 조회를 제공
  • 알맞은 서버에 요청을 보낼 수 있는 경로를 찾는데 필요
 

2. Load Balancer

notion image
💡
서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술
  • 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 한다.

Scale-up VS Scale-out

notion image
  • Scale-up
    • 서버 자체의 성능을 확장하는 것을 의미
    • CPU, 메모리, 디스크
  • Scale-out
    • 서버를 두 대 이상 증설하여 운영
⇒ 서버가 여러 대라면 트래픽을 균등하게 분산 해주는 로드밸런싱이 필요하다.
Load Balancer의 알고리즘 https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903
 

3. 웹 애플리케이션 서버

💡
사용자의 요청이 들어오면 핵심 비즈니스 로직을 실행하고 Client로 응답
  • 프로그램 실행 환경과 데이터베이스 접속 기능을 제공
  • 여러개의 트랜잭션을 관리
  • 업무를 처리하는 비즈니스 로직

WAS 종류

  • Web Logic
  • Jeus
  • Tomcat
  • JBoss
 

4. 데이터베이스 서버

💡
데이터베이스는 데이터 구조를 정의하고, 새로운 데이터를 삽입, 데이터를 찾고, 데이터를 수정하거나 삭제, 데이터로 연산을 수행
  • 잡 서버의 역할을 하는 데이터베이스 서버와 직접 통신
  • 백엔드 서비스는 애플리케이션의 다른 영역과 분리된 자신만의 데이터베이스를 가지고 있다.
 

5. 캐싱 서비스

💡
O(1) 시간 안에 찾을 수 있는 단순한 키/값 데이터 저장소를 제공
  • 자원이 많이 소모되는 연산의 결과를 다시 계산하지 않고 캐시에서 가져옴으로써 효율을 높인다.
  • 데이터베이스의 쿼리 결과, 외부 서비스 호출 결과, 주어진 URL, HTML 등을 캐시에 저장
    • 페이스북은 로그인 시에 포스트 데이터, 친구 목록 등 많은 데이터를 캐시 한다.

캐싱 서버 기술

  • Redis ⇒ 가장 많이 사용
  • Memcache
 

6. 잡 큐(job queue) & 서버

💡
응답과는 직접적인 관련이 없는 작업을 백그라운드에서 비동기적으로 실행시킨다.
  • 비동기적인 작업을 가능하게 하는 “잡 큐” 아키텍처
    • “잡”으로 이루어진 큐
      • 비동기적으로 실행될 잡 목록을 저장
    • 큐에 들어있는 잡을 실행하는 1개 이상의 잡 서버
      • 잡을 처리한다.
      • 잡 큐를 가져와서 할 일이 있는지 확인하고, 있다면 큐에서 잡을 뽑아내서 실행한다.
 

7. 전체 텍스트 검색 서비스

💡
사용자가 텍스트 입력을 입력 하면 검색을 하고 가장 ‘관련 있는’ 결과를 보여주는 기능을 제공
notion image
  • 3개의 문서의 제목이 어떻게 역 인덱스를 연산하고 쿼리 인터페이스를 제공하는 “검색 서비스”를 분리해서 운영하는 사례가 많다.

전체 텍스트 검색 플랫폼

  • Elasticsearch
  • Sphinx
  • Apache Solr
 

8. 서비스

💡
외부에는 노출되지 않지만, 앱과 다른 서비스와는 연동
  • 계정 서비스
    • 우리의 모든 사이트의 사용자 정보를 저장해서 교차 판매 기회를 더 쉽게 제공
  • 컨텐츠 서비스
    • 우리의 모든 비디오, 오디오, 이미지의 메타데이터를 저장한다. 또 콘텐츠 다운로드 인터페이스와 다운로드 이력을 보여주는 기능을 제공
  • 결제 서비스
    • 고객이 카드로 결제할 수 있는 인터페이스를 제공
 

9. 데이터

💡
특정 규모에 도달하면 데이터를 제어, 저장, 분석하기 위해 데이터 파이프라인을 사용
  • 사용자 상호작용으로 발생한 데이터를 ‘firehose’라 불리는 곳으로 전달 가공되지 않은 원시 데이터는 변형되거나 추가 정보와 함께 다른 firehose로 전달된다.
    • AWS Kinesis와 Kafka
  • 원시 데이터와 최종 데이터는 모두 클라우드 스토리지에 저장된다.
    • AWS Kinesis는 원시 데이터를 AWS의 클라우드 스토리지(S3)에 저장할 수 있도록 매우 쉽게 사용할 수 있는 ‘firehose’로 불리는 설정을 제공
  • 변형/추가된 데이터는 종종 분석을 위해 데이터 웨어하우스(DW)에 로드된다.
    • AWS Redshift 사용

Firehose

💡
실시간으로 비디오 및 데이터 스트림을 손쉽게 수집, 처리 및 분석 솔루션
  • Amazon Kinesis를 사용하면 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석할 수 있다.
  • 적시에 통찰력을 확보하고 새로운 정보에 신속하게 대응할 수 있다.
notion image
Amazon Kinesis Firehose 실습과 동작 https://blog.voidmainvoid.net/295

data warehouse

💡
데이터 웨어하우스란 사용자의 의사 결정에 도움을 주기 위하여 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스
 

10. 클라우드 스토리지

💡
데이터 스토리지를 서비스로서 관리하고 운영하는 클라우드 컴퓨팅 공급자를 통해 데이터를 인터넷에 저장하는 클라우드 컴퓨팅 모델
  • 아마존의 S3 : 가장 인기 있는 클라우드 스토리지
 

11. CDN (Content Delivery Network)

💡
HTML, CSS, 자바스크립트, 이미지 같은 정적인 데이터를 전 세계의 많은 ‘엣지’ 서버에 분산시킴으로서 더 빠르게 제공한다.
notion image
  • 사용자는 데이터를 원본 서버 대신 가장 가까운 엣지 서버에서 다운로드한다.