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

서비스 장애는 사용자가 알려주지 않아도 알아야한다 - 사내 모니터링 시스템 구축기

안녕하세요. 프롭테크 플랫폼에서 백엔드 개발자로 근무 중인 3년차 백엔드 개발자 정정일입니다. 올해 3월에 팀에 합류한 후, 눈에 띈 것 중 한가지는 팀에서 모니터링 시스템에 개선할만한 부분들이 보였다는 것이었습니다. 기존에는 AWS CloudWatch를 이용하고 있었지만 효과적으로 활용되지 않고 있다는 점이 존재했습니다. 특히 장애가 발생하더라도 사용자 ...

더보기 →

2025년 7월 4일

네이밍 컨벤션의 부재는 장애로 이어진다.

안녕하세요 저는 프롭테크 플랫폼에서 백엔드 개발자로 근무 중인 3년차 백엔드 개발자 정정일입니다. 오늘은 소프트웨어 개발에서 중요한 것은 알지만 중요성에 비해 리소스 투자를 간과하기 쉬운 네이밍 컨벤션의 중요성에 대해 이야기해보려 합니다. 최근 저희 팀에서 실제로 겪었던 문제를 통해, 일관되지 않은 네이밍이 어떻게 시스템 안정성을 위협할 수 있는지 공유드리...

더보기 →

2025년 6월 30일

😨 입금된 돈이 사라졌다? 계좌 잔고 정합성 검증 배치, Tasklet에서 Chunk & Partitioning으로의 전환기

안녕하세요. 저는 대출 및 투자 연계 플랫폼에서 백엔드 개발자로 근무 중인 2년 차 개발자 정정일입니다. 운영 중인 회사 서비스에서 내부적으로 데이터 정합성을 검증하던 중, 트랜잭션 처리 시간과 배치 작업의 비효율성으로 은행 계좌 잔고와 서비스 내부 포인트(Point)의 불일치로 인해 정합성 검증 작업이 실패하거나, 잘못된 노티가 발송되는 경우가 있었습니다...

더보기 →

2024년 12월 24일

🚀 외부 API 성능 개선기: Look-aside 캐시로 5100ms ➔ 57ms 단축

안녕하세요. 저는 현재 대출 및 투자 연계 플랫폼에서 백엔드 개발자로 근무 중인 2년 차 개발자입니다. 이번 글에서는 Look-aside 캐시 패턴을 활용하여 외부 API 성능을 개선한 경험을 공유하려고 합니다. 이 과정에서 제가 직면했던 문제들은 단순하지 않았습니다. API 호출의 지연, 중복 호출로 인한 비용 문제, 그리고 사용자 경험의 저하 등 다양한...

더보기 →

2024년 12월 16일

Cherry-pick 지옥에서 탈출하기: 주니어 개발자들의 PR 단위 코드리뷰와 Git Flow 도입기

들어가며 안녕하세요. 이 글에서는 Pull Request(PR) 이 없던 회사의 혼돈의 로컬 개발 환경에서, PR 단위 코드리뷰와 Git Flow를 도입했던 경험을 풀어보려고 합니다. 당시 저희 팀은 각자 로컬에서 Merge하고 Push하는 방식으로 작업했고, 모든 개발이 단일 브랜치(dev)에서 이루어졌기에 Cherry-pick 남발과 그로 인한 conf...

더보기 →

2024년 12월 10일

내가 느낀 클린 코드와 현실의 괴리

개발을 하다 보면 “클린 코드” 라는 단어를 접하게 됩니다. 코드는 읽기 쉽고, 의도를 명확히 드러내며, 유지보수하기 쉬워야 한다는 원칙들이죠. 처음 클린 코드를 배울때 참 많은 것들을 느꼈습니다. 변수하나의 네이밍을 붙이면서도 많은 고민을 해야하구나 하는 생각을 처음으로 하게 됐었거든요. 하지만 실무에 발을 들이고 여러 프로젝트를 경험하다 보니 현실은 생...

더보기 →

2024년 12월 3일

[회고록] JPA와 MyBatis 혼용으로 발생한 HikariCP Deadlock 문제를 해결하며

2024년 초, 예상치 못한 문제와 마주한 사건이 있었습니다. (해당 글) 당시의 상황에 대한 회고록을 작성하려 합니다. JPA와 MyBatis를 혼용한 코드에서 HikariCP Deadlock 문제가 발생했는데요. 몇 달간 문제없이 운영되던 코드였기에 더욱 당황스러웠습니다. 해결 과정에서 JPA, HikariCP, 그리고 영속성 컨텍스트의 동작 원리를 깊...

더보기 →

2024년 12월 2일

JPA의 이념과 SQL의 간극

JPA를 사용하다보면 한번씩 “어라? 이걸 지원하지 않네?” 하는 순간을 마주하게 됩니다. JPA(Java Persistence API)는 Java 애플리케이션에서 데이터베이스와 객체 간의 간극을 줄이고, 객체 지향적 개발을 돕기 위해 설계된 도구입니다. 그러나 JPA를 사용하며 얻는 장점에도 불구하고, 실무에서 SQL의 기능과 JPA의 기능 사이에서 간극...

더보기 →

2024년 11월 28일

DB Replication 복제 지연 해결

이번에 회사에서 직면했던 복제지연 문제에 관한 내용을 공유하고자 글을 남깁니다. 문제 발생 저희 회사에서는 database replication을 통해 부하를 분산하여 성능을 높히는 방식을 사용하고 있습니다. 시스템은 Master-Slave 구조의 Active-Active 이중화로 구성되어 있으며, ProxySQL을 통해 SELECT 문은 Slave로, I...

더보기 →

2024년 11월 15일

[트러블슈팅] QueryDSL StackOverflowError 탐방기

이번에 회사에서 직면했던 Querydsl StackOverflow에 관한 내용을 공유하고자 글을 남깁니다. 문제 발생 오늘도 어김없이 문제는 Slack 메시지로부터 시작합니다. 메시지를 받자마자 어라? 라는 반응을 할 수밖에 없었습니다. StackOverflow? 서버에 재귀식으로 구현된 코드가 있었던가? StackOverflow란 여러분들 모두 잘 알고 ...

더보기 →

2024년 3월 15일