오진우

Java 벡엔드 개발자 엔지니어

About Me

Java & Spring / AWS 기반의 6년 차 백엔드 개발자로 Mau 100만인 웨이팅, 포스/키오스크 주문 서비스 시스템,
**8억건의 EP상품데이터
를 수집, 검색서비스 시스템, Dau 30만인 전군 보안시스템**에 API/Batch/인프라 구축 등을 해왔습니다.
주도적으로 업무를 리스팅 하고 반복되는 일을 자동화하여 비효율적인 프로세스를 개선하는 일을 좋아합니다.
파편화되어 있던 모니터링툴을 하나로 통합, 입사, 휴가, 자산관리를 원할하게 관리 할 수 있도록
백오피스를 개발하여 인사/총무팀 업무를 개선 시킨 경험이 있습니다.

경력 사항

야놀자 F&B Solution

https://home.nowwaiting.co

나우서비스테크팀

2023.7 ~ 현재

웨이팅, 포스/키오스크 주문서비스(Ruby/Java)

  • 웨이팅, 포스/키오스크 주문서비스 서버 개발 및 유지보수
  • 리엔지니어링을 통해 서비스 고도화
  • DevOps(로깅, 모니터링, 알림, 배포) 환경 개선

위메프

http://www.wemakeprice.com

플랫폼개발실 데이터수집개발팀

2021.12 ~ 2023.6

이커머스 서비스(Java/Kotlin)

  • 제휴 쇼핑몰에서 제공하는 상품 EP데이터(약 8억건) 수집 시스템 개발 및 유지보수
  • EP 생성이 어려운 영세몰들을 위한 크롤링 서비스 고도화 및 유지보수
  • 상품 수집 모니터링 환경 개선

조은아이앤에스

http://www.joeunins.com

부설 연구소

2020.1 ~ 2021.11

전군 보안 서비스(Java)

  • Dau 30만의 대규모 트래픽 / 대용량 로그 데이터 환경에서의 API/Batch 개발
  • 보안솔루션 레거시 개선
  • 아키텍처, 개발문화 등 개발환경 개선

지오시스(큐텐)

https://www.qoo10.com

GA & ER Division

2018.08 ~ 2019.10

인사,총무 백오피스(Java)

  • 자산관리, 입사자 처리 플로우 등 인사/총무 전반 백오피스 신규 개발

동덕정보통신

http://www.dongdeuk.co.kr

시스템 관리

2016.06 ~ 2018.01

한국투자증권 본사 사내 하드웨어,소프트웨어 유지보수

  • 하드웨어,소프트웨어 유지보수
  • 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개월간
      이전 개발자들의 부재로 인한 히스토리 단절된 상태에서 유지보수가 가능한 구조로 재정비 필요
  • 사용기술 : Ruby on Rails, Sidekiq, Aws Elastic Beanstalk, Docker
  • 핵심성과
    • 유지보수 가능하도록 현행화 작업을 통한 신뢰성 향상
    • Circle Ci를 통한 CI/CD 파이프라인 구축
    • Elastic Beanstalk의 루비 버전 이슈 대응

이제페이 결제모듈 개선

  • 배경
    • 모바일 주문의 결제부분에서 이지페이(PG)사에서 제공하는 PHP 결제모듈의 간헐적인 에러로 결제 장애가 발생
  • 문제해결
    • PHP 모듈의 코드를 분석하여 필요한 부분만 자바코드로 전환
  • 핵심성과
    • 장애 발생 시 슬랙알림을 통한 빠른 대응 체계 구축
    • 장애 발생 이후 결제 시스템 안정성 유지
    • 팀 내 기술 공유 세션을 통해 결제 시스템 관련 지식 전파

모바일 주문시스템 현행화

주요성과 - 위메프

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

만들면서 배우는 Spring 4기

https://edu.nextstep.camp/c/4YUvqn9V

2024.07 ~ 2024.08

Next Step 교육

  • 스프링 프레임워크를 직접 구현하는 과정

만들면서 배우는 JPA 3기

https://edu.nextstep.camp/c/UHESCzBt

2024.02 ~ 2024.03

Next Step 교육

  • JPA 스펙을 가지고 직접 라이브러리를 구현하는 과정

ATDD, 클린 코드 With Spring 7기

https://edu.nextstep.camp/c/R89PYi5H

2023.06 ~ 2023.08

Next Step 교육

  • ATDD와 클린코드 교육

TDD, 클린 코드 with Java 15기

https://edu.nextstep.camp/c/8fWRxNWU

2022.09 ~ 2022.11

Next Step 교육

  • TDD와 클린코드 교육