Hey! I am

박건우

I'm a

About

About Me

대용량 데이터 처리와 확장 가능한 시스템 설계로
비즈니스 임팩트를 만드는 백엔드 엔지니어

Career Summary

  • Java와 Spring Boot를 이용한 4년+ 백엔드 개발 경력 (광고, 뷰티, 금융 도메인)
  • 요구사항 분석부터 배포/운영까지 전 과정(A-Z) 경험
  • 대용량 데이터 파이프라인 구축 및 성능 최적화 (70만~1000만 건)
  • 분산 트랜잭션 처리 및 Message Broker를 활용한 시스템 설계
  • AWS 기반 인프라 구축 (EC2, ECS, S3, RDS)
  • Terraform을 활용한 IaC 구축 및 CI/CD 파이프라인 자동화
  • 서버 메트릭(Prometheus) 및 API 로그(Loki) 수집 → Grafana Cloud 대시보드 구축으로 실시간 장애 대응 환경 구현

Contact Info

  • Name: 박건우
  • Birth: 1995.11.13
  • Location: 경기도 의정부시
  • Email: pgw111111@naver.com
  • Phone: 010-2548-5949

💡 "문제를 정의하고, 데이터로 검증하며, 확장 가능한 솔루션으로 해결합니다"

Strengths

Core Strengths

비즈니스 임팩트를 만드는 핵심 강점

대용량 데이터 처리

1000만 건 기준
4시간 30분에서 1시간으로
Bulk Query + 가상 스레드
병렬처리로 78% 성능 개선

성능 최적화

쿼리 응답 시간
2.5초에서 0.8초로
인덱스 최적화 +
정규화/반정규화 혼합 설계

시스템 안정성

데이터 일관성
99 퍼센트 달성
Transaction OutBox 패턴 +
SAGA 패턴으로 분산 환경 데이터 일관성 확보

인프라 자동화 & 모니터링

EC2에서 ECS로 컨테이너 기반 배포
Terraform IaC 구축

Prometheus + Loki + Grafana
로그 모니터링 대시보드 구축

Tech Stack

실무에서 사용하고 있는 기술 스택입니다

Language

  • • Java 21

Framework

  • • Spring Boot (Spring Security, Spring Batch, JPA, QueryDSL, Thymeleaf)

Database

  • • MySQL
  • • MariaDB

Infrastructure

  • • AWS
  • • Terraform
  • • Docker
  • • Linux

Message Broker

  • • RabbitMq

Monitoring

  • • Prometheus
  • • Loki
  • • Grafana Cloud

Tools

  • • Git
  • • GitHub
  • • GitHub Actions

Experience

2025.04 ~ (재직중)

SearchM

Backend Engineer


서비스명 : SmPay

smpay는 광고 캠페인 데이터 수집·통합, 운영 심사, 비용 정산 및 리포팅 기능을 포함한 마케팅 대행사 전용 백오피스 플랫폼입니다.
다양한 광고 매체와 연동하여 데이터 정합성 유지 및 업무 자동화를 목표로 구축된 시스템입니다.

담당 업무

- 네이버, 카카오, 구글 등 주요 광고 매체 API 연동 및 데이터 수집 파이프라인 구축

- ROAS 기반 광고주 추천 시스템 및 충전/회수 미수 광고주 관리 로직 개발

- 외부 결제 시스템 연동 및 광고비 충전/회수 프로세스 자동화

- 광고주별 리포팅 데이터 가공 및 일 1회 갱신되는 대시보드 백엔드 API 개발

- 멀티 모듈 아키텍처 설계로 서비스별 독립 배포 환경 구축

- 서버별 로그 모니터링 대시보드 구축

TroubleShooting

대용량 광고 데이터 처리 및 분산 환경에서의 안정성 확보

문제 상황: 광고주 데이터 대량 적재 요구가 있었고, 해당 데이터는 delete → insert 방식으로 처리해야 했습니다. JPA 메소드로 saveAll(), deleteAll()을 사용하더라도 단건씩 처리되어 성능 병목이 발생했으며, 외부 광고 매체 API 호출 시 블로킹 방식으로 인한 스레드 효율성 저하 문제가 있었습니다. 또한 MSA 환경에서 서비스 간 호출 시 트랜잭션 경계가 달라 데이터 불일치 문제가 발생했고, 무한정 요청이 들어올 경우 스레드 고갈로 인한 서버 다운 위험도 존재했습니다.

접근 및 해결:
1. 대용량 데이터 처리 최적화
JDBC Template을 이용한 Bulk Delete/Insert 전략을 도입하여 삭제/적재 작업을 Queue에 넣고 chunk size 단위로 묶어 일괄 처리하도록 변경했습니다. JPA Hibernate를 우회하여 OOM을 방지하고 다건 처리로 속도를 대폭 향상시켰습니다.

2. 가상 스레드 기반 병렬 처리
Java 21에서 도입된 가상 스레드(Virtual Thread)를 활용하여 비싼 Application Level의 플랫폼 스레드 대신 경량 가상 스레드로 외부 API 통신을 병렬 처리했습니다. 외부 광고 매체 API 호출이 가장 많은 부분에서 가상 스레드를 통한 병렬 호출로 I/O 대기 시간을 효율적으로 활용했습니다.

3. RabbitMQ 메시지 브로커 도입
스레드 풀을 직접 관리하는 대신 RabbitMQ 메시지 브로커를 도입하여 Transaction OutBox 패턴으로 메시지를 안정적으로 발행했습니다. 메시지가 Queue에 쌓이면 Consumer가 설정된 개수만큼만 병렬로 처리하도록 구성하여, 무한정 요청이 들어오더라도 스레드 고갈이 발생하지 않고 최종적으로는 모두 처리될 수 있도록 보장했습니다.

4. SAGA 패턴 + 보상 트랜잭션
MSA 환경에서 서비스 간 트랜잭션 경계가 다른 문제를 해결하기 위해 SAGA 패턴을 적용했습니다. 외부 서비스 호출이 성공했으나 이후 처리에서 실패할 경우, 단계별로 보상 트랜잭션을 실행하여 데이터 일관성을 유지했습니다. 보상 트랜잭션 또한 실패할 수 있다고 판단하여 지수 백오프 기반 3회 재시도를 적용하고, 최종 실패 시 Slack Webhook으로 알림을 발송하여 데이터 일관성을 최대한 보장했습니다.

성과: 1000만 건의 대용량 데이터 기준 처리 속도가 4시간 30분에서 1시간으로 단축되어 78% 성능 개선을 달성했습니다. RabbitMQ와 가상 스레드 도입으로 서버 부하를 분산시키고 스레드 고갈 문제를 원천 차단했으며, SAGA 패턴을 통해 분산 환경에서의 데이터 일관성을 99% 이상 유지하여 서비스의 안정성과 가용성을 크게 향상시켰습니다.
2024.03 ~ 2025.04(1년 2개월)

CDRI

Backend Engineer


서비스명 : Ceticos, Cosmetest

Certicos는 화장품 및 기능성 제품의 인증 업무를 디지털화한 플랫폼으로, 제품별 인증 항목 관리, 서류 업로드 및 검토, 기관 제출 및 처리 상태 추적까지 인증 전 주기(Pipeline)를 자동화·시각화를 목표로 구축된 시스템입니다.


CosmeTest는 화장품 시험 분석 업무의 의뢰-진행-보고 전 과정을 통합 관리하는 플랫폼으로, 시험 의뢰 접수, 스케줄링, 결과 등록, 리포트 자동 생성 등 시험 실무의 업무 흐름을 디지털 전환한 서비스입니다.
임상 실험을 하는 과정을 디지털화하여 업무 자동화를 목표로 구축된 시스템입니다.

담당 업무

- 화장품 인증 서류 업로드/검토 워크플로우 설계 및 백엔드 API 개발

- 임상 실험 데이터 워크플로우 설계 및 수집된 데이터를 통한 리포트 자동 생성 시스템 구축

- OCR 텍스트 매칭을 위한 트라이 + 슬라이딩 윈도우 알고리즘 기반 검색 시스템 개발

- 레거시 시스템 1:1 테이블 구조를 1:N으로 전환하여 30여 개 API 리팩토링 및 성능 40% 개선

- EC2 단일 서버 다중 Jar 배포 환경을 ECS 컨테이너 기반 배포로 전환 및 Terraform IaC 적용

TroubleShooting

OCR 텍스트 매칭 정확도 문제

문제 상황: 임상 실험 검사 시 규제 단어 검출을 위해 사용자가 등록한 딕셔너리와 AI 서버에서 분석된 OCR 텍스트를 매칭해야 했습니다. 하지만 OCR 결과가 단어 단위가 아닌 "안 녕"처럼 글자별로 분리되어 오는 경우가 많아 정확한 매칭이 어려웠고, 수만 개의 딕셔너리 단어를 실시간으로 검색하기엔 성능 병목이 발생했습니다.

접근 및 해결: 성능 최적화를 위해 애플리케이션 시작 시 트라이 알고리즘으로 딕셔너리 검색 구조를 미리 구축하고, 사용자가 추가한 새로운 단어들을 매일 아침 배치 작업을 통해 트라이 구조에 반영하여 메모리 효율성과 안정성을 확보했습니다. OCR 텍스트의 분리 문제 해결을 위해 슬라이딩 윈도우 알고리즘을 적용하여 연속된 글자들을 조합해 단어를 재구성하고 딕셔너리와 매칭하도록 구현했습니다.

성과: 트라이 + 슬라이딩 알고리즘 도입으로 검색 속도가 기존 대비 60% 개선되어 사용자에게 전달하는 응답 속도가 향상되었습니다.

TroubleShooting

인프라 확장성 및 배포 안정성 개선

문제 상황: 기존에는 EC2 + CodeDeploy + Nginx를 통한 무중단 배포를 사용했지만, MSA로 프로젝트 구조를 변경할 예정이었습니다. 각 모듈별로 개별 EC2 인스턴스를 관리하고 배포하기에는 확장성이 떨어지고, 인프라 관리가 복잡해지는 문제가 있었습니다. 또한 수동으로 관리되는 인프라 설정으로 인해 환경 일관성과 재현성에 어려움이 있었습니다.

접근 및 해결: 컨테이너 기반 아키텍처로 전환하여 AWS ECS를 도입하고, 각 모듈을 독립적인 컨테이너로 패키징하여 확장성과 격리성을 확보했습니다. Blue/Green 배포 전략을 통해 무중단 배포를 구현하고, 배포 실패 시 자동 롤백이 가능하도록 ECS 서비스 설정을 구성했습니다. 인프라 관리의 일관성과 재현성을 위해 Terraform을 활용한 IaC(Infrastructure as Code)를 도입하여 중요한 인프라 리소스를 코드로 관리하고 버전 제어가 가능하도록 구축했습니다.

성과: 멀티모듈 환경에서 각 서비스별 독립적인 배포와 확장이 가능해져 개발 생산성이 42% 향상되었습니다. ECS 오토스케일링을 통해 트래픽 증가 시 자동으로 인스턴스가 확장되어 서비스 안정성이 99.9%로 개선되었고, Terraform을 통한 인프라 코드화로 환경 구성 시간이 기존 대비 70% 단축되었습니다.

2021.04-2023.02(1년 10개월)

코그넷나인

Cognitive Engineer


프로젝트명 : KB 증권 FCC, AIA 생명 FCC

KB 증권 FCC의 프로젝트의 경우 주식에 대한 현재가, 지수에 대한 내용을 음성봇 및 챗봇으로 사용자에게 전달할 수 있도록 개발한 프로젝트입니다.

AIA 생명 FCC의 경우 보험에 대한 어려운 내용을 상담사를 대신해 정보를 전달할 수 있게 음성봇 및 챗봇으로 사용자에게 전달할 수 있도록 개발한 프로젝트입니다.

담당 업무

- 금융 도메인 음성봇/챗봇 대화 시나리오 설계 및 Flow Chart 작성

- 자연어 처리(NLP) 엔진 기반 의도 분석 로직 및 다이얼로그 설계

- 증권사/보험사 외부 시스템 RESTful API 연동 및 데이터 파싱

- Genesis Cloud 플랫폼 기반 대화 흐름 모니터링 및 UX 개선

TroubleShooting

커뮤니케이션을 통한 고객 이탈률 최소화

문제 상황: 기획서 기반 개발로 인해 시나리오 내 인증 절차가 과도하게 길어져, 사용자가 피싱으로 오해하거나 복잡함을 느껴 이탈하는 문제 발생 (고객 이탈률 60% 이상)

접근 및 해결: PM과 협의하여 시나리오 내 인증 단계 최소화 요청 및 반영, 음성봇 UX 개선을 통해 키패드 입력 시 음성 재생 중에도 버튼 입력으로 즉시 다음 단계 진행 가능하도록 구현

성과: 모니터링 결과 고객 이탈률 60% → 10% 미만으로 83% 감소 달성

Technical Highlights

핵심 기술로 달성한 주요 성과

대용량 데이터 처리 & 성능 최적화

  • Bulk Query + 가상 스레드 병렬 처리로 1000만 건 4시간 30분 → 1시간 (78% 개선)
  • 정규화/반정규화 + 복합 인덱스 최적화로 쿼리 응답 2.5초 → 0.8초 (68% 단축)
  • Spring Batch 파이프라인으로 일 200만 건 안정적 처리

분산 시스템 & 메시징

  • Transaction OutBox + SAGA 패턴으로 MSA 환경 데이터 일관성 99% 달성
  • RabbitMQ + DLQ 기반 재처리로 서버 부담 감소 및 안정적 비동기 처리
  • Guava RateLimiter + 지수 백오프로 외부 API 호출 안정성 확보 및 Circuit Breaker 적용을 통한 장애 전파 방지 적용

인프라 & DevOps

  • Terraform IaC + AWS ECS 전환으로 환경 구성 시간 70% 단축, 가용성 99.9%
  • Blue/Green 배포 + GitHub Actions CI/CD로 무중단 배포 자동화
  • JWT + Spring Security + API Key 다중 인증으로 무단 접근 차단율 99.7%
  • GlobalExceptionHandler + Slack Webhook 실시간 장애 알림

모니터링

  • Prometheus(메트릭) + Loki(로그) 기반 Grafana Cloud 통합 모니터링 대시보드 구축

API 설계 & 협업

  • Rest Docs 자동 문서화로 API 문서 정확도 100% 유지
  • API 표준화로 팀 간 소통 30% 단축, 버그 40% 감소

Collaboration

팀과 함께 성장하며 만들어낸 성과

Communication

• 기술 지식 공유 문화 정착을 통한 팀 역량 향상
팀 내 기술 격차로 인한 개발 속도 저하 문제를 해결하기 위해 회사 기술 블로그에 글 작성 및 팀 내 노션 기술 페이지 작성 후 정기적인 지식 공유 세션을 진행했습니다.
복잡한 Spring Security 인증 흐름과 JPA 성능 최적화 기법을 실무 사례 중심으로 정리하여 공유 및 백엔드 아키텍쳐 및 테라폼 사용방법에 대한 내용 정리하여 공유함으로써, 팀 전체의 기술 이해도가 향상되었고 신규 입사자의 온보딩 시간이 평균 2주에서 1주로 단축되었습니다.

• 크로스 팀 협업 효율성 증대를 위한 표준화 체계 구축
프론트엔드, 백엔드 팀 간 API 연동 시 발생하는 반복적인 소통 비용과 오해를 해결하기 위해 REST API 문서 표준화 가이드라인을 수립하고 Rest Docs 기반 자동 문서화 시스템을 구축했습니다. 이를 통해 팀 간 소통 시간이 30% 이상 단축되고 개발 생산성이 42% 향상되었으며, API 연동 관련 버그 발생률이 40% 이상 감소하는 성과를 달성했습니다.

Leadership

• 패스트캠퍼스 백엔드 부트캠프 멘토링 경험
신입 개발자들의 성장을 돕기 위해 패스트캠퍼스 백엔드 부트캠프에서 멘토로 활동했습니다. 객체지향 설계 원칙과 SOLID 원칙을 중심으로 한 코드 리뷰를 통해 20명의 멘티들이 클린 코드 작성 능력을 향상시킬 수 있도록 지도했습니다. 특히 Spring Boot 프로젝트에서 계층별 책임 분리와 의존성 주입을 통한 테스트 가능한 코드 작성 방법을 중점적으로 가르쳐 멘티들의 백엔드 개발자 역량을 기르는 데에 있어 일조하였습니다.


Certificate

2022.01.15

Google Cloud Professional Cloud Architect

- 구글 클라우드 아키텍트 취득

2022.03.04

Google Cloud Professional Data Engineer

- 구글 클라우드 데이터 엔지니어 취득

2022.09.29

Google Cloud Professional Machine Learning Engineer

- 구글 클라우드 머신러닝 엔지니어 취득


Education

2017.03-2021.02

컴퓨터공학 전공

한림대학교