병목을 수치로 증명하고 개선하는 백엔드 개발자입니다. 파일 업로드 응답을 7.5초에서 1.2초로 단축했고, MSA 설계부터 멀티클라우드 인프라 구축까지 문제의 근본 원인을 코드와 구조로 해결합니다.
CS 티켓 처리 / 상태 이력 관리 기능 신규 구현, 레거시 코드 리팩토링
타 팀에서 겪던 원인 불명의 오류를 함께 추적해 업스트림 파서 버그로 규명하고 패치안을 제출했습니다.
RestClient로 FastAPI를 호출할 때 원인 불명의 422 Unprocessable Entity가 발생했습니다. 같은 요청을 ngrok으로 우회하면 정상 동작해 재현 조건부터 불명확했습니다.Upgrade: h2c를 기본 전송합니다. Uvicorn은 이 업그레이드를 무시하지만 httptools 파서가 upgrade 상태에 머물러 on_body 콜백이 호출되지 않고 본문이 유실됐습니다. 서버가 업그레이드를 무시하고 진행하도록 허용한 RFC 7230 §6.7 위반입니다.llhttp_resume_after_upgrade()로 HTTP/1.1 파싱을 재개하는 Cython 패치안과 재현 테스트를 첨부해 httptools에 이슈를 등록했습니다.422 Unprocessable Entity
증상. 검증 오류를 가리켜 직렬화 문제로 오인하게 만듭니다
Upgrade: h2c 기본 전송
Java 21 HttpClient
on_body 미호출
RFC 7230 §6.7 위반
근본 원인. 설정 문제가 아닌 버그로 확정
클라이언트에서 C 파서 바인딩까지 3개 계층을 내려가 상태머신 버그로 확정
HTTP 상태 코드는 원인이 아니라 증상입니다. 422는 검증 실패를 가리키므로 직렬화와 Content-Type을 먼저 의심하게 되는데, 실제 원인은 그보다 두 계층 아래인 파서 상태머신에 있었습니다. 프록시를 거치면 정상 동작한다는 사실도 애플리케이션 코드만 보면 설명되지 않습니다.
내 코드에서 답이 안 나올 때 라이브러리 소스와 RFC까지 내려가 확인하는 것, 그리고 재현 테스트와 패치안을 함께 올려 남이 검증할 수 있게 만드는 것을 이 건으로 익혔습니다.
최신 뉴스 요약 서비스. FastAPI로 뉴스 수집 → 요약 → 추천 파이프라인 구성, LangChain + OpenAI 요약 / 벡터 임베딩, Neo4j 기업 연관도 그래프 시각화
Spring Boot / FastAPI / Neo4j / Redis / Docker 자세히 보기 →상명대 졸업요건 검사 사이트. 컴퓨터과학과 19학번이 모여 만든 프로젝트로 누적 방문자 10만 명 이상 달성
Python / Django / NGINX / Docker / AWS 자세히 보기 →상명대 학우를 위한 택시 카풀 서비스. WebSocket / STOMP 기반 실시간 채팅 파트 구현