모든 컴포넌트가 단 한대의 서버에서 실행되는 간단한 시스템입니다.
구성
사용자 요청 처리 흐름
- 사용자는 도메인 이름(api.mysite.com)을 이용하여 웹사이트에 접속합니다. 이 접속을 위해서는 도메인 이름을 도메인 이름 서비스(Domain Name Service ,DNS)에 질의하여 IP 주소로 변환하는 과정이 필요합니다. DNS는 보통 제3 사업자(third party)가 제공하는 유료 서비스를 이용하게 되므로, 우리 시스템의 일부는 아닙니다.
- DNS 조회 결과로 IP 주소가 반환됩니다. 이 주소는 웹 서버의 주소입니다.
- 해당 IP 주소로 HTTP(HyperText Transfer Protocol) 요청이 전달됩니다.
- 요청을 받은 웹 서버는 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"
]
}
참조
'System Design' 카테고리의 다른 글
[사용자 수에 따른 규모 확장성] 무상태(stateless) 웹 계층 (0) | 2021.09.07 |
---|---|
[사용자 수에 따른 규모 확장성] 콘텐츠 전송 네트워크(CDN) (0) | 2021.09.02 |
[사용자 수에 따른 규모 확장성] 캐시 (0) | 2021.09.01 |
[사용자 수에 따른 규모 확장성] 수직적 규모 확장 vs 수평적 규모 확장 (0) | 2021.08.31 |
[사용자 수에 따른 규모 확장성] 데이터베이스 (0) | 2021.08.31 |
댓글