About Me
Java, Spring 기반 3년차 개발자로써, 16만 고객사와 MAU 70만 그룹웨어의 메일 서비스 전반을 담당했고,
현재 카카오페이 금융 서비스 플랫폼 파트에서 카드 결제 서비스를 개발하고 있습니다.
성능 모니터링을 위해 Intellij Profiler, Apache JMeter, Prometheus와 같은 도구를 사용하며,
기존 코드와 아키텍처의 문제를 파악 후 개선하여 메모리 사용량을 감소시키고 지연 시간을 최소화하여 TPS를 증가시키는 등
사용자 경험(UX)을 향상시키는 데 주력했습니다.
높은 품질의 코드와 철저한 테스트, 확장성 있는 시스템 설계를 위해 정리한 문서를 기반으로 팀원들과 함께 해결 방안을 고민하며,
마주한 문제는 신중한 고민을 위해 블로그에 상세히 기록하고 있습니다.
발생한 이슈의 원인과 해결한 결과를 예상과 추측을 넘어 반드시 데이터로 확인하는 것을 지향합니다.
Experience
IT로 금융 산업을 바꿔 생활에 이로움을 주는 위대한 여정에 참여 중
- 머니체크카드 시스템 개발 및 유지보수
- 삼성페이 MST X 카카오페이 머니 연동으로 비가맹 결제 커버리지 확장
- 카드사와 팀 내부 서버 간 통신하는 GW-서버 개발
- 승인대사 및 전표 처리 등 Batch 개발
MAU 60만 그룹웨어 하이웍스 메일서비스 개발 및 유지보수
- 레거시 개편 (PHP 5.6 CodeIgniter > Java & Spring)
- 코드 리뷰 및 방향성 제안
- 다수의 Cron, Migration Script 작성
- SQL 튜닝 및 데이터 모델링
- 운영 이슈 해결 및 장애 대응
- 성능 최적화
Projects
MOCA
MST 카카오페이 머니 결제 시스템
2024.01 ~ 2024.04
삼성페이 MST X 카카오페이 머니 연동으로 카카오페이 오프라인 결제 커버리지 확장
- 카드사와 팀 내부 서버 간 통신하는 GW-서버 개발
- MST 카드 및 결제 어드민 페이지 개발
- 제로페이 X 비가맹 등 결제 커버리지 확장
- 다수의 배치 및 마이그레이션 처리 개발
CAPI
페이머니체크카드
2024.04 ~
페이머니체크카드 운영 및 유지보수
- 모니터링 대시보드 및 Alert 구성
- Sentry 에러 추적 시스템 개선 및 공유
Pay CodeReview Reminder
코드리뷰 D-n 룰 자동화 및 슬랙 리마인더
2024.04 ~ 2024.04
팀의 코드리뷰 지연 해결을 위한 D-n 룰 적용 프로젝트
- Github Action + Python 사용
- 매일 PR 목록의 D-n Label을 부착 및 조정
- Workflow에 등록한 시간에 Slack 알림
커버곡 영상 공유 플랫폼 - 사이드 프로젝트 7인 참여 (1인 서버 개발)
- Redis Pub/Sub 기반 CQRS, 이벤트 기반 아키텍처 적용
- Storage 접근에 대한 Transaction 분리 (AWS S3 presigned-url)
- API 문서 자동화 (Optional 표현, 에러 코드 문서화 등 Custom)
- WriteBack으로 좋아요 수 집계
- 멀티모듈 배포 프로세스 구축 (CircleCI, CodeDeploy)
- 패키지 의존성 사이클 제거 (IntelliJ Analyze)
REST API를 지원하는 KIS(한국투자증권) 기반 배치 서버 (1인 개발)
- Quartz + Batch 기반의 데이터 수집 서버
- Batch 서버 특성 고려한 테스트 Coverage 100%
- 객체지향 생활체조 원칙 9가지 적용 (정리)
Hiworks Archive Server
메일 아카이브 서버
2023.04 ~ 2023.06
하이웍스 메일의 영구 보관 및 백업을 위한 서비스
- Hexagonal Architecture 적용 및 팀에 전파
- ATDD 적용 (Test Coverage: 100%) 및 팀에 전파
- Kafka 설계 및 적용
- NoSQL 데이터 모델링
Hiworks Mail API
2022.10 ~ 2023.07
하이웍스에서 가장 많은 트래픽이 발생하는 메일 서비스의 전반을 담당
- 부하 테스트 및 TPS 개선
- JavaMail API 메모리 성능 튜닝, 레거시 정책 OOM 문제 해결
- HikariCP 커넥션 누수 해결, HikariCP 데드락 해결
- Covered Index 적용 (3.792s->0.371s), Outer Join 문제 해결 (TPS 10.8->107.7), Java IO 성능 문제 개선 (TPS 1.7->21.7)
- AutoConfiguration 기반 사내 라이브러리 추가 (Parser, Transfer)
Hiworks sharding module
2022.04 ~ 2022.05
팀에서 DB 구조 문제 때문에 Spring과 JPA를 사용할 수 없던 해결
- 샤딩 모듈 개발 이야기
- POC 및 추가 개선사항 고민
- 사내 첫 기술 세미나에서 발표
Skill
현재 업무에 사용중 혹은 사용했던 기술들입니다.
Backend
- Java, Kotlin
- Spring Boot
- JPA, Querydsl
- Junit5, Mockito, RestAssured
- IntelliJ, DataGrip, Vim
- Gradle
DevOps
- MySQL, MariaDB
- CircleCI, Gitlab CI, Code Deploy
- AWS EC2, RDS (MySQL), ElastiCache, S3, Elastic Load Balancer, Route53
- JMeter, nGrinder
- Docker
Others
개인 기술 블로그
- 개발하면서 겪은 고민과 업무에서 만난 문제 등을 기록하고 공유
- 매주 2~3회 포스팅을 업로드
- 현재 평일 평균 PV 1200 ~ 1500, 누적 PV 61만
Open Source
오픈 소스 기여 (Contribution Experience)
- Spring-Kafka
- Spring-Framework
- (spring-jdbc) RoutingDataSource 런타임 중 DataSource 추가를 위해 메서드 분리
- Apache-Commons-Email
- Spring-Data-Redis
- ListOperations의 getFirst(), getLast() 메서드 추가
- etc. 일부 JavaDoc 수정
- Lucy-XSS-Filter
Gabia Teams 14기
사내에서 참가한 활동 (팀즈)
- 사내 Confluence 문서 개편 및 발표
- 문서 가독성 개편 및 부족한 개발문서 개선
- 신규 개발자 온보딩 문서 작성