구영민

Last Updated: 2022. 03. 14.

안녕하세요! 👋 Kotlin/Spring을 주로 사용하는 5년차 백엔드 개발자입니다. 소프트웨어를 작성할 때 제가 작성하는 프로젝트의 코드 뿐 아니라 큰 틀에서의 비즈니스 상황도 고려하는 시야를 가지려 노력합니다. RDBMS의 여러 기능들을 적절하게 이용하여, 높은 트래픽 상황에서도 데이터가 깨지지 않는 시스템을 다수 만들어 보았습니다. 새로운 시스템을 설계하고 만드는 것은 물론, 레거시 시스템을 분석하고 적절히 리팩토링하거나 새로운 시스템으로 재작성하는 것에 능숙합니다. 반복되는 업무를 싫어하며, 대신 컴퓨터에게 맡기기를 좋아합니다. 시스템 배포 등 반복되는 업무들을 자동화하였습니다.

주력 기술:

  • Backend - Kotlin, Spring, MySQL, Kafka, Redis
  • Infra - AWS, Docker, Kubernates, GitHub Actions

경력

Hyperconnect - Backend Software Engineer (2020.07 - 현재)

  • AI 기반 SaaS의 API Gateway 설계 및 개발 (Kotlin, Spring) (2021.10 - 현재)
  • AI 기반 아자르 백오피스 재작성 (Python, Django) (2020.07 - 2021.09)

SpartaCodingClub - Parttime Tutor (2020.08 - 현재)

  • 약 3,000명의 초보자에게 프로그래밍의 기초와 React Native (Expo), Unity, SQL 등을 가르침.
  • IT 지식을 초보자나 비전공자에게 가르칠 수 있는 소프트 스킬을 기름.

PeopleFund - Backend Software Engineer (Python, Django) (2018.01 - 2020.07)

  • 전북은행과 전산 연결을 처리하는 TCP/IP 기반의 미들웨어 재작성 (2019.11 - 2020.03)
  • 투자자의 수익금 중 원천징수한 세금을 국세청에 신고하는 시스템 개발 (2019.11 - 2020.01)
  • 개인신용 대출 신청 파트의 백엔드 대규모 리팩토링 및 무중단 배포 (2019.02 - 2019.07)
  • 이커머스 채권매입업 서비스(얼리페이, 프리페이) 서버 파트 리드 개발 (2018.03 - 2018.12)

Open Source Contribution

  • cel-java: 커스텀 함수를 설정할 수 있도록 withLibraries 함수 추가 (해당 PR Link)
  • pre-commit-hooks: check-vcs-permalinks 훅에 GitHub Enterprise 지원 추가 (해당 PR Link)
  • PyPinkSign: PBES2 Scheme으로 생성된 공인인증서를 처리할 수 있게 함 (해당 Issue Link)
  • aioredis: Python 3.8에서 발생하는 DeprecationWarning 제거 및 테스트 수정 (해당 PR Link)

발표

수상, 자격증, 대외활동

학력

  • 한국항공대학교 - 소프트웨어학과 (2016.03 - 현재, 휴학 중)
  • 선린인터넷고등학교 - 웹운영과 (2013.03 - 2016.02)

경력 기술

Hyperconnect - Backend Software Engineer (2020.07 - 현재)

AI 기반 SaaS 소프트웨어의 백엔드 개발 (Kotlin, Spring) (2021.10 - 현재)

Description: 고객이 SaaS를 API 형식으로 사용할 수 있도록 API Gateway를 주로 개발하고 있습니다.

What I Did:

  • API Gateway 시스템 아키텍처와 Open API 인터페이스의 디자인에 참여
  • NVIDIA Triton 추론 서버와 통신하여 AI 처리 결과를 판단하는 시스템 개발
  • 손쉬운 커스터마이징을 위하여, cel-java와 Jackson을 이용하여 GitHub Actions와 같은 룰 엔진 개발
  • 웹훅에서의 SSRF, 악성 파일 업로드 등의 해킹 기법 방어 코드 개발

Keyword: SaaS, Open API, Kotlin, Spring, Aurora MySQL, Kafka

AI 기반 백오피스 시스템 재작성 (Python, Django) (2020.07 - 2021.09)

Description: 레거시 AI 기반 Azar 백오피스를 새로운 시스템으로 재구현하였습니다.

What I Did:

  • 레거시 시스템을 분석하고, 스키마 재설계 및 비즈니스 로직 재구현. 시스템 안정성과 신뢰성 개선.
  • 데이터 파이프라인을 GCP Pub/Sub에서 Kafka Publisher/Consumer으로 마이그레이션. 시스템 처리 시간을 90% 줄임.

회사 블로그에 기고한 글

Keyword: Django, PostgreSQL, Kafka

피플펀드컴퍼니 - Backend Developer (2018.01 - 2020.07)

전북은행과 전산 연결을 처리하는 TCP/IP 기반의 미들웨어 재작성 (2019.11 - 2020.03)

Description: 제1금융권 전북은행과의 연결을 담당하는 미들웨어 소프트웨어를 개편하는 프로젝트입니다. 낙후되어 있는 코드를 분석하고 재작성하는 업무를 수행하였습니다. 페어 프로그래밍 방식으로 업무를 진행하였습니다.

What I Did:

  • 무중단으로 업무 시간에 배포할 수 있도록 미들웨어 아키텍처 재설계
  • 유지보수가 불가한 레거시 코드를 분석하고 소스 코드 재작성 업무 진행

Keywords: Python, Django ORM, Celery, TCP 소켓 프로그래밍, select(2) syscall

투자자의 수익금 중 원천징수한 세금을 국세청에 신고하는 시스템 개발 (2019.11 - 2020.01)

Description: P2P 채권 투자자 정산 시 발생하는 수익금을 원천징수해야 하는데, 상용 ERP에서 감당할 수 없을 정도로 투자자 수가 증가하여 내재화하였습니다. 리드 개발자가 되어 주니어 개발자 한 명과 함께 협업하였습니다.

What I Did:

  • 데이터베이스를 설계하고 비즈니스 로직 설계 및 개발, 데이터 이관 및 검증
  • 400만 건의 원천징수 대용량 배치를 30분 만에 처리할 수 있도록 ORM Query 최적화 지원
  • 수동으로 처리하던 원천징수영수증 PDF 발급을 자동화하여 재무 팀 반복 작업 자동화

Keywords: Python, Django ORM, Celery, ReportLab, Wine, S3, ECS Fargate, MSA

개인신용 대출 신청 파트의 백엔드 대규모 리팩토링 및 무중단 배포 (2019.02 - 2019.07)

Description: 개인신용대출 신청 UX Flow를 전면 개편하였던 프로젝트입니다. 20분 이상 소요되는 텔레마케팅 프로세스를 비대면으로 전환하여 2분으로 줄였습니다. 오랫동안 유지 보수되지 않은 레거시 코드를 리팩토링하는 대신 코드를 재작성하였습니다. 백엔드 개발자 두 명 그리고 프론트엔드 개발자 한 명과 함께 협업하였습니다.

What I Did:

  • 개인신용대출 신청 파트의 방대한 레거시 시스템 로직 파악 및 재작성
  • 기존 Flow와 신규 Flow를 진행하는 고객을 동시에 대응할 수 있도록 설계, 서비스 중단 없이 배포
  • 테스트가 없던 시스템에 테스트를 도입하여 코드 커버리지 95% 달성
  • 제1금융권인 전북은행과 커뮤니케이션 및 전산 연동 작업 진행
  • Django REST Framework를 이용하여 Front-End와 통신하는 API 개발

Keywords: Python, Django REST Framework, 전문 통신, RSA, ReportLab

이커머스 채권매입업 서비스(얼리페이, 프리페이) 서버 파트 리드 개발 (2018.03 - 2018.12)

Description: 이커머스 판매자는 상품 판매 후 최대 3달 후에 정산받습니다. 채권을 매입하여 먼저 정산해주는 서비스인 얼리페이와 프리페이 서비스의 서버 개발을 맡았습니다. 프론트엔드 개발자 한 명과 협업하였습니다.

What I Did:

  • 프로젝트 초기 설정부터 시작해 서비스 출시까지 모든 백엔드와 인프라 구축 담당
  • 온라인몰 판매자 페이지의 스크래핑 및 자동 심사, 비정상 판매 탐지 시스템 구축
  • Django REST Framework를 이용하여 Front-End와 통신하는 API 개발

Keywords: Python, Django REST Framework, Django Admin, ECS, Jenkins CI/CD, Scraping(requests w/ beautifulsoup), ReportLab