About Me
Java & Spring / AWS 기반의 6년 차 백엔드 개발자로 Mau 100만인 웨이팅, 포스/키오스크 주문 서비스 시스템,
**8억건의 EP상품데이터를 수집, 검색서비스 시스템, Dau 30만인 전군 보안시스템**에 API/Batch/인프라 구축 등을 해왔습니다.
주도적으로 업무를 리스팅 하고 반복되는 일을 자동화하여 비효율적인 프로세스를 개선하는 일을 좋아합니다.
파편화되어 있던 모니터링툴을 하나로 통합, 입사, 휴가, 자산관리를 원할하게 관리 할 수 있도록
백오피스를 개발하여 인사/총무팀 업무를 개선 시킨 경험이 있습니다.
경력 사항
웨이팅, 포스/키오스크 주문서비스(Ruby/Java)
- 웨이팅, 포스/키오스크 주문서비스 서버 개발 및 유지보수
- 리엔지니어링을 통해 서비스 고도화
- DevOps(로깅, 모니터링, 알림, 배포) 환경 개선
이커머스 서비스(Java/Kotlin)
- 제휴 쇼핑몰에서 제공하는 상품 EP데이터(약 8억건) 수집 시스템 개발 및 유지보수
- EP 생성이 어려운 영세몰들을 위한 크롤링 서비스 고도화 및 유지보수
- 상품 수집 모니터링 환경 개선
전군 보안 서비스(Java)
- Dau 30만의 대규모 트래픽 / 대용량 로그 데이터 환경에서의 API/Batch 개발
- 보안솔루션 레거시 개선
- 아키텍처, 개발문화 등 개발환경 개선
인사,총무 백오피스(Java)
- 자산관리, 입사자 처리 플로우 등 인사/총무 전반 백오피스 신규 개발
한국투자증권 본사 사내 하드웨어,소프트웨어 유지보수
- 하드웨어,소프트웨어 유지보수
- DLP,DRM,가상화,PC 유지보수 경험
주요성과 - 야놀자 F&B Solution
나우웨이팅 서비스 리엔지니어링
- 배경
- 루비 온 레일즈로 운영중인 나우웨이팅 서비스의 클라이언트(FE, AND)의 요청 부분을 자바 프로젝트로 기술전환
- 사용기술 : Spring boot, Spring Cloud Gateway, JPA
- 핵심성과
- CI/CD (Jenkins, Circle Ci, 소나큐브), 로깅 (페이퍼트레일, Zipkin), 모니터링 (Pinpoint), 알림(Sentry, Slack) 도입을 통한 개발비용 대폭 절감
- 에러코드 정의, API문서 관리를 통해 FE, AND 팀과 협업구조 개선
- 웨이팅 및 주문 기능들을 기존 루비 대비 쉽게 코드로 정리하여 팀원들의 도메인 분석이 용이하도록 작업
나우웨이팅 서비스 개선
- 배경
- 루비 온 레일즈로 운영중인 나우웨이팅 서비스가 6개월간
이전 개발자들의 부재로 인한 히스토리 단절된 상태에서 유지보수가 가능한 구조로 재정비 필요
- 루비 온 레일즈로 운영중인 나우웨이팅 서비스가 6개월간
- 사용기술 : Ruby on Rails, Sidekiq, Aws Elastic Beanstalk, Docker
- 핵심성과
- 유지보수 가능하도록 현행화 작업을 통한 신뢰성 향상
- Circle Ci를 통한 CI/CD 파이프라인 구축
- Elastic Beanstalk의 루비 버전 이슈 대응
이제페이 결제모듈 개선
- 배경
- 모바일 주문의 결제부분에서 이지페이(PG)사에서 제공하는 PHP 결제모듈의 간헐적인 에러로 결제 장애가 발생
- 문제해결
- PHP 모듈의 코드를 분석하여 필요한 부분만 자바코드로 전환
- 핵심성과
- 장애 발생 시 슬랙알림을 통한 빠른 대응 체계 구축
- 장애 발생 이후 결제 시스템 안정성 유지
- 팀 내 기술 공유 세션을 통해 결제 시스템 관련 지식 전파
모바일 주문시스템 현행화
- 배경
- 카카오톡의 챗봇 주문하기 서비스 종료
- 모바일 주문 서비스에 계약된 사장님들의 이탈 방지
- 사용기술 : Ruby on Rails, PHP, Aws Elastic Beanstalk
- 핵심성과
- 히스토리가 단절된 상황에서 빠르게 서비스를 분석하여 현행화 덕분에 90% 이상 계약 유지
- 야오더를 런칭 할 수 있는 발판 마련
- 입사 3개월 만에 우수사원 선정
주요성과 - 위메프
EP 전송 시스템 리아키텍처링 TF (PHP -> Kotlin 기술 스택 전환)
- 배경
- 사내 기술스텍이 Kotlin으로 지정되어 오래된 레거시 EP 전송 시스템을 개편하기 위해 TF 참여
- IDC환경 -> 클라우드환경
- 스트리밍 아키텍처도입
상품DB 마이그레이션 (버티카DB -> 몽고DB 전환)
- 배경
- 상품수 증가에 따른 버티카DB에 성능 문제가 발생하기 시작하여 사내 구축된 DataLake팀의 몽고DB로 전환
- DataLake팀과 협업하여 카프카를 통해 상품DB 전환
- 사용기술 : Vertica, Kafka, Mongo
- 핵심성과
- db 마이그레이션 후 정합성 100% 달성
- 배치 성능 개선 (최초 3000만건 1시간 20분 -> 3000만건 30분 62.5% 성능 향상)
- 10억건 이상의 상품 데이터 수집 가능
상품 수집 모니터링 시스템 개선
- 배경
- OOM이슈로 Vertica Batch서버가 다운된 상태로 장애를 인지하는데 일주일이 소요됨
- 해당 서버는 실제 서버에 접속해보지 않는 이상 헬스 체크가 불가능 했음
- 사내에 전사 그라파나가 존재한다는 것을 확인하고 프로젝트 착수
- 사용기술 : Vertica, Grafana
- 핵심성과
- 현재 수집중인 서버, 평균 시간별 수집량, 이미지수집 상태, 업체별 상품수, 배치상태 등 분산된 정보를 한곳으로 통합하여
빠른 장애 전파 및 모든 팀원이 기민하게 대응 할 수 있는 여건 확립
- 현재 수집중인 서버, 평균 시간별 수집량, 이미지수집 상태, 업체별 상품수, 배치상태 등 분산된 정보를 한곳으로 통합하여
상품 메타 데이터 검색 시스템 개발
- 사용기술 : Spring Boot, Java 8, Elasticsearch
- 핵심성과
- 8억건의 제휴 상품중 비슷한 상품을 카탈로그로 가공하기 위한 ES 상품 검색 api개발
- ngram tokenizer를 활용하여 상품 검색 품질 향상
상품 메타 데이터 색인 시스템 개발
- 사용기술 : Spring Boot, Java 8, VerticaDB, AWS SQS, Elasticsearch
- 핵심성과
- 8억건의 제휴 상품 데이터를 원할하게 검색할 수 있도록 ES로 색인
- 상품을 256개의 키로 분할하여 SQS를 통해 동시에 색인 할 수 있는 구조를 설계
- 장애시 슬랙 알람을 통한 모니터링 구축
- 획득역량
- 대용량 데이터에 대한 ES 색인방법
- 색인 성능 테스트 방법
주요성과 - 조은아이앤에스
DLP, 개인정보 보안솔루션 (Blue-X ray) 어드민 및 서버 개발
- 사용기술 : Spring Boot, Java 8, Cubrid, Redis, Elasticsearch, vue.js, Docker swarm, Nginx
- 핵심성과
- 풀사이클 개발(기획,개발,운영,지원)
- 보안 정책 실시간 적용
- jsp 기반시스템 -> backend 와 frontend 분리
- backend (spring 3.1 전자정부프레임워크) -> (spring boot 2.1x - jpa)
- frontend (jsp - jquery) -> vue.js 기반 spa 환경으로 관리자 admin 개발
- 개인정보,매체제어애 대한 로그를 분석가능 하도록 차트용 batch개발
- docker 기반 패키지로 솔루션 설치 간편화
- 역할 : 풀스택 엔지니어로써 보안 솔루션 어드민 및 서버 개발
레거시 보안시스템 리팩토링 / 리엔지니어링
- 사용자 30만의 국방부 TACS 보안체계 DLP Server 안정화
- 정책 슬로우 쿼리 튜닝
- 군 인사시스템과 인사연동 배치 개발
- select/insert,update,delete 트랜잭션 분리로 성능 개선
- 사용자 30만의 국방부 TACS 보안체계 PC보호 Backend API Server DB 마이그레이션
- postgre -> cubrid DB 마이그레이션
- nodejs 기반에서 spring-boot로 기술스택 전환
- 순찰 시스템 조은 패트롤 네이티브 기반 앱에서 하이브리드 앱으로 개선
- 네이티브 xml front -> webview를 사용한 vue.js 기반 front로 변경
- 전반적인 성능 개선 및 rest api 서버 신규 개발
개발팀 인프라 운영 관리
- [이슈트래커] 회사에 방치되던 redmine -> Yona로 개편 및 교육
- [CI/CD] 지속적인 솔루션 통합을 위한 jenkins 운영
- [운영] tomcat 단독서버 솔루션에서 docker 컨테이너로 분리된 솔루션으로 개선
Skill
현재 업무에 사용중 혹은 사용했던 기술들입니다.
Backend
- Java
- Spring Boot, Spring MVC, Spring Security, Spring Batch, Spring Data JPA/Redis, Spring Cloud Gateway
- JPA, Querydsl, Mybatis, JOOQ
- Gradle, Maven
DevOps
- Vertica, Cubrid, Postgresql
- Elasticsearch
- AWS SQS, S3, EC2, Elastic Beanstalk
- Jenkins, Circle Ci
- Grafana, Zipkin
- Kafka, Debezium
- Docker swarm
- Nginx, Tomcat
- Linux Centos
Frontend
- ES6
- Vue.js
Opensource
자산관리 시스템 개선
- 회사 내부 휴가시스템의 사용불편,자산관리가 안되는게 확인되어 개발하게됨
- 사내에 서비스가 됨
자산관리 시스템
- 엑셀로 자산관리,입사자 및 업무 공유가 불편하여 개발
- 사내에 서비스가 됨
Education
Next Step 교육
- 스프링 프레임워크를 직접 구현하는 과정
Next Step 교육
- JPA 스펙을 가지고 직접 라이브러리를 구현하는 과정
Next Step 교육
- ATDD와 클린코드 교육
Next Step 교육
- TDD와 클린코드 교육