Software Engineer 입니다. 동시성과 대규모 처리를 파고, 요즘은 AX에 관심이 많습니다. 정답보다 맥락에 맞는 답을 고민하는 것을 중요시 여깁니다.
Java · Spring Boot · Spring AI · Kafka · Redis · MySQL
| 프로젝트 | 무엇을 확인했나 |
|---|---|
| queuing-system-study 선착순 티켓 예매 동시성 |
50VU가 100석에 500번 요청할 때 V1 (무방비) — 46번 좌석에 10명이 중복 예매됨 V2 (비관적 락) — 정확히 100건, 400건 거절 V3 (Redis 대기열) — 100건 + 서버 부하 분산 V4 (토큰 + TTL) — 100건 + 이탈자 자동 정리 브랜치 4개로 단계별 재현 · k6 부하 테스트 |
| spring-ai-agent 배달 상담 AI 에이전트 |
"LLM은 판단자, 실행은 우리 서버가 한다" 판단과 실행의 경계를 어디에 그을지가 이 프로젝트의 축 Spring AI 1.0 · Ollama qwen2.5 · 대화 메모리 · RAG 입력 가드레일 · 민감정보 마스킹 · 상담원 전환 감지 모델·메모리·스트리밍 선택의 근거를 ADR 14건으로 기록 |
| batch-benchmark-java 배치 기법 8단계 비교 |
같은 100만 건을 8가지 방식으로 처리해 성능과 복잡도를 나란히 재봄 Raw JDBC → JdbcTemplate → JPA → Spring Batch → 파티셔닝 → Kafka → ForkJoinPool JMH 정밀 벤치마크 포함 |
| 사내 AI 코딩 하네스 비공개 · 사내 운영 중 |
개발팀이 공용으로 쓰는 AI 에이전트 환경을 설계하고 운영합니다 반복 작업은 스킬로 표준화하고, 검증은 서브에이전트로 분리하고, 규칙 위반은 훅으로 차단하는 구조 |
혼자 돌아가는 코드보다, 6개월 뒤의 내가 읽을 수 있는 코드를 씁니다.
| pratical-testing-practice | 단위 · 통합 · 컨트롤러 테스트의 경계를 나눠 19개 테스트로 실습 어디까지를 단위로 볼 것인가에 대한 회고 포함 |
| readable-code-practice | 읽기 어려운 레거시를 단계적으로 리팩터링 추상화 레벨, 이름 짓기, 조건문 다루기 |
- 29CM보다 나은 랭킹 시스템 만들기
- 아이유 콘서트 티케팅을 만들어보았다 — 100석에 500명이 몰리면 생기는 일
- acks=all, 올리브영 세일 전날 쿠폰 서버가 터질 뻔한 이야기
- PG 40% 실패율에서 살아남기
- 톰캣을 직접 만든다면...? — 서블릿이 왜 등장했는지부터 되짚은 시리즈
- 랭킹 시스템 설계: Redis ZSET부터 Spring Batch + MV까지
- Redis — 캐시 전략과 분산 락으로 데이터 정합성과 응답속도를 동시에
- Kafka — 이벤트 기반 비동기로 서비스 간 결합도 낮추기
- MSA — 독립 배포 가능한 도메인 단위 설계
그 외 저장소
| 저장소 | |
|---|---|
| cc-monitor | Claude Code 세션을 실시간으로 보는 TUI 대시보드 |
| tdd-deep-practice | TDD에 대한 주관을 객관화해 나가는 기록 |
| readable-code-bdd | 같은 코드를 BDD 스타일 테스트로 다시 쓰기 |
| object-book-study | 『오브젝트』(조영호)를 코드로 다시 쓰기 |
| design-patterns-in-spring | 스프링 안에 이미 들어있는 디자인 패턴 찾기 |
| java-concurrency-labs | 멀티스레드와 동시성을 밑바닥부터 |
| domain-driven-design-study | DDD 원칙대로 도메인을 짜보기 |
| springboot-application-monitoring | Actuator 지표를 Prometheus로 수집해 Grafana로 |
| rabbitMQ-quick-practice | RabbitMQ로 비동기 아키텍처 맛보기 |
개발 철학
후회라는 감정은 그때의 기억을 잃고 그때 그 상황의 나로 돌아갔을 때, 다른 더 좋은 행동을 할 자신이 있을 때 생깁니다. 반면에 그때와 똑같은 행동을 할 것 같으면 그건 아쉬움입니다.
아쉬움은 남을 수 있어도, 후회 없는 개발 인생을 살고자 합니다.
새로운 기술, 새로운 패러다임, 새로운 도전을 두려워하지 않습니다.



