디벨롭
로그인
디벨롭
로그인
[가상면접으로 배우는 대규모 시스템 설계] 1장. 단일 서버 시스템 설계(1)
박상준
·
2024년 5월 30일
팔로우
0
0
가상면접으로 배우는 대규모 시스템 설계
목록 보기
1/5
단일 서버 시스템 설계
시스템 설계 개요
단일 서버 시스템은 모든 컴포넌트가 한 대의 서버에서 실행되는 간단한 구성으로 시작한다.
단일 서버에서 웹 앱, DB, 캐시 등이 모두 실행된다.
사용자 요청 처리 흐름
DNS 조회
사용자가 도메인이름(api.mysite.com) 으로 웹사이트에 접속할 때 도메인 이름 서비스(DNS) 를 통해 IP 주소로 변환한다.
HTTP 요청 전달
변환된 IP 주소( 15.125.23.124 등) 으로 HTTP 요청이 웹 서버로 전달됨.
응답의 반환
웹 서버가 HTML 페이지나 JSON 형태의 응답을 반환함
사용자 단말
웹 어플리케이션
서버 구현용 언어(자바 파이썬 등) 와 클라이언트 구현용 언어(HTML, JS 등) 를 사용하여 비즈니스 로직과 데이터 저장을 처리한다.
모바일 앱
모바일 앱과 웹 서버 간 통신을 위해 HTTP 프로토콜을 사용한다.
HTTP 프로토콜을 통해 JSON(Javascript Object Notation) 형식으로 응답 데이터를 반환한다.
DB
서버 분리
사용자가 증가하면 단일 서버로는 충분치 않음. 여러 서버를 두어야 한다
웹/ 모바일 트래픽 처리 서버와 DB 서버로 분리하여 독립적으로 확장이 가능하다
웹/모바일 트래픽 처리 서버
웹 계층
DB 서버
데이터 계층
DB선택 관련
관계형 데이터베이스(RDBMS)
예시로는 MySQL , 오라클, PostgreSQL 등이 있다
특징
자료를 테이블과 열, 컬럼으로 표현한다
SQL 을 사용하여 여러 테이블의 데이터를 관계에 따라 조인이 가능하다.
장점
복잡한 쿼리가 트랜잭션 처리에 강점이 있다.
오랜 기간 동안 검증된 안정적인 시스템이다.
비 - 관계형 데이터베이스(NoSQL)
예시로는 MongoDB, HBase , DynamoDB 등이 있다.
유형
키-값 저장소 (key-value store) - 레디스
그래프 저장소(graph store)
칼럼 저장소(column store)
문서 저장소(document store) - 몽고
선택의 기준
관계형 DB는 대부분의 경우에 적합하다
비-관계형 DB는
낮은 응답 지연시간이 요구되는 경우
비정형의 데이터인 경우(채팅데이터, XML , JSON 을 그대로 저장하는 경우(임시저장 등의 기능이 필요한 경우 사용했음))) + 노션같은 경우 주기적으로 저장되는데 이런 경우 비정형의 데이터를 저장해야되는 케이스임
JSON, YAML, XML 등의 데이터를 직렬화 + 역직렬화가 필요한 경우
대용량의 데이터 저장이 필요한 경우
다음은..
수직적 확장 vs 수평적 확장
박상준
이전 블로그 : https://oth3410.tistory.com/
팔로우
다음 포스트
[대규모 시스템 설계] 1장. 단일 서버 시스템 설계(2)
0개의 댓글
댓글 작성