본문 바로가기
개발서적리뷰/대규모 서비스를 지탱하는 기술

🚀 1장 : 대규모 웹 서비스 개발 오리엔테이션

by RoJae 2025. 4. 21.

“설계는 언제나 장애를 염두에 두고 시작해야 한다.”

“서비스는 기획이 아니라 인프라로 완성된다.”

 

학생이 아닌 실무자 입장에서 읽어보니 하나같이 다 서비스 개발 입장에서의 철학서적 같은 느낌이다.

틈틈이 내가 모르는 리눅스 명령어도 있던데 좀 정리해봐야겠다.


📌 대규모 서비스를 설계하는 첫걸음

『대규모 서비스를 지탱하는 기술』의 1장은 우리가 흔히 간과하는 질문 하나로 시작한다.

“당신이 만든 서비스에 10배, 100배의 사용자가 몰린다면 버틸 수 있는가?”

 

이 질문은 단순히 서버 스펙을 높이거나 DB를 튜닝하는 차원이 아니다. 설계 자체가 다르다.
서비스의 구조, 데이터 흐름, 장애 대응 방식까지 처음부터 "규모"를 염두에 두고 설계해야 한다는 것이 핵심이다.

 


⚙️ ‘단순한 구조’가 강력하다

책에서 강조하는 핵심 철학 중 하나는 바로 단순함의 미학이다.

“복잡한 시스템일수록 장애가 발생할 확률은 기하급수적으로 증가한다.”

대규모 서비스를 지탱하는 시스템은 많은 구성요소를 가지고 있지만, 각각은 가능한 한 단순하게 유지되어야 한다.
“작게 나누고, 느슨하게 연결하라.”는 원칙이 중요한 이유다.

 

 


🧱 시스템 구성요소는 이렇게 나뉜다

1장은 시스템을 구성하는 기본 요소들을 다음과 같이 분해해 설명한다:

  • 클라이언트: 브라우저, 앱 등 사용자의 진입점
  • 웹서버: 정적 콘텐츠를 빠르게 서빙
  • 애플리케이션 서버: 비즈니스 로직 처리
  • DB 서버: 데이터 저장과 조회
  • 캐시 서버: 빠른 응답 속도를 위한 보조 기억장치
  • 메시지 큐: 비동기 처리를 위한 핵심 도구
  • 로드 밸런서: 트래픽 분산의 핵심

단순히 “이런 게 있다” 수준이 아니라, 왜 이 구조여야 하는지, 각 구성 요소가 어떤 역할을 담당하는지에 대한 맥락 중심의 설명이 돋보인다

 


🌐 ‘Web 스케일’이라는 말의 무게

“웹 스케일”이라는 말은 단순한 과장이 아니다.
트래픽이 몰리면 병목이 생기고, 병목은 장애로 이어진다.
이 장에서는 실제 서비스 운영 시 마주하는 다양한 문제점들 — 예를 들어, 데이터베이스 락, 쓰레드 블로킹, 트래픽 폭주에 따른 과부하 등을 짚으며,
예방적 설계가 얼마나 중요한지 강조한다.


✨ 이 장을 읽고 나서 느낀 점

이 책은 기술 스택이나 언어에 국한된 이야기가 아니다.
‘운영 관점에서 바라보는 아키텍처의 본질’을 짚는다.
기술자는 코드를 짜는 사람이 아니라, 서비스를 ‘지탱’하는 사람이라는 걸 다시 한번 깨닫게 해준다.


📚 다음 장 프리뷰

2장에서는 실제 사례를 바탕으로 “트래픽을 견디는 구조”를 어떻게 구성할 수 있을지, 스케일링 전략에 대해 본격적으로 다룬다.
Auto Scaling, 캐싱 전략, 데이터베이스 샤딩 등 실전적인 내용이 가득하니 기대해도 좋다.


 

👉 정리하자면, 이 책의 첫 장은 다음의 한 문장으로 요약된다.

“설계는 언제나 장애를 염두에 두고 시작해야 한다.”

댓글