본문 바로가기
System Design

[사용자 수에 따른 규모 확장성] 단일 서버

by 박성민 2021. 8. 30.

모든 컴포넌트가 단 한대의 서버에서 실행되는 간단한 시스템입니다.

구성

1

사용자 요청 처리 흐름

  1. 사용자는 도메인 이름(api.mysite.com)을 이용하여 웹사이트에 접속합니다. 이 접속을 위해서는 도메인 이름을 도메인 이름 서비스(Domain Name Service ,DNS)에 질의하여 IP 주소로 변환하는 과정이 필요합니다. DNS는 보통 제3 사업자(third party)가 제공하는 유료 서비스를 이용하게 되므로, 우리 시스템의 일부는 아닙니다.
  2. DNS 조회 결과로 IP 주소가 반환됩니다. 이 주소는 웹 서버의 주소입니다.
  3. 해당 IP 주소로 HTTP(HyperText Transfer Protocol) 요청이 전달됩니다.
  4. 요청을 받은 웹 서버는 HTML 페이지나 JSON 형태의 응답을 반환합니다.

요청 단말 종류

  • 웹 애플리케이션: 비즈니스 로직, 데이터 저장 등을 처리하기 위해서는 서버 구현용 언어(자바, 파이썬)를 사용하고, 프레젠테이션용으로는 클라이언트 구현용 언어(HTML, 자바스크립트 등)를 사용합니다.
  • 모바일 앱: 모바일 앱과 웹 서버 간 통신을 위해서는 HTTP 프로토콜을 이용합니다. HTTP 프로토콜을 통해서 반환될 응답 데이터의 포맷으로는 보통 JSON(JavaScript Object Notation)이 그 간결함 덕에 널리 쓰입니다.
    • JSON 예시
{
    "id": 12,
    "firstName": "John",
    "lastName": "Smith",
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": 10021
    },
    "phoneNumbers": [
        "212 555-1234",
        "646 555-4567"
    ]
}

참조

댓글