실무에서 자주 겪는 다양한 문제를 효과적으로 해결하는 법
서비스 환경에서는 커넥션을 닫지 않아 서버가 멈추고 외부 API의 지연이 전체 장애로 번지며 사소한 설정 실수가 사용자 전체에 영향을 주는 일이 실제로 발생한다. 이 책은 주니어 백엔드 개발자가 실제 현장에서 자주 마주치는 문제들을 스스로 이해하고 해결할 수 있도록 돕는 실무 밀착 가이드다. 겉보기엔 잘 돌아가는 서비스라도 규모가 커지고 사용자가 늘어나면 언제든 위기 상황에 직면할 수 있다. 이 책은 성능 저하, DB 연결 오류, 비동기 연동 문제, 동시성 제어, 인프라 운영, 보안 취약점 등 서비스 운영 과정에서 겪게 되는 핵심 이슈를 살펴보면서 왜 이런 문제가 발생하는지, 어떻게 대응해야 하는지를 체계적으로 알려준다. 이 책으로 실무에서의 혼란과 시행착오를 줄이고 서비스 운영 과정에서 발생할 여러 문제를 예방하거나 해결하는 역량을 키울 수 있을 것이다.
1장 들어가며
코딩을 할 수 있게 된 것일 뿐
2장 느려진 서비스, 어디부터 봐야 할까
처리량과 응답 시간
서버 성능 개선 기초
3장 성능을 좌우하는 DB 설계와 쿼리
성능에 핵심인 DB
조회 트래픽을 고려한 인덱스 설계
몇 가지 조회 성능 개선 방법
알아두면 좋을 몇 가지 주의 사항
실패와 트랜잭션 고려하기
4장 외부 연동이 문제일 때 살펴봐야 할 것들
우리는 문제가 없는데
타임아웃
재시도
동시 요청 제한
서킷 브레이커
외부 연동과 DB 연동
HTTP 커넥션 풀
연동 서비스 이중화
5장 비동기 연동, 언제 어떻게 써야 할까
동기 연동과 비동기 연동
별도 스레드로 실행하기
메시징
트랜잭션 아웃박스 패턴
배치 전송
CDC(Change Data Capture)
6장 동시성, 데이터가 꼬이기 전에 잡아야 한다
서버와 동시 실행
잘못된 데이터 공유로 인한 문제 예시
프로세스 수준에서의 동시 접근 제어
DB와 동시성
잠금 사용 시 주의 사항
단일 스레드로 처리하기
7장 IO 병목, 어떻게 해결하지
네트워크 IO와 자원 효율
가상 스레드로 자원 효율 높이기
논블로킹 IO로 성능 더 높이기
언제 어떤 방법을 택할까
8장 실무에서 꼭 필요한 보안 지식
중요한 보안
인증과 인가
데이터 암호화
HMAC을 이용한 데이터 검증
방화벽으로 필요한 트래픽만 허용하기
감사 로그(audit log) 남기기
데이터 노출 줄이기
비정상 접근 처리
시큐어 코딩
개인 보안
9장 최소한 알고 있어야 할 서버 지식
개발자와 서버
OS 계정과 권한
프로세스 확인하기
백그라운드 프로세스
디스크 용량 관리
파일 디스크립터 제한
시간 맞추기
크론으로 스케줄링하기
alias 등록하기
네트워크 정보 확인
10장 모르면 답답해지는 네트워크 기초
네트워크 기초를 모르면
노드, 네트워크, 라우터
IP 주소와 도메인
NAT
VPN
프로토콜과 TCP, UDP, QUIC
11장 자주 쓰는 서버 구조와 설계 패턴
MVC 패턴
계층형 아키텍처
DDD와 전술 패턴
마이크로서비스 아키텍처
이벤트 기반 아키텍처
CQRS 패턴
부록 A: 처음 해보는 성능 테스트를 위한 기본 정리
성능 테스트 종류
포화점과 버클존
주요 측정 지표
성능 테스트 설계 시 고려 사항
성능 테스트 도구
성능 테스트 실행 시 주의 사항
부록 B: NoSQL 이해하기
NoSQL이란
NoSQL 종류
NoSQL 도입 시 고려 사항
CAP 정리
부록 C: DB로 분산 잠금 구현하기
잠금 정보 저장 테이블
분산 잠금 동작
DB 잠금 구현
프레임워크는 알려주지 않는 진짜 백엔드 실무, 시작하자마자 부딪히는 문제들의 해법을 한 권에!
이 책은 성능 병목, DB 쿼리, 보안, 네트워크 등 실무에서 마주치는 핵심 이슈를 실제 사례 기반으로 풀어낸다. 왜 문제가 생기고 어떻게 풀어야 하는지를 짚어주며 시행착오 없이 한 단계 더 성장할 수 있도록 돕는다. 코드 너머의 운영과 안정성을 고민하는 개발자에게 지금 꼭 필요한 실전 가이드다.
★ 대상 독자
이 책은 백엔드 개발을 시작한 지 몇 년 안 된 주니어 개발자를 대상으로 한다. 백엔드 개발자로 성장하기 위해 필요한 다양한 기초 지식을 쌓을 수 있을 것이다.
★ 이 책의 구성
이 외에 부록 A부터 C까지는 백엔드 개발자가 참고하면 좋을 내용을 추가로 담고 있다.