커뮤니케이션 중심의 개발자
smpay는 광고 캠페인 데이터 수집·통합, 운영 심사, 비용 정산 및 리포팅 기능을 포함한 마케팅 대행사 전용 백오피스 플랫폼입니다.
다양한 광고 매체와 연동하여 데이터 정합성 유지 및 업무 자동화를 목표로 구축된 시스템입니다.
내가 한 업무
- 서비스 확장성과 코드 재사용성 확보를 위해 모노레포 멀티 모듈 아키텍처 구성 및 런타임 시 MSA 형태 서비스 배포 및 관리
- 대용량 데이터 처리 OOM 방지 및 네트워크 오버헤드 해결을 위해 jdbc Template을 이용한 Bulk Insert/Delete Query 사용 및 비동기 멀티 스레드 전략 도입으로 70만 건 기준 30분 → 2분 성능 개선
- 데이터 정합성과 조회 성능 최적화를 위해 정규화/반정규화 혼합 설계 및 복합 인덱스 구성으로 평균 쿼리 응답 시간 2.5초 → 0.8초로 68% 단축
- 인증/인가 보안 강화를 위해 JWT + Spring Security + API Key를 통한 다중 인증 체계 구축
- 외부 API 연동 안정성 향상을 위해 WebClient 기반 동기 통신 및 tooManyRequest 방지를 위한 RateLimit 설정 및 지수 백오프를 이용한 retry 3회 전략 구축
- 분산 트랜잭션 처리 시 SAGA 패턴을 적용 및 실패 시 보상 트랜잭션을 적용하여 데이터 일관성 99% 달성
- 컴파일 타임 쿼리 검증과 동적 쿼리 성능 최적화를 위해 JPA + QueryDSL 조합 도입
- 이벤트 기반 비동기 처리로 응답 시간 단축을 위해 EventPublisher + AWS SES/Naver SENS 연동 구현으로 알림 발송 시간 3.2초 → 0.9초로 72% 단축
- 장애 대응 시간 단축을 위해 전역 예외 처리 + Slack 실시간 알림 시스템 구축으로 평균 장애 인지 시간 15분 → 3분으로 80% 단축
- 배포 안정성과 가용성 확보를 위해 Blue/Green 무중단 배포
- 반복문을 통하여 처리하던 데이터 수집을 Spring Batch + Cron 스케줄링 기반 구현으로 변경 및 retry 전략 구축하여 데이터 수집 오류 월 평균 12건 → 1건으로 92% 감소
- 수동 API 문서 작성으로 인한 문서-코드 불일치 문제 해결을 위해 Rest Docs + 슬라이스 테스트 환경 구축으로 API 문서 정확도 85% → 100%로 향상
기술 스택
- Java 17
- Spring 3.4
- mysql
- Spring batch
- JPA, QueryDSL
- ThymeLeaf
- AWS EC2, S3, CodeDeploy
- Github actions
Certicos는 화장품 및 기능성 제품의 인증 업무를 디지털화한 플랫폼으로, 제품별 인증 항목 관리, 서류 업로드 및 검토, 기관 제출 및 처리 상태 추적까지 인증 전 주기(Pipeline)를 자동화·시각화를 목표로 구축된 시스템입니다.
CosmeTest는 화장품 시험 분석 업무의 의뢰-진행-보고 전 과정을 통합 관리하는 플랫폼으로, 시험 의뢰 접수, 스케줄링, 결과 등록, 리포트 자동 생성 등 시험 실무의 업무 흐름을 디지털 전환한 서비스입니다.
임상 실험을 하는 과정을 디지털화하여 업무 자동화를 목표로 구축된 시스템입니다.
내가 한 업무
- 레거시 시스템의 1:1 테이블 구조를 비즈니스 확장 요구사항에 맞춰 1:N 구조로 전환하기 위해 연관된 30여 개 API의 영향도 분석 및 단계적 리팩토링을 통해 데이터 무결성을 보장하면서 불필요한 조인 쿼리 개선을 통해 조회 성능 40% 개선
- 텍스트 매칭 정확도 향상을 위해 투포인터 + 트라이 알고리즘 조합으로 OCR 좌표 매핑 시스템 구현
- 대용량 데이터 마이그레이션 안정성 확보를 위해 jdbc Template을 이용한 Bulk Query + 트랜잭션 분할 전략으로 500만 건 중단 이관 달성
- 다중 데이터베이스 환경에서 데이터 정합성 보장을 위해 @Transactional 어노테이션 기반 Master/Slave DataSource 자동 라우팅 구현 (읽기 전용 트랜잭션은 Slave, 쓰기 트랜잭션은 Master로 분기)
- 컴파일 타임 쿼리 검증을 위해 불필요한 Native Query → QueryDSL 전환으로 런타임 오류 95% 감소
- 대용량 데이터 처리를 위해 Spring Batch + Cron 스케줄링 기반 상태 변경 시스템 구현으로 일 평균 200만 건의 성분 데이터 처리 시간 4시간 → 1.5시간으로 62% 단축
- 서버 간 통신 보안 강화를 위해 SHA-256 기반 API Key + 환경별 인증 분리 체계 구축으로 무단 접근 시도 차단율 99.7% 달성
- 장애 대응 시간 단축을 위해 GlobalExceptionHandler + Slack 실시간 알림으로 MTTD 70% 감소
- 인프라 가시성 향상을 위해 Terraform IaC + AWS ECS 오토스케일링으로 배포 안정성 99.9% 달성
- 쿼리 성능 최적화를 위해 Explain Plan 분석 및 복합 인덱스 생성으로 Slow Query 4ms → 0.89ms로 78% 단축
기술 스택
- Java 17, Java 11
- Spring Boot 3.1, Spring Boot 2.6
- Spring Batch
- JPA, QueryDSL
- ThymeLeaf
- MariaDB
- Terraform
- AWS ECS,ECR,EC2,S3,CodeDeploy
KB 증권 FCC의 프로젝트의 경우 주식에 대한 현재가, 지수에 대한 내용을 음성봇 및 챗봇으로 사용자에게 전달할 수 있도록 개발한 프로젝트입니다.
AIA 생명 FCC의 경우 보험에 대한 어려운 내용을 상담사를 대신해 정보를 전달할 수 있게 음성봇 및 챗봇으로 사용자에게 전달할 수 있도록 개발한 프로젝트입니다.
내가 한 업무
- 고객 요구사항 분석을 통한 음성봇 대화 시나리오 설계 및 Flow Chart 작성
- 사용자 경험 향상을 위해 자연어 처리 엔진 기반 의도 분석 및 예외 처리 로직 구현
- 외부 시스템과의 데이터 연동을 위해 RESTful API 통신 및 응답 처리 구현
- 음성봇 성능 최적화를 위해 대화 흐름 분석 및 시나리오 개선
- 서비스 품질 향상을 위해 테스트 시나리오 작성 및 QA 프로세스 구축
- 운영 모니터링을 위해 Genesis Cloud 기반 대화 흐름 분석 및 개선 방안 도출
기술 스택
- Java 1.8
- InfoChatter, AIQ
- Genesis Cloud
- Figma
• 기술 지식 공유 문화 정착을 통한 팀 역량 향상
팀 내 기술 격차로 인한 개발 속도 저하 문제를 해결하기 위해 회사 기술 블로그에 글 작성 및 팀 내 노션 기술 페이지 작성 후 정기적인 지식 공유 세션을 진행했습니다.
복잡한 Spring Security 인증 흐름과 JPA 성능 최적화 기법을 실무 사례 중심으로 정리하여 공유 및 백엔드 아키텍쳐 및 테라폼 사용방법에 대한 내용 정리하여 공유함으로써,
팀 전체의 기술 이해도가 향상되었고 신규 입사자의 온보딩 시간이 평균 2주에서 1주로 단축되었습니다.
• 크로스 팀 협업 효율성 증대를 위한 표준화 체계 구축
프론트엔드, 백엔드 팀 간 API 연동 시 발생하는 반복적인 소통 비용과 오해를 해결하기 위해
REST API 문서 표준화 가이드라인을 수립하고 Rest Docs 기반 자동 문서화 시스템을 구축했습니다.
이를 통해 팀 간 소통 시간이 30% 이상 단축되고 개발 생산성이 42% 향상되었으며,
API 연동 관련 버그 발생률이 40% 이상 감소하는 성과를 달성했습니다.
• 기획팀과의 기술적 제약사항 소통 및 요구사항 조율
기획팀이 요청한 "무제한 데이터 조회" 기능의 성능 이슈를 개발에 익숙하지 않은 기획자에게
이해하기 쉽게 설명하고 대안을 제시했습니다.
데이터베이스 부하와 응답 시간 지연 문제를
실제 시연을 통해 보여주고, 페이지네이션과 검색 필터를 추가한 실용적인 기능으로 조정하여
합의를 도출했습니다.
이를 통해 기획팀의 만족도를 유지하면서도 기술적으로 안정적인
서비스를 제공할 수 있었고, 향후 유사한 요구사항에 대한 소통 효율성이 크게 향상되었습니다.
• 패스트캠퍼스 백엔드 부트캠프 멘토링 경험
신입 개발자들의 성장을 돕기 위해 패스트캠퍼스 백엔드 부트캠프에서 멘토로 활동했습니다.
객체지향 설계 원칙과 SOLID 원칙을 중심으로 한 코드 리뷰를 통해 20명의 멘티들이
클린 코드 작성 능력을 향상시킬 수 있도록 지도했습니다. 특히 Spring Boot 프로젝트에서
계층별 책임 분리와 의존성 주입을 통한 테스트 가능한 코드 작성 방법을 중점적으로 가르쳐
멘티들의 백엔드 개발자 역량을 기르는 데에 있어 일조하였습니다.
- 구글 클라우드 아키텍트 취득
- 구글 클라우드 데이터 엔지니어 취득
- 구글 클라우드 머신러닝 엔지니어 취득