이동욱

서버 백엔드 엔지니어

About Me

Java & Spring / NodeJS & TypeScript, AWS 기반의 10년차 서버 백엔드 개발자로 누적 회원수 100만의 에듀테크, MAU 1,500만 & 일 주문 300만 커머스, 일 PV 2,000만 포탈 등의 서비스에서 백엔드 플랫폼 개발 및 AWS 인프라 구축 등을 해왔습니다.
개인이 하고 싶은 일 보다는 회사와 팀에 도움이 되는 개발을 해야한다는 생각에 xtrabackup, pt-online-schema-change, MHA를 활용한 MySQL 운영, Ansible을 이용한 IDC 인프라 운영을 해오기도 했습니다.
테스트 코드 작성을 당연하게 생각하여 전 직장 시스템의 경우 2500개의 테스트 케이스가 하루에도 수십번 수행되는 환경을 구성하였습니다.
현재는 CTO로 사업과 제품의 방향성을 고려하여 채용, 시스템 설계, 팀 매니징, 팀원과 팀의 성장 등을 주요 업무로 하고 있습니다.

Experience

인프랩

https://www.inflearn.com/

CTO

2021.04 ~ 현재

회원수 100만, 누적 학습수 3000만건의 에듀테크 서비스

  • 사내 모니터링 & 알람 도입 (APM / CloudWatch & Lambda)
  • 신규 서비스 랠릿 전체 아키텍처 및 도메인 모델 설계
  • PostgreSQL 성능 튜닝 및 장애 대응
  • 개발파트 채용 브랜딩 개선 (백엔드 / 프론트엔드)
  • 테스트 코드 & 코드리뷰 & 아키텍처 개선 등 개발환경 개선

우아한형제들

https://www.woowahan.com/

Java & Spring 백엔드 개발자

2016.12 ~ 2021.04

MAU 1,500만, 일 주문 300만건의 커머스 서비스

  • 대규모 트래픽, 데이터 환경에서의 API/Batch 개발
  • 정산, 포인트, 주문 시스템의 레거시 개편
  • 업계 최초 일정산, 광고 정산 등 비지니스 지원
  • IDC / AWS 환경 모두에서 무중단 배포, 성능 테스트, 운영 시스템 구축
  • 2019년 상반기 우수사원 수상

줌인터넷

https://zum.com

웹 개발자

2014.12 ~ 2016.12

일일 PV 2000만의 포탈 서비스

  • 포털 메인 페이지, 회원 서비스의 메인 개발자로 개발/운영
  • EhCache를 이용한 로컬 캐시, 브라우저 전역 변수를 이용한 클라이언트 캐시등으로 API서버가 죽어도 문제가 없는 메인페이지 구성
  • IDC 인프라 환경에서의 개발/운영
  • 2016년 본부 추천 특진

KCC정보통신

웹 개발자

2014.02 ~ 2014.12

연매출 1000억의 중견 SI 기업

  • 사내 프로젝트 개발 및 100억원의 SI 프로젝트 참여
  • 전자정부 프레임워크, MyBatis, Oracle 환경에서의 개발 경험

역량

2018.04.01 ~ 현재

  • 인프랩 CTO (2021.07.01 ~ 현재)
  • 인프랩 신규 서비스(랠릿) 프로젝트 전체 리드 (2021.07.01 ~ 2022.01.31)
  • 배달의 민족 정산 시스템팀 개발 파트 리드 (2019.07.01 ~ 2021.04.19)
  • 배달의 민족 포인트 개편 TF 리드 (2018.04.01 ~ 2018.07.31)

레거시 시스템 리팩토링/리엔지니어링

대용량 데이터 처리 및 성능 개선

견고한 데이터 구조 및 애플리케이션 설계

  • 일 600억원 & 300만건 주문에서의 일일 정산
  • 감사 추적(Audit Trail)을 위한 채권/미수금/보상의 Update가 없는 도메인 설계
  • 감사 추적(Audit Trail)을 위한 이벤트 기반 포인트 도메인 설계
  • 정산 프로젝트 TestCode 2500개 / Line Coverage 61%

IDC 및 AWS 클라우드 인프라 운영 관리

  • [AWS] Jenkins / Code Deploy / Beanstalk 을 이용한 무중단 배포
  • [IDC] Jenkins / L4 / Nginx를 이용한 무중단 배포
  • [IDC] MHA 를 이용한 MariaDB HA 환경 구성
  • [IDC] Ansible를 이용한 IDC 인프라 자동화

Skill

현재 업무에 사용중 혹은 사용했던 기술들입니다.

Backend

  • Java, Groovy, NodeJS (TypeScript),
  • NestJS, Spring Boot, Spring MVC, Spring Batch, Spring Security, Spring Data JPA/Redis, Spring Cloud AWS
  • TypeORM, JPA, Querydsl, Hibernate
  • Jest, Supertest, Junit4/5, Mockito, Spock
  • Gradle, Maven
  • IntelliJ, WebStorm, Visual Studio Code

DevOps

  • MySQL, MariaDB, PostgreSQL
  • Jenkins, TravisCI, AWS Code Deploy
  • AWS Beanstalk, AWS SQS, Elastic Cache (Redis), RDS (Aurora), S3, EC2, Cloud Watch
  • Nginx, Tomcat
  • Pinpoint, Ngrinder
  • Linux Centos

Frontend

  • ES6
  • Npm, Grunt, Webpack
  • Handlebars, Lodash
  • Backbone

Opensource

개인 기술 블로그

  • 업무에서 만난 문제, 회사에서 사용해야할 기술, 팀내 많은 분들이 실수하는 부분 등을 자세히 정리하여 공유하기 위한 블로그
  • 평일 평균 PV 6,000 ~ 7000, MAU 4.9만, 월 PV 15만
  • 2016년 부터 꾸준히 작성하고 있으며 현재 누적 PV 430만

Querydsl-JPA를 사용할 수 있는 Spring Batch Item Reader

  • 업무에서 사용중인 Querydsl-JPA가 Spring Batch에서 공식지원하지 않아 이를 위한 오픈소스 개발
  • 해당 오픈소스 개발 과정은 사내 기술 블로그에 포스팅

Spring Batch 오픈소스 PR

  • 커머스 서비스를 운영하면서 Spring Batch에 본격적으로 입문
  • 업무 진행하면서 발견된 이슈에 한해서 계속 PR 요청

AWS Mocking용 Spring Boot Starter

  • AWS의 메세징 큐 서비스인 SQS 개발 할때마다 OTP 인증이 필요한게 귀찮아서 개발
  • 여러 개발자들이 격리화된 AWS 환경에서 개발할 수 있게 지원하는 Mocking 라이브러리
  • 별도로 Docker 설치 없이 프로젝트를 실행할수 있게 H2와 같은 사용성 지원
  • ElasticMQ 등 사용
  • 오픈 초기에는 사내 여러 팀, 서비스에서도 사용
  • AWS Localstack의 발견으로 확장하지 않을 예정

IntelliJ IDEA 기반 IDE에서 사용할 수 있는 번역 플러그인

  • 구글/네이버 사전을 검색하기 위해 개발 중간 중간 화면 이동하는게 귀찮아서 개발
  • JavaDoc 번역, 변수명 짓기 등 영문 <-> 한글 번역 지원
  • PC 애플리케이션의 Freezing을 막기 위해 모든 이벤트를 논블로킹으로
  • Java8 CompletableFuture 기반 구현 및 테스트 코드 작성

Education

패스트캠퍼스 AWS 운영 서버 관리 마스터 워크샵

https://github.com/jojoldu/fastcampus-aws-workshop

2018.04 ~ 2018.05

AWS 운영에 필요한 기본 개념들과 배포 환경 구성 교육

  • 신규 개편할 포인트 시스템의 AWS 인프라 구축이 필요해 참여
  • Code Deploy를 통한 무중단 배포, Cloud Watch 모니터링 등

패스트캠퍼스 SQL 튜닝 캠프

https://jojoldu.tistory.com/162

2017.07 ~ 2017.08

오라클을 기반의 쿼리 튜닝 교육

  • 정산 시스템을 개발/운영 하면서 복잡한 쿼리 + 쿼리 성능 튜닝의 필요성을 느껴 참여
  • 기본적인 인덱스, 실행 계획, RDBMS의 구조
  • 실제 업무에 적용 후 쿼리 성능 향상 (5초 -> 1.2초)

패스트캠퍼스 자바 웹 프로그래밍 CAMP

https://jojoldu.tistory.com/301

2016.07 ~ 2016.08

자바지기 박재성님의 교육

  • 테스트 코드와 클린 코드 교육
Fork me on GitHub