Hey! I am

박건우

I'm a

About

About Me

커뮤니케이션 중심의 개발자

  • Name: 박건우
  • Date of birth: 11월 13일, 1995
  • Address: 경기도 의정부시,대한민국
  • Email: pgw111111@naver.com
  • Blog: https://bit.ly/geonmoo_TIL
  • Github: https://github.com/Parkgeonmoo
  • Phone: +82-010-2548-5949

Skills

Java

SpringBoot

Spring Security

JPA

Redis

AWS

MySQL

MariaDB

Docker

Github

Git

Linux

Experience

2025.04 ~ (재직중)

SearchM

Backend Engineer


2025.04-2025.07

SmPay

SmPay Beta 버전 개발

배경

- SmPay 베타 버전 오픈을 위해 필요한 API 개발

내가 한 업무

- 회원에 대한 인증/인가에 대한 로직을 Spring security 통하여 구축

- Rest API로 규격을 맞춰 개발하여 클라이언트와 안정적인 통신을 할 수 있도록 API 개발

- 대용량 데이터를 수집하기 위해 Bulk Insert 및 Bulk Delete 처리와 스레드를 병렬로 구성하여 API 응답 속도 개선 (100만 건 기준 30분 -> 12분)

- JPA와 QueryDsl을 사용하여 컴파일 시 쿼리 작성 오류 감지 및 코드로 쿼리를 관리하여 유연한 대응을 할 수 있도록 개발

- 초기 개발 세팅을 위해 Google Java 컨벤션을 도입하여 팀원간의 컨벤션을 일치할 수 있게 설정

- 외부 API 호출을 진행할 때 비동기적으로 처리도 가능한 WebClient를 선정하여 API를 콜 할 수 있도록 개발

- 공통 예외 처리 구현 및 Security에서 발생하는 에러 GlobalEntryPoint 만들어 처리할 수 있도록 개발

- 테스트 코드 작성하여 변화가 발생하는 부분이 깨질 경우 빌드하지 못하도록 하여 배포 오류 방지 및 Rest Docs를 도입하여 API 문서 작성

- Spring Batch를 통한 데일리 배치를 구현하여 조건에 맞는 데이터들 변경(인증에 대한 기간 만료 및 상태 조건 충족에 따른 상탯값 변경)

- AWS SES와 Naver SENS를 이용하는 Util성 클래스 구현하여 EventPublisher를 통한 이메일, 문자 비동기 발송 로직 구현

기술 스택

- Java 17

- Spring 3.4

- mysql

- Spring batch


2025.04-2025.07

Infra

백엔드 서버 인프라 관리

배경

- 초기 SmPay 서비스를 안정적으로 배포하기 위해 무중단 배포 파이프라인 구축

내가 한 업무

- github actions을 통한 CI 스크립트 작성

- codeDeploy를 통한 CD 구성

- 배포 완료 시 slack Webhook을 이용한 알람 설정

기술 스택

- Github actions

- AWS CodeDeploy

- Slack


2024.03 ~ 2025.04(1년 2개월)

CDRI

Backend Engineer


2025.02-2025.04

Cosmetest

OCR 추출 글자와 딕셔너리 글자 매핑 알고리즘 개발

배경

- 임상 관리 서류에 필요한 단어들을 미리 저장하여 화장품 아트웍 이미지에서 추출된 글자와 차이가 있는지 확인 및 수정해야할 단어 추천이 필요하여 개발

내가 한 업무

- 소켓 통신을 통하여 AI 서버에서 OCR 이미지에 대한 글자와 좌표값에 대한 정보를 백엔드 DB에 적재

- 적재된 단어와 백엔드 서버에서 관리하고 있는 임상 관리 수출용 단어 사전을 투포인터 알고리즘을 통하여 매핑할 수 있도록 개발 (떨어지는 단어들에 대한 좌표 값도 클라이언트에서 표현할 수 있게 투포인터를 통하여 이어서 x1, y1 좌표만 전달)

기술 스택

- Java 17

- Spring 3.1

- maria DB


2025.01-2025.02

Infra

백엔드 서버 인프라 관리

배경

- 백엔드 서버가 배포될때 CI/CD에 대한 프로세스가 한 눈에 보기 어려워 작업 필요

내가 한 업무

- github actions와 지정된 script로 돌아가던 CI/CD를 코드로 한 눈에 인프라를 알 수 있는 Terraform을 도입하여 처리

- 무중단 배포와 자동 오토스케일링에 대한 장점이 있는 ECS를 도입하여 DownTime 없도록 구축 및 오토스케일링 전략을 지정하여 필요에 따라 컨테이너 인스턴스를 생성하여 부하를 분산시킬 수 있도록 처리

- 이전 배포 과정에서는 배포 실패 시 Service Recovery가 존재하지 않아 오류가 발생하던 적이 있었는데 ECS를 사용하면서 자동 장애 처리를 적용하여 배포가 잘못되었을 경우 latest를 이용해 이전 버전으로 롤백하도록 처리

기술 스택

- AWS

- TerraForm


2024.12-2025.02

Cosmetest

임상 실험에 대한 정보 관리

배경

- 임상 실험을 고객사로부터 정보를 받아 플랫폼에 저장할 수 있도록 만들고 담당자별로 어떤 실험들이 어떤 상태에 있는지와 고객사에게 안내 메일을 나갔는지 확일할 수 있는 메일 발송 관리 기능이 필요하게 되어 작업 필요

내가 한 업무

- 기존에 존재하던 데이터들에 대한 이관 작업 및 변경이 필요하여 Query를 Bulk 전략을 이용하여 작성하여 Data Migration 작업 진행

- 임상 관리를 위해 RESTFUL API 설계 및 개발

- 임상 관리를 위한 정규화,반정규화를 고려한 데이터베이스 설계

- 멀티 DB를 사용하게 되어 Master DB와 Slave DB들의 트랜잭션을 따로 Config를 통해 설정하여 트랙잭션이 정상적으로 진행되도록 구현

- 임상 시험에 대한 상태가 조건이 충족되면 자동으로 변경되어야 하는 조건이 존재해 많은 데이터를 자동으로 업데이트 시켜주기 위해 Spring Batch와 Scheduling을 이용하여 시험 상태값 자동 변경 구현

- 400에러에 대한 내용이 기본 Error 형태로 클라이언트에게 전달되고 있어 어떤 부분을 잘못 요청했는지에 대한 어려움이 있어 해당 부분에 대한 케이스들을 정리하여 GlobalExceptionHandler에서 처리할 수 있도록 만든 후 어떤 오류가 발생했는지 Slack Webhook을 연결하여 내용이 보이도록 구현

- 인증,인가에 대한 부분에서 오류가 발생했을 경우 Dispatcher Servelt까지 오류가 전파되지 않아 정의된 오류 메시지를 보여줄 수 없어 Filter에서 발생한 오류를 EntryPoint를 만들어 정의한 에러 메시지로 보여줄 수 있도록 구현

기술 스택

- Java 17, Java 11

- Spring Boot 3.1, Spring Boot 2.6

- Spring Batch, cron

- maria DB

- Slack

- AWS


2024.08-2024.11

Ceticos

성분 규제 화이트리스트,블랙리스트 개념 도입 및 색소에 대한 규제 개념 도입

배경

- 성분을 스크리닝 하는데에 있어 규제 자체에 성분들을 화이트리스트,블랙리스트로 등록할 수 있게 하여 스크리닝 진행 시 해당 성분이 선택한 규제들에 대해 화이트리스트,블랙리스트에 포함되는지 알려주는 여부와 색소라는 성분인지를 판단하고 색소에 대한 규제에 적합한지를 알려주는 내용이 필요하게 되어 작업 필요

내가 한 업무

- 규제에 대한 데이터를 1:1 구조에서 1:N 구조로 확장이 필요하게 되어 확장 및 API 영향도 파악 및 API 리팩토링

- 화이트리스트, 블랙리스트, 색소 규제를 위해 RESTFUL API 설계 및 개발

- native Query로 작성된 쿼리들은 컴파일 시 오류를 발견할 수 없어 QueryDsl을 도입하여 사전에 잘못된 쿼리를 발견할 수 있도록 변경

- Layerd Architecture를 사용할때 트랜잭션 전략인 Propagation 중 Mandatory를 도입하여 의존성 관리 및 트랜잭션 관리를 하도록 변경

- 화이트리스트, 블랙리스트, 색소 규제를 위한 정규화,반정규화를 고려한 데이터베이스 설계

- 멀티 DB를 사용하게 되어 Master DB와 Slave DB들의 트랜잭션을 따로 Config를 통해 설정하여 트랙잭션이 정상적으로 진행되도록 구현

기술 스택

- Java 17, Java 11

- Spring Boot 3.1, Spring Boot 2.6

- maria DB

- AWS


2024.06-2024.08

Ceticos

다른 API 서버 통신 시 API 키를 통한 인증

배경

- 인증을 담당하는 서버로부터 다른 서버에 필요한 데이터를 요청하는 방식이 생기는데 보안에 대해 따로 설정된 부분이 있어 인가되지 않은 사람에게 요청이 들어올 경우 막을 방법이 없어 대응 작업 필요

내가 한 업무

- API KEY를 SHA 256를 활용한 해시함수 암호화 KEY로 생성, 요청 시 Header에 넣어 인증된 값일 경우에만 요청을 내려주도록 변경

- 개발 환경에 따라 Spring Profile을 나누어 API KEY 값을 설정하여 인증 영역을 분리

기술 스택

- Java 17, Java 11

- Spring Boot 3.1, Spring Boot 2.6

- maria DB

- AWS


2024.05-2024.06

Ceticos

MoCRA 개정에 따른 서류 변경

배경

- 미국 화장품 규제 법인 MoCRA에 대해 변경점이 생겨 미국에 수출을 진행할때 추가적으로 제출해야하는 서류가 생겨 이에 대응하는 기능 작업 필요

내가 한 업무

- MocRA 추가 서류를 위해 RESTFUL API 설계 및 개발

- MocRA에 대한 스크리닝을 진행하기 위한 정규화,반정규화를 고려한 데이터베이스 설계

- 변경 히스토리를 저장하도록 하여 어떤 User가 해당 문서를 수정하였는지 남기도록 구현 및 검색 가능하도록 하여 담당자들의 업무 효율성 12% 향샹

- 고도화 개발에 따라 기존에 사용하던 API들에서 확장이 진행되어 영향도를 파악하여 불필요한 API들 삭제 및 리팩토링을 통하여 한 번에 처리 가능한 API들은 합치도록 변경

- ThymeLeaf를 통하여 User가 발행하고자 하는 인증서에 대한 정보를 PDF,Docx 형태로 나누어서 발행할 수 있도록 구현

기술 스택

- Java 17

- Spring Boot 3.1

- maria DB

- AWS


2024.04-2024.05

Ceticos

전성분 스크리닝 개발

배경

- 화장품 수출을 진행할때 아트웍(화장품 겉 표지 껍데기)에 써져있는 성분들을 OCR을 통해 확인하여 실제 사용자가 입력한 성분들과 비교 후 수출에 해당하는 국가에 해당하는 규제에 위반되는 성분들이 있는지 알려주기 위해 새로운 기능 작업 필요

내가 한 업무

- 전성분 스크리닝 위해 RESTFUL API 설계 및 개발

- 전성분에 대한 스크리닝을 진행하기 위한 정규화,반정규화를 고려한 데이터베이스 설계

- 서버에서 다른 서버와 통신이 필요하여 RestTemplate을 활용하여 AI Server와 통신하여 응답 값을 받도록 처리

- AWS S3에 같은 전성분 스크리닝을 진행 시 최대 30개의 이미지만 S3에 저장하도록 변경하여 AWS S3 공간 23% 절약

기술 스택

- Java 11

- Spring Boot 2.6

- maria DB

- AWS


2024.03-2024.04

Ceticos

성분 스크리닝 고도화 개발

배경

- 화장품 수출을 위해 성분에 대한 스크리닝을 진행하는데에 있어 국가뿐만이 아니라 스토어,지역에 대한 규제가 스크리닝 되도록 추가 작업 필요하여 규제들에 대한 추가 작업 필요

내가 한 업무

- 성분 스크리닝 고도화를 위해 국가,스토어 등 추가적인 규제 RESTFUL API 설계 및 개발

- 성분에 대한 스크리닝을 진행하기 위한 정규화,반정규화를 고려한 데이터베이스 설계

- 기존에 존재하던 Slow Query를 Explain을 통하여 느린 부분 확인 후 인덱스를 추가하여 4ms -> 0.89ms로 단축

기술 스택

- Java 11

- Spring Boot 2.6

- maria DB

- AWS



2021.04-2023.02(1년 10개월)

코그넷나인

Cognitive Engineer


2022.02-2022.12

KB 증권 FCC

음성봇 대화 시나리오 개발

내가 한 업무

- 고객의 요구사항에 맞는 대화 시나리오 분석

- Figma를 통한 음성봇 시나리오 Flow Chart 작성

- InfoChatter(솔루션)를 활용한 음성봇 대화 개발

- InfoChatter(솔루션)를 활용한 자연어 처리 및 예외처리

- 타 솔루션과 API 연동

- 테스트 시나리오 작성 및 QA 진행

- Genesis Cloud를 활용한 대화 흐름 모니터링 및 개선 방안 도출

기술 스택

- Java 1.8

- InfoChatter

- Genesis Cloud


2021.09-2021.10

AIA 생명 FCC

음성봇 대화 시나리오 개발

내가 한 업무

- 고객의 요구사항에 맞는 대화 시나리오 분석

- Figma를 통한 음성봇 시나리오 Flow Chart 작성

- AIQ(솔루션)를 활용한 음성봇 대화 개발

- AIQ(솔루션)를 활용한 자연어 처리 및 예외처리

- 타 솔루션과 API 연동

- 테스트 시나리오 작성 및 QA 진행

기술 스택

- Java 1.8

- AIQ

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

컴퓨터공학 전공

한림대학교
2017.03-2021.02

ICT융합 전공

한림대학교