Skip to content

백엔드 학습 로드맵 ​

클라이언트의 요청을 처리하고, 데이터를 저장하고, 서비스를 운영하기까지. 백엔드의 기본기를 순서대로 익히고, 그 위에 규모와 도구를 올립니다.

전체 학습 순서 ​

단계주제목표
01웹과 HTTP클라이언트와 서버 사이의 요청·응답 이해하기
02언어와 서버 기초선택한 언어로 서버를 실행하고 요청 처리하기
03API 설계와 구현리소스를 조회·생성·수정·삭제하는 API 만들기
04데이터 모델링과 SQL데이터 구조를 설계하고 질의하기
05쿼리 성능과 트랜잭션느린 질의를 찾고 동시 접근 다루기
06인증과 인가사용자를 식별하고 접근 권한 제한하기
07서버 보안입력과 설정에서 생기는 취약점 막기
08테스트와 예외 처리정상 동작과 실패 상황 검증하기
09로그와 관측운영 중인 서비스의 상태 파악하기
10배포와 운영서비스를 배포하고 안정적으로 유지하기

01. 웹과 HTTP ​

  • 인터넷 기초: IP, DNS, 포트, 클라이언트와 서버
  • 도메인 이름과 호스팅: DNS 레코드와 서버를 두는 형태
  • HTTP 요청과 응답: 메서드, 상태 코드, 헤더, 본문
  • 연결 재사용과 HTTP/1.1·HTTP/2의 차이
  • 외부 API를 부를 때의 타임아웃과 재시도
  • 캐시 헤더와 콘텐츠 협상
  • HTTPS와 TLS의 역할, JSON 데이터 형식
  • 브라우저 개발자 도구와 curl로 요청 확인하기

02. 언어와 서버 기초 ​

  • 한 가지 서버 언어 선택과 기초 문법 익히기
  • Git으로 변경 이력을 남기고 GitHub·GitLab에서 코드 주고받기
  • 패키지 관리, 모듈, 환경 변수
  • 프로세스, 스레드와 이벤트 루프 등 동시성 모델의 차이
  • 비동기 처리와 오류 처리
  • 서버 실행과 라우팅, 요청 데이터 읽기
  • 미들웨어로 공통 처리 분리하기

03. API 설계와 구현 ​

  • 리소스 중심의 URL과 HTTP 메서드 설계
  • 라우터·서비스·리포지토리의 역할 분담
  • CRUD: 생성, 조회, 수정, 삭제
  • 입력 검증과 일관된 응답 형식
  • 상황에 맞는 상태 코드 선택 기준
  • 목록 페이지네이션, 필터링, 정렬
  • API 버전 관리와 호환성 유지
  • REST 외의 선택지: GraphQL과 gRPC가 맞는 자리
  • OpenAPI 명세와 요청·응답 예시를 포함한 API 문서 작성

04. 데이터 모델링과 SQL ​

  • 관계형 데이터베이스와 SQL 기초
  • 테이블 설계, 기본 키, 외래 키, 제약 조건
  • 정규화와 의도적인 비정규화
  • 테이블 간 관계와 JOIN
  • 집계와 그룹화
  • 관계형과 NoSQL의 선택 기준
  • 자주 쓰이는 데이터베이스(PostgreSQL, MySQL, SQLite)와 행 지향·열 지향의 차이
  • 저장소를 고르는 기준과 관리형 서비스

05. 쿼리 성능과 트랜잭션 ​

  • 인덱스의 동작과 복합 인덱스의 컬럼 순서
  • 실행 계획 읽기
  • N+1 문제가 생기는 지점과 해결 방법
  • 트랜잭션의 ACID와 격리 수준, 교착 상태
  • 커넥션 풀과 동시 접속 처리
  • ORM이 실제로 만들어 보내는 질의 확인하기
  • 매개변수 바인딩과 스키마 마이그레이션

06. 인증과 인가 ​

  • 인증과 인가의 차이
  • 회원가입, 로그인, 로그아웃 흐름
  • 비밀번호 해시와 솔트, bcrypt·Argon2를 쓰고 MD5·SHA를 쓰지 않는 이유
  • 세션과 토큰(JWT) 방식의 차이, 만료와 갱신
  • 역할 기반 접근 제어와 사용자별 데이터 접근 제어
  • 소셜 로그인과 OAuth, OpenID Connect의 기본 흐름

07. 서버 보안 ​

  • SQL 인젝션과 매개변수 바인딩
  • 명령어 인젝션과 경로 조작
  • 신뢰할 수 없는 입력의 검증과 정규화
  • 쿠키 보안 속성, CORS와 CSRF
  • 비밀 정보 관리와 환경 변수 분리
  • 속도 제한과 무차별 대입 방어
  • 민감 정보와 내부 오류 상세 정보의 노출 방지
  • 의존성 취약점 점검과 갱신
  • OWASP Top 10으로 빠진 항목 훑어보기

08. 테스트와 예외 처리 ​

  • 단위 테스트와 통합 테스트
  • 사용자 흐름을 끝에서 끝까지 확인하는 기능 테스트
  • 테스트 데이터 준비와 격리
  • 정상 요청, 잘못된 입력, 권한 없는 접근 검증
  • 외부 의존성을 대체하는 테스트 더블
  • 예외 처리 전략과 일관된 오류 응답

09. 로그와 관측 ​

  • 구조적 로깅과 로그 수준 구분
  • 요청을 추적하는 상관관계 ID
  • 지표 수집: 처리량, 응답 시간과 오류율
  • 계측과 수집 도구: OpenTelemetry, Prometheus와 Grafana, Datadog
  • 알림 기준과 임계치 설정
  • 장애 상황에서 원인을 찾아가는 순서

10. 배포와 운영 ​

  • 개발·운영 환경 설정 분리
  • 빌드와 실행, 환경 변수 주입
  • 컨테이너(Docker)로 실행 환경 통일하기
  • 앞단에 둔 웹 서버(Nginx, Caddy)에 TLS와 정적 파일 맡기기
  • CI/CD(GitHub Actions, GitLab CI)의 기본 흐름과 배포 전 테스트
  • 무중단 배포와 배포 롤백
  • 헬스 체크와 버전 엔드포인트, HTTPS 설정
  • 데이터 백업과 복구

기본기를 익힌 다음 ​

기본기 위에 올리는 단계입니다. 한 번에 다루기보다 필요해지는 시점에 주제를 골라 확장합니다.

성능과 캐시 ​

  • 캐시 계층: HTTP 캐시와 CDN, 서버 측 캐시(Redis, Memcached)
  • 캐시 만료와 무효화 기준, 동시에 비었을 때의 쏠림
  • 읽기 복제본으로 조회 부하 나누기
  • 부하 테스트로 한계 지점 찾기

비동기 작업과 메시지 ​

  • 메시지 브로커로 처리 분리하기: Kafka, RabbitMQ
  • 백그라운드 작업과 예약 작업, 재시도와 지연 큐
  • 중복 처리와 멱등성, 순서 보장의 한계

실시간 데이터 ​

  • 폴링, Server-Sent Events와 WebSocket의 선택 기준
  • 연결 수 관리와 서버가 여러 대일 때의 메시지 전파

데이터베이스 확장 ​

  • 데이터 복제와 샤딩, CAP 정리가 말하는 제약
  • 분석 질의 분리: 열 지향 저장소(ClickHouse, BigQuery)와 MySQL HeatWave처럼 한 DB에서 둘을 겸하는 제품
  • 목적별 저장소: 문서(MongoDB), 키-값(DynamoDB), 그래프(Neo4j), 시계열(InfluxDB, TimescaleDB)
  • 전문 검색 엔진: Elasticsearch, OpenSearch, Solr

AI를 활용한 개발 ​

  • LLM의 동작 방식과 기존 코딩 방식과의 차이
  • AI 보조 코딩 도구: Claude Code, Cursor, Copilot
  • 코드 리뷰, 리팩터링, 문서 생성에 활용하기
  • 임베딩과 벡터 검색, 가지고 있는 문서를 근거로 답하게 하는 RAG
  • LLM API로 기능 붙이기: 스트리밍 응답, 구조적 출력, 함수 호출
  • 제공자(Anthropic, OpenAI, Gemini)별 차이와 비용·지연 시간 다루기
  • 에이전트, MCP로 외부 도구 연결하기
  • 생성된 코드를 그대로 믿지 않고 검증하는 습관

구조와 아키텍처 ​

  • 모놀리식에서 떼어 내는 기준, 마이크로서비스와 서버리스
  • Twelve-Factor App이 말하는 설정과 상태 다루기
  • 도메인 모델링, 의존성 역전, 모듈 경계 나누기
  • 연쇄 실패 막기: 서킷 브레이커, 스로틀링과 배압, 점진적 성능 저하
  • 컨테이너 오케스트레이션(Kubernetes)과 인프라 운영은 데브옵스 로드맵에서 이어집니다

처음부터 모든 기술을 다루기보다, 앞 단계의 흐름을 이해한 뒤 필요한 주제를 더해 보세요.

Last updated: