👋 환영합니다! 쥐뿔도 모르는 개발자가 백엔드, 인프라, 트러블슈팅 등의 경험을 공유하고 기록하는 개발 블로그입니다 ✨

API 성능 P95 7초 → 0.1초 백엔드 성능 최적화 — 느린 곳을 찾는 게 고치는 것보다 어려웠다

안녕하세요. 프롭테크 플랫폼에서 백엔드 개발자로 근무 중인 정정일입니다. 어느 날 평소처럼 모니터링을 위해 Grafana 대시보드를 들여다보고 있었습니다. 평균 응답시간은 대부분 수백ms 이내라 “괜찮네” 하고 넘어가려다 습관적으로 P95(상위 5%의 느린 요청) 지표로 눈을 돌려봤습니다. 이쪽은 상황이 좀 달랐습니다. 일부 API에서 tail latenc...

더보기 →

2026년 3월 4일

모듈러 모놀리식 전환 후 CI가 45분이 걸렸다 - Spring 테스트 파이프라인 77% 최적화하기

안녕하세요. 프롭테크 플랫폼에서 백엔드 개발자로 근무 중인 정정일입니다. 이전 글에서 혼자 남은 백엔드 개발자가 13개 마이크로서비스를 모듈러 모놀리식으로 통합한 과정을 다뤘습니다. 그 글 마지막에 이렇게 적었었는데요. “전환 후에 CI 테스트 빌드 시간이 45분으로 급증하는 문제를 겪기도 했는데, 이 부분은 후속 글에서 다루겠습니다” 이 글이 바로 그 후...

더보기 →

2026년 2월 27일

MSA, 우리에겐 과했다 - 모듈러 모놀리식 전환기

안녕하세요. 저는 프롭테크 플랫폼에서 백엔드 개발자로 근무 중인 정정일입니다. 저희 회사는 모놀리식 아키텍처로 이루어진 자바 서블릿 레거시 서비스를 MSA로 무중단 마이그레이션을 성공적으로 완료하고 운영 중에 있었습니다. 그 과정이 쉽지는 않았지만, MSA의 장점과 단점을 몸소 체험하면서 많은 것을 배울 수 있었죠. 이와 관련된 경험을 곱씹어 보면서 MSA...

더보기 →

2026년 2월 20일

매일 바뀌는 AI 코딩 에이전트 생태계: oh-my-opencode, oh-my-claudecode, OpenClaw, Agent Teams

안녕하세요. 프롭테크 플랫폼에서 백엔드 개발자로 근무 중인 3년차 백엔드 개발자 정정일입니다. 최근 AI 코딩 도구 생태계가 정말 빠르게 변하고 있습니다. 며칠 전까지 유행하던 도구가 다음 주에는 차단되고, 그 다음 주에는 공식 기능으로 출시되는… 마치 롤러코스터 같은 한 달이었습니다. 이번 글에서는 oh-my-opencode라는 커뮤니티 도구가 유행하고,...

더보기 →

2026년 2월 9일

새벽 3시 에러 알림, 이제 AI가 알아서 고치게 하기: OpenClaw와 에러 자동화 이야기

안녕하세요. 프롭테크 플랫폼에서 백엔드 개발자로 근무 중인 3년차 백엔드 개발자 정정일입니다. TL;DR 새벽 에러 알림 대응을 OpenClaw로 자동화했습니다. Loki/Tempo 폴링 + 텔레그램 Forward 하이브리드 방식으로 AI가 에러 분석부터 PR 생성까지 처리하고, 사람은 코드리뷰만 합니다. 요즘 AI Agent가 개발자들의 협업 방식...

더보기 →

2026년 2월 6일

DB 정규화, 안 하면 어떻게 되는지 직접 겪어봤습니다

DB 정규화의 중요성은 누구나 알고 있지만, 실무에서는 의외로 간과하기 쉬운 것 같습니다. “JOIN 한 번 줄이면 성능이 좋아지니까”, “그냥 텍스트로 저장하면 편하니까” 하는 이유로 비정규화를 택하게 되는 순간이 꽤 있죠. 저는 2025년 3월에 지금 팀에 합류했는데, 합류했을 때 이미 DB가 그런 상태였습니다. 당시에는 제가 서비스를 정확하게 파악하고...

더보기 →

2026년 2월 3일

RPC 제대로 이해하기: JSON-RPC, gRPC, 그리고 흔한 오해들

얼마 전 MCP(Model Context Protocol) 글을 쓰면서 JSON-RPC를 다루게 되었습니다. 그런데 글을 쓰다 보니 스스로에게 질문이 생기더라구요. “JSON-RPC, gRPC가 경량화됐다고 하는데, HTTP 위에서 REST랑 뭐가 다르지?” 이 질문에 명확하게 답하려면 RPC가 뭔지부터 제대로 이해해야 할 것 같았습니다. 그래서 이번 글에...

더보기 →

2026년 1월 27일

MCP(Model Context Protocol) 이해하기: AI와 외부 시스템을 연결하는 표준 프로토콜

요즘 AI 분야에서 MCP(Model Context Protocol)에 대한 이야기가 많이 들려옵니다. 저도 이전 글에서 MCP 서버를 직접 만들어 활용하는 경험을 공유했었는데요. 그런데 막상 MCP를 사용하면서도 “MCP가 정확히 어떤 구조로 되어있지?”, “LLM은 MCP 서버와 어떻게 통신하지?” 같은 궁금증이 있었습니다. 이번 글에서는 MCP의 내부...

더보기 →

2026년 1월 25일

[MSA에 관한 고찰 7/7편] 우리는 정말 MSA가 필요한가?

전편: [MSA에 관한 고찰 6/7편] 이벤트 기반 데이터 정합성 지금까지 6편에 걸쳐 MSA의 여러 측면을 살펴봤습니다. 서비스를 어떻게 나눌지, 어떻게 통신할지, 장애에 어떻게 대응할지, 데이터를 어떻게 분리하고 정합성을 맞출지까지요. 정말 여러분과 제가 실제로 한 팀에서 MSA를 선택하게 되면서 함께 문제를 맞이하고 고민하는 것처럼 느끼실 수 있게 이...

더보기 →

2026년 1월 22일

[MSA에 관한 고찰 6/7편] MSA에서의 이벤트 기반 데이터 정합성 문제 및 해결방법

전편: [MSA에 관한 고찰 5/7편] 데이터는 어떻게 분리해야 하는가 저번 편에서 저희는 MSA 환경에서 DB를 왜 분리해야 하는지, 그리고 분리했을 때 JOIN이 안 되는 문제를 어떻게 해결하는지 살펴봤습니다. API Composition과 데이터 복제라는 두 가지 방법이 있었죠. 그런데 “데이터 복제 방법을 선택했다” 고 해서 끝이 아닙니다. 여기서부...

더보기 →

2026년 1월 21일