WEB & WEBAPP
Backend (Node / Spring)
요청 하나가 서버에 도착해 DB를 거쳐 응답으로 돌아오기까지, 데이터가 여러 계층을 통과하는 흐름을 구조적으로 설계하는 훈련입니다. 프레임워크 문법이 아니라 “이 요청이 지금 어느 계층에 있는가”를 항상 그릴 수 있게 되는 것이 목표입니다.
전체 12건
1. OT
클라이언트-서버 구조와 요청 하나가 처리되는 전체 흐름을 먼저 그리고 12주 로드맵을 확인합니다
브라우저가 요청을 보내고 서버가 라우팅·비즈니스 로직·DB 조회를 거쳐 응답을 돌려주기까지 전체 파이프라인을 다이어그램으로 살펴봅니다. 앞으로 12주 동안 어떤 순서로 개념이 쌓이는지 미리 확인해 학습 방향을 잡습니다.
2. HTTP 프로토콜과 REST 설계 원칙
메서드·상태코드·헤더의 의미를 이해하고 자원 중심으로 API를 설계하는 원칙을 익힙니다
GET/POST/PUT/DELETE가 각각 어떤 의도를 표현하는지, 2xx/4xx/5xx 상태코드가 어떤 상황을 나타내는지 실제 응답으로 확인합니다. URL은 자원을, 메서드는 행위를 나타낸다는 REST 설계 원칙을 실습 API로 직접 적용해봅니다.
3. 라우팅과 미들웨어 (Express / Spring MVC)
요청이 여러 미들웨어 계층을 순서대로 통과하며 처리되는 흐름을 이해합니다
요청이 로깅·인증·파싱 같은 미들웨어를 순서대로 거쳐 최종 핸들러에 도달하는 체인 구조를 직접 로그로 추적합니다. next() 호출 하나가 파이프라인의 다음 단계로 넘어가는 신호라는 것을 이해하며 미들웨어를 직접 작성해봅니다.
4. 데이터베이스 기초와 SQL
관계형 모델과 JOIN, 트랜잭션의 개념을 실제 쿼리로 다룹니다
테이블을 정규화해 중복을 줄이는 관계형 모델의 원칙을 이해하고, 여러 테이블을 엮는 JOIN을 직접 작성합니다. 여러 쿼리가 하나의 단위로 성공하거나 실패해야 하는 트랜잭션의 필요성을 계좌 이체 예제로 체감합니다.
5. ORM과 데이터 계층 설계
객체와 테이블을 매핑하는 ORM의 동작 방식과 N+1 문제를 다룹니다
ORM이 객체 조작을 SQL로 변환해 실행하는 과정을 쿼리 로그로 직접 확인하고, 연관 데이터를 반복 조회하다 쿼리 수가 폭발하는 N+1 문제를 재현한 뒤 즉시 로딩(eager loading)으로 해결합니다.
6. 인증과 인가 (세션 / JWT)
로그인 상태를 유지하는 두 가지 방식을 비교하고 직접 구현합니다
서버가 상태를 기억하는 세션 방식과, 토큰 안에 정보를 담아 서버가 상태를 기억하지 않는 JWT 방식의 요청 흐름을 각각 다이어그램으로 비교합니다. 토큰 만료·재발급 전략과 어떤 정보를 토큰에 담으면 안 되는지도 다룹니다.
7. API 설계와 에러 핸들링
일관된 응답 형식을 설계하고 예외를 계층적으로 처리하는 전략을 다룹니다
성공·실패 응답의 형식을 일관되게 통일해 프론트가 예측 가능하게 처리하도록 설계하고, try/catch를 여기저기 흩뿌리는 대신 전역 에러 핸들러 한 곳에서 예외를 잡아 응답으로 변환하는 패턴을 구현합니다.
8. 캐싱과 성능 (Redis)
반복 조회 비용을 줄이는 캐싱 원리와 캐시 무효화 전략을 다룹니다
같은 조회 쿼리를 매번 DB에 던지는 대신 결과를 메모리(Redis)에 잠시 저장해두는 캐싱 패턴을 직접 구현하고 응답 속도 차이를 측정합니다. 원본 데이터가 바뀌었을 때 캐시를 언제 지워야 하는지(무효화) 전략도 함께 다룹니다.
9. 비동기 처리와 메시지 큐
무거운 작업을 응답과 분리해 백그라운드로 넘기는 흐름을 개념적으로 익힙니다
이메일 발송처럼 오래 걸리는 작업을 요청-응답 사이클 안에서 처리하면 응답이 느려진다는 문제를 확인하고, 작업을 큐에 넣어두고 별도 워커가 순서대로 처리하는 비동기 패턴의 흐름을 다이어그램으로 이해합니다.
10. 파일 업로드와 외부 API 연동
서버가 클라이언트와 외부 서비스 사이의 중개자 역할을 하는 흐름을 다룹니다
멀티파트 요청으로 파일을 받아 저장소에 올리는 흐름을 구현하고, 결제·지도 같은 외부 API를 호출할 때 API 키를 클라이언트가 아닌 서버에서만 다뤄야 하는 보안 이유를 이해합니다.
11. 테스트와 API 문서화
단위·통합 테스트를 작성하고 Swagger 등으로 API 계약을 명시합니다
단일 함수를 검증하는 단위 테스트와 여러 계층이 함께 동작하는지 확인하는 통합 테스트의 차이를 실습하고, API 명세를 코드와 함께 자동 문서화해 프론트엔드 팀과의 협업 비용을 줄이는 방법을 다룹니다.
12. 미니 프로젝트
인증·DB 연동을 포함한 API 서버를 처음부터 설계하고 구현합니다
12주 동안 배운 라우팅·DB 설계·인증·캐싱·에러 처리를 하나로 엮어, 회원가입부터 인증이 필요한 리소스 CRUD까지 갖춘 REST API 서버를 처음부터 구현합니다. 코드 리뷰를 통해 계층 분리가 잘 되어 있는지 점검받습니다.