Experience

Viva Republica (Toss)

Python Backend, Python Chapter Lead • 2019년 1월 — 현재

Internal Platform Team에서 토스 내부 시스템 / 임직원의 생산성을 위한 소프트웨어와 플랫폼을 개발하고 있습니다.

이음소시어스

iOS, Backend • 2016년 8월 — 2019년 1월

아임에잇은 한국의 대표적인 소개팅 앱 중 하나로 직장인을 위한 소개팅 서비스입니다. 사용자의 행위에 따라 알고리즘이 적용돼 가장 매칭될 확률이 높은 상대방을 골라줍니다.

맺음은 아임에잇, 이음의 회원풀을 활용하는 결혼 정보 서비스입니다. 맺음 매니저들을 대상으로 하는 관리자 백오피스가 맺음의 메인 서비스입니다.

백엔드 개발자로 입사하여 초기 iOS 클라이언트 개발자 인력이 부족해 아임에잇 iOS앱 개발을 맡아 추가 기능 개발, 유지보수 및 Objective-C 에서 Swift 로의 변환 작업을 진행했습니다. 이후 다시 백엔드 개발 인력이 부족해 12월부터 다시 주 포지션인 백엔드 개발자로 돌아왔고 Rails, React 로 개발되어있는 맺음 서비스를 맡아 기능 추가 및 유지보수를 진행하고 있습니다. 또한 AWS 인프라를 관리하고 유지 보수하고 있습니다.

네고

iOS, Backend, DevOps • 2016년 3월 — 2016년 7월

네고는 사용자가 원하는 상품을 검색해서 위시리스트에 추가하면 선택한 제품이 다를지라도 알고리즘에 따라 해당 제품의 제품번호를 추출해 같은 상품끼리 통합 관리를 합니다. 이후 크롤링 엔진이 정해진 규칙에 따라서 작동하고 가격 정보를 저장하여 제품의 가격 변동 그래프를 확인할 수 있도록 하며 사용자가 원하는 금액이나 변동폭이 발견될때 알림을 주는 서비스입니다.

파이썬 Flask 를 이용한 API 서버 구축, AWS 인프라 구축, 데이터베이스 설계 및 최적화 작업, 개발팀 리딩이 주된 작업이었습니다. 초기 환경 구축 및 릴리즈 이후에는 0.6 맨데이 정도를 Swift 를 이용한 iOS 앱 개발 및 유지보수에 할애하여 두가지 작업을 병행했습니다. 일정 관리는 애자일 기법중 스크럼 방식을 활용했습니다. 서비스 배포 범위는 린하게 잡고 빠른 배포와 빠른 검증을 통해 푸시 정책이나 UI/UX 를 여러가지 방법으로 수정하는 등의 시도를 해봤습니다. 관리 툴로는 트렐로를 사용했으며 스프린트 단위는 1주 -> 2주였습니다.

레드아이스

Backend, Frontend • 2015년 7월 — 2016년 2월

Myrics 는 글로벌 소설 플랫폼입니다. 유사한 서비스로는 일본의 코미코가 있습니다. 만화까지 취급하는 코미코와는 달리 소설의 종류를 좀 더 세분화하는 방법으로 소설에 많은 집중을 하고있습니다. 일러스트가 결합된 소설까지 연재를 할 수 있는 플랫폼입니다. 중국, 대만, 미국에 처음 릴리즈 됐습니다.

파이썬 Flask 를 이용한 API 서버구축, ES6 를 이용한 프론트엔드 개발, 데이터베이스 설계 작업, 관리자 백오피스 설계 및 개발 작업이 주된 작업이었습니다. 일정 관리는 애자일 기법중 스크럼 방식을 활용했습니다. 서비스 배포 범위는 린하게 잡고 빠른 배포와 빠른 검증을 통해 결제 정책이나 UI/UX 를 여러가지 방법으로 수정하는 등의 시도를 해봤습니다. 관리 툴로는 지라를 사용했으며 스프린트 단위는 2주였습니다.

그리드잇

Backend • 2015년 1월 — 2015년 6월

파이썬 Flask 를 이용한 API 서버구축이 주된 작업이었습니다.

Projects

토스 내 SaaS, On-premise 기반의 서드파티 시스템 연동

2020.5 — 현재


기술 스택

Django, Django Rest Framework, Python, K8S


주요 작업

  • workday, okta, google 전반의 인사 정보 프로비저닝 (workday -> toss -> okta -> slack, google)
  • 사용자 입력 데이터를 정의된 내부 프로세스로 관리하고 결과 데이터를 SAP 시스템과 연동 (RFC, http api)
  • 서드파티 시스템과의 연동을 위한 웹훅, API 서버 개발
  • 챕터, 인터널 시스템 생산성 향상을 위한 플랫폼 개발

    2019.8 — 현재


    기술 스택

    Django, Django Rest Framework, Python, K8S


    주요 작업

    • 시스템 가시성 확보를 위한 log middleware 구현
    • memray, pyinstrument 등의 도구를 통한 어플리케이션 성능 측정 및 최적화
    • Enterprise DB 지원을 위한 Django Model -> DDL 변환 레이어 개발
    • 쿼리 사용처 추적을 위한 라벨링 / 메트릭 수집 설정
    • 서비스 별 장애와 오류 발생 상황의 원인을 분석 후 해소를 위한 설계 변경 및 최적화
    • 멀티 EKS 클러스터 운용
    • ad, okta 등의 multi idp 지원을 위한 인증 및 oauth gateway 구현, 유지보수
    • 및 기타 엔지니어링 지원 업무 수행
    • Python Chapter Lead

      2019.6 — 현재


      주요 작업

      • 챕터 성장을 위한 세션
      • 챕터 내 목적 조직을 구성, 목적 조직별 목표 제시 및 활동 지원
      • 채용 대상에 대한 페르소나 정의와 요소 검증을 위한 역량 기준 정의
      • 문제 해결 역량 검증을 위한 채용 과제 설계
      • 팀 내 생산성 향상을 위한 서비스 개발

        2019.1 — 현재


        기술 스택

        Django, Django Rest Framework, React, Python, K8S


        주요 작업

        • 슬랙봇과 웹 UI를 통해 팀 내의 업무 생산성 증가 & 자동화를 위한 도구 개발 수행
        • Django Rest Framework를 통한 API 서버 개발 수행
        • K8S를 통한 서비스 배포 및 관리 수행
        • Django Migration DDL 관리 & online migration
        • Django ORM을 통한 복잡한 쿼리 작성 및 최적화 수행
        • 팀 내 생산성 향상을 위한 서비스 개발

          2019.1 — 현재


          기술 스택

          Django, Django Rest Framework, React, Python, K8S


          주요 작업

          • 슬랙봇과 웹 UI를 통해 팀 내의 업무 생산성 증가 & 자동화를 위한 도구 개발 수행
          • Django Rest Framework를 통한 API 서버 개발 수행
          • K8S를 통한 서비스 배포 및 관리 수행
          • Django Migration DDL 관리 & online migration
          • Django ORM을 통한 복잡한 쿼리 작성 및 최적화 수행
          • 가시성 확보를 위한 log middleware 구현
          • 펌뱅킹, 모계좌간 거래내역 대사

            2019.1 — 현재


            기술 스택

            Django, Windows, On-premise(IDC), jenkins, K8S


            주요 작업

            • [v1] 펌뱅킹을 통해 이체시 발생하는 서비스 원장과 법인 소유의 계좌 내역을 매핑하고 오차를 발견해 리포트하는 작업 수행
            • [v1] Jenkins로 django command를 실행하여 매일 자동으로 데이터를 수집하고 처리하는 작업 수행
            • [v1] 중간 집계를 위한 데이터는 하둡에 저장되고 임팔리를 통해 필터와 함께 쿼리 후 어플리케이션에서 인메모리 매핑을 수행
            • [v2] v1에서의 단순 전체 탐색 방식을 은행과 은행 별 필터링 플러그인 주입 방식으로 리팩토링
            • [v2] K8S Cronjob을 통해 은행 별 매핑 수행
            • 이음오피스

              2018.9 — 2018.12


              기술 스택

              Ruby On Rails 4, React, Amazon EC2, Amazon RDS, Amazon S3, mysql, nginx, sidekiq


              주요 작업

              • ActiveRecord 를 사용해 complex query 작성
              • N+1 쿼리 문제 해결을 위해 join + includes 최적화
              • 비동기 작업 및 배치 작업을 위한 sidekiq schedule 관리
              • capistrano 를 이용한 배포 자동화
              • AWS 인프라 유지 및 유지보수 담당
              • 팀 프로젝트 1

                2017.8 — 2018.2


                기술 스택

                Swift 4, RxSwift, Event Pub/Sub, Realm, GRPC


                주요 작업

                • Swift 4 를 사용하여 앱 코드 작성
                • RxSwift 의 Observable 및 Driver 를 사용하여 모든 Stream 처리
                • RxSwift 의 Single trait 를 사용하여 모든 Request 처리
                • GRPC 를 통한 API 통신
                • protocol oriented, extension 적극 활용
                • Snapkit 를 사용하여 View 간의 Auto Layout 관리
                • 맺음

                  2017.6 — 현재


                  기술 스택

                  PHP 7.1, Laravel, React, Webpack, Redux, Amazon EC2, Amazon RDS, Amazon S3, Mysql 5.7


                  주요 작업

                  • Laravel 환경 API 서버 구축
                  • AWS 인프라 작업
                  • Redux + React 환경 구축
                  • Mysql 5.7 의 JSON type 을 활용한 NoSQL 패턴 일부 사용
                  • N+1 쿼리 문제 해결을 위해 join 최적화
                  • mysql: 쿼리 플랜 분석 및 최적화
                  • 맺음

                    2017.1 — 현재


                    기술 스택

                    Ruby On Rails 4, React, Amazon EC2, Amazon RDS, Amazon S3, postgresql, nginx, sidekiq


                    주요 작업

                    • 순수 React 를 사용한 어드민 프론트엔드 앱 구축
                    • browserify 를 이용한 JSX -> ES5 빌드 규칙 적용
                    • ActiveRecord 를 사용해 complex query 작성
                    • N+1 쿼리 문제 해결을 위해 join + includes 최적화
                    • 비동기 작업 및 배치 작업을 위한 sidekiq schedule 관리
                    • capistrano 를 이용한 배포 자동화
                    • postgresql: 쿼리 플랜 분석 및 최적화
                    • postgresql: 인덱스를 통한 processing time 최적화
                    • 아임에잇, 이음, 맺음의 전체적인 AWS 인프라 유지 및 유지보수 담당
                    • 이음오피스 iOS

                      2016.8 — 2016.12


                      기술 스택

                      Swift, Objective-C, PromiseKit, Alamofire, Sketch, zeplin


                      주요 작업

                      • Objective-C 기반 앱 Swift 3 로 포팅
                      • Swift 3 PromiseKit 을 이용한 Promise 패턴 도입
                      • StoryBoard + Auto Layout 적극 사용
                      • protocol oriented, extension 적극 활용
                      • Zeplin 을 사용해 Sketch 를 사용하는 디자인팀과 협업
                      • 네고

                        2016.3 — 2016.7


                        기술 스택

                        Amazon ELB + Auto Scaling, Amazon EC2, Amazon RDS, Amazon S3, postgresql, nginx, fabric, gunicorn, Flask, SQLAlchemy, celery, rabbitmq, Swift, Alamofire


                        주요 작업

                        • Flask 를 이용한 API 구축
                        • fabric + EC2 를 이용한 배포 자동화
                        • 전체적인 AWS 인프라 유지 및 유지보수 담당
                        • SQLAlchemy: N+1 쿼리 문제 해결을 위한 join + eager loading 최적화
                        • 비동기 작업 및 배치 작업을 위한 Celery task 관리
                        • postgresql: 쿼리 플랜 분석 및 최적화
                        • postgresql: 인덱스를 통한 processing time 최적화
                        • 효과적인 크롤링을 위한 multi processing 작업 관리
                        • 크롤링 순차적인 결과 취합을 위한 lock 구현
                        • Swift 2, Storyboard 를 사용한 iOS 앱 구축
                        • Myrics

                          2015.7 — 2016.2


                          기술 스택

                          Amazon ELB + Auto Scaling, Amazon EC2, Amazon RDS, Amazon S3, postgresql, nginx, fabric, python2, uwsgi, flask, SQLAlchemy, celery, rabbitmq


                          주요 작업

                          • Flask 를 이용한 API 구축
                          • fabric + EC2 를 이용한 배포 자동화
                          • SQLAlchemy: N+1 쿼리 문제 해결을 위한 join + eager loading 최적화
                          • 비동기 작업 및 배치 작업을 위한 Celery task 관리
                          • postgresql: 쿼리 플랜 분석 및 최적화
                          • postgresql: 인덱스를 통한 processing time 최적화
                          • jquery + es6 를 이용해 MVC 패턴 작성
                          • 품번

                            2015.4 — 2015.6


                            기술 스택

                            Flask, Python2, ES5, jQuery, scss, swift


                            주요 작업

                            • 웹뷰를 사용한 하이브리드 앱
                            • 최저가 변동 체크 크롤러 작성
                            • GCM, APNS 를 이용한 가격 변동 푸시 알림
                            • 오늘뭐먹지?

                              2015.2 — 2015.4


                              기술 스택

                              ES5, jQuery, AngularJS, jade, less


                              주요 작업

                              • AngularJs Router 를 사용해서 SPA 형태 구축
                              • 파일업로드 기능을 포함한 제보 API 구축
                              • vultr 서버 호스팅
                              • Education

                                중앙대학교 서울캠퍼스

                                기계공학부 • 2014 — 휴학

                                — [2016] 11회 앱잼 생활 분야 우수상

                                선린 인터넷 고등학교

                                정보통신과 • 2011 — 2014

                                — [2012] 정보보호올림피아드 은상
                                — [2012] 디지털콘텐츠 경진대회 동상
                                — [2011] 정보보호올림피아드 동상