About Me
Project
개인 우대조건을 반영한 적금 세후 이자 비교 서비스
AI 도구 활용 개발 · Codex, Claude
AI 추출 데이터의 검증과 미검수 빌드 차단
- 문제 · AI가 우대조건을 구조화하는 과정에서 상호배타 조건 중복 합산과 조건 코드 오배정 등 의미 오류가 발생했습니다.
- 판단 · 원문 인용과 합계 검사만으로 의미 오류를 보장할 수 없어, 자동 검증과 전량 원문 대조를 함께 적용하는 방식으로 진행했습니다.
- 해결/결과 · Codex·Claude를 활용해 원문 근거 검사와 미검수 상품 빌드 차단을 구현했습니다. 작업 기록상 43개 상품 대조에서 11개 상품의 오류가 수정됐으며, 최종 데이터의 조건 105개는 원문 근거와 일치합니다.
개인별 적용금리와 세후 이자 계산 규칙 검증
- 문제 · 광고 최고금리에는 사용자가 충족하지 못한 조건이 포함돼 실제 받을 이자와 차이가 발생했습니다.
- 판단 · 선택한 조건만 합산하고 불명확한 우대폭은 제외한 뒤, 같은 납입 조건의 세후 이자로 비교해야 한다고 보았습니다.
- 해결/결과 · AI 도구로 정수 bp 금리 합산·최고금리 상한과 단리·월복리 계산을 구현했습니다. 프로젝트 테스트 66개가 통과했으며, 실데이터에서 광고 1위와 개인별 세후 이자 1위가 달라지는 시나리오를 포함합니다.
문답 기반으로 CS 학습을 돕는 모바일 애플리케이션
팀 프로젝트 · 백엔드 기여 30% · Kotlin, Spring Boot, MySQL
사용자별 일일 질문 중복 발급 방지
- 문제 · 동일 사용자의 동시 요청으로 하루 1회 질문 발급 정책이 깨질 수 있었습니다.
- 판단 · 질문 발급 여부를 판단하는 전체 과정을 사용자 단위로 보호해야 한다고 보았습니다.
- 해결/결과 · MySQL Named Lock과 Spring AOP로 동시 발급을 제어해, 3개 동시 요청이 동일한 질문 ID를 반환함을 확인했습니다.
신고 알림 누락의 추적·복구 구조 구축
- 문제 · 운영 중 신고는 저장됐지만 Slack 알림이 누락되어 신고를 인지하지 못하는 사례가 발생했습니다.
- 판단 · 신고 저장과 외부 알림의 실패를 분리하고, 실패한 알림을 추적·복구할 수 있어야 한다고 보았습니다.
- 해결/결과 · Spring 트랜잭션 이벤트와 Outbox 상태 기록, 스케줄러 재처리로 Webhook 실패 알림을 복구하는 흐름을 구축했습니다.
사용하지 않거나 만료가 임박한 기프티콘을 사고파는 중고거래 플랫폼
Java 17, Spring Boot, MyBatis, MySQL, Redis, Redisson
선착순 쿠폰 발급의 동시성 정합성 개선
- 문제 · 동시 발급 요청에서 재고 초과 발급과 사용자별 중복 발급이 발생할 수 있었습니다.
- 판단 · 분산락의 만료·장애 상황에서도 재고와 중복 발급 규칙은 DB에서 지켜야 한다고 보았습니다.
- 해결/결과 · Redisson 분산락과 MySQL의 원자적 갱신·유니크 제약을 함께 적용해, 재고 100개 조건에서 발급 100개·잔여 재고 0개·중복 0건을 확인했습니다.
인기순 조회 성능 개선
- 문제 · 좋아요 100만 건을 실시간 집계하는 인기순 Top 20 조회가 4.6초까지 느려졌습니다.
- 판단 · 인덱스 추가 후에도 남는 반복 집계 비용을 줄이려면, 집계값을 관리하는 구조를 바꿔야 한다고 보았습니다.
- 해결/결과 · 사전 집계 메타 테이블과 MySQL 커버링 인덱스로 조회 비용을 줄여, 상품 10만 개 기준 4.6초 → 145ms로 약 96% 개선했습니다.
Certifications
SQLD
취득
정보처리기사
취득
Education
f-lab
2023.07 ~ 2024.01
깊이있게 학습하는 방법을 익혀 사수가 없어도 혼자 성장할 수 있는 개발자로 성장할 수 있도록 멘토링을 진행하여, 자바의 기본 개념들을 학습한 후 프로젝트를 통해 설계, 구현, 문서화를 포함한 전체적인 과정에 참여하여 문제 해결 능력과 소프트 스킬을 배웠습니다.
멋쟁이 사자처럼 백엔드
2022.09 ~ 2023.02
Java/Spring을 배우고 프로젝트에 적용하는 부트캠프로 회고 문화와 효울적인 스터디 진행하는 방법을 배웠습니다. 또한, 프로젝트를 진행할 떄 구현 뿐 아니라 프로젝트 일정 관리, 협업 방식, API 설계 등을 배웠습니다.