[프로젝트]/수어 연구소

[수어 연구소] 백엔드 디버깅 -HTTP상태코드

우당탕탕 개발 일지 2026. 4. 22. 22:35
728x90

우당탕탕 개발 일지 입니다.python, 앱 , 연구실 프로젝트만 하다가 처음으로 웹 프로젝트를 제대로 하게 되었습니다.

이번에 카부캠 면접을 준비하고 보면서 평소에 프로젝트 할 때 고민들을 많이 정리해둬야한다고 느꼈습니다... 막상 개발하며 내가 뭐가 힘들었는지 쉽게 잊어버리더라구요..그래서 매번 개발할 떄 생긴 에러사항들을 정리하려고 합니다!! 웹 개발이 처음이라 제 주관 투성이 입니다. 개발 경험이 있으신 분이 있으면 댓글 많이 남겨주시면 그쪽 방향으로 많이 알아보겠습니다. 

 

 

 

Q. HTTP 304 : not modified 는 뭘까? 

브라우저가 한번 받은 리소스(js,css,이미지)를 캐시에 저장해두면

다음 요청때 서버에 내가 가진 버전이 아직 유효하냐고 물어봄. → 서버가 유효해. 변경된거 없어.그대로 내가 가진 캐시를 꺼내 사용함. 

 

200인 경우 요청 성공하면 파일 내용을 전송하고 그 내용을 사용함.

304의 경우 요청 성공하면 내가 가진 캐시에서 꺼내서 사용함.

 

응답 메세지로 이해해보자. 

 

HTTP Response Message

상태 줄 HTTP/1.1 200 OK
헤더 Key: Value
(빈줄) 구분선 
본문 실제 데이터 

 

(200인 경우 파일 내용이 있고, 304인 경우 비어 있습니다) 

 


 

Q 그럼 응답 메세지에서  헤더는 뭐지 어떤 값으로 이뤄져 있지? (자주 보는 헤더 top5)

  • Content-Type: 본문이 뭔지 (JSON? HTML? 이미지?)
  • Content-Length: 본문 크기
  • Cache-Control: 캐시 정책
  • ETag / Last-Modified: 캐시 검증용
  • Authorization: 인증 토큰

 

 

 

Q 응답이 이상할 때 체크 순서

  1. 상태 코드 확인 (200인가? 304인가? 4xx인가?)
  2. Content-Type 확인 (JSON 기대했는데 HTML 오는 경우 많음)
  3. 본문 확인 (비어있는지, 이상한 값인지)
  4. 요청 헤더 확인 (인증 토큰, Origin 등이 제대로 갔는지)

정리할 때 저장해둔거라 출처를 모르겠습니다ㅠ 문제시 삭제하겠습니다.

 

 


시드 데이터 초기화 작업의 2가지  방법 

 

개발 시작전 

  1. git pull (최신 코드 받기) : 
git push origin master

 

2. 서버 재시작 : 

$ uvicorn main:app --reload

3. DB 마이그레이션 (테이블 구조 변경) 

 

4. 시드 실행 → Swagger에서 Execute 또는 AJAX(fetch)

 

5. 개발 시작

 

 


 

 

AJAX, Swagger

→ 터미널에서 보이는 것 (서버 입장), Swagger에서 보이는 것 (클라이언트 입장)

 

Swagger는 개발 도구

  • 개발 중에만 씀
  • API 문서 + 테스트 UI
  • 사용자는 절대 안 봄

fetch는 프로덕션 코드

  • 실제 앱에 들어가는 코드
  • 사용자가 버튼 누를 때 자동 실행
  • 개발자도 디버깅 시 콘솔에서 수동 실행 가능

 

Q 언제 사용하는가?

API 개발 직후 백엔드 개발자 Swagger 자기가 만든 API 테스트
프론트 개발 시작 프론트 개발자 Swagger API 사양 확인
프론트 코드 작성 프론트 개발자 fetch 코드 작성 실제 사용자용 코드
통합 테스트 프론트 개발자 브라우저에서 버튼 클릭 (fetch 자동 실행) 사용자 시나리오 테스트
버그 발생 시 개발자 콘솔 fetch 또는 Swagger 빠른 API 테스트
프로덕션 실제 사용자 (모름, fetch가 자동 실행됨) 앱 사용

 

<용어>

**프로덕션(Production)이란?

  • "실제 사용자가 쓰는 진짜 서비스"를 말합니다.
  • 앱스토어에 올라간 앱
  • 실제 도메인으로 접속하는 웹사이트
  • 진짜 돈이 오가는 서비스
  • 실제 사용자 데이터가 저장되는 곳
  • 프로덕션의 반댓말은 개발 환경

** 개발 환경 순서

개발 → 테스트 → 스테이징 → 프로덕션

(Dev) (Test) (Staging) (Production)

 

 

**시드 : 빈 DB → 시드 실행 → 기본 데이터 채워짐

 

 

 

 


 

저번 시간이 너무 이것 저것 한것 같아서 노션에 할 내용을 좀 정리하면서 블로그를 쓰려고 합니다. 

 

이렇게 매 학기 내용을 이렇게 남깁니다.
졸프2 안에 정리!