About Me
Introduction
•
안녕하세요! 7년 차 백엔드 개발자 이영훈입니다.
•
어제보다 더 성장한 오늘의 저를 발견하는 즐거움을 알기에 성장을 위해 꾸준히 노력하고 있습니다.
•
최근에는 성장의 기쁨을 함께 나누고 싶어 기술 블로그를 운영하고 있습니다. 일주일에 1개 정도의 글을 올리려고 노력하고 있습니다.
•
회사와 팀의 성장에 기여하는 것을 중요하게 생각합니다.
•
하루를 마무리 하면서 따뜻한 허브차를 마시며 다이어리
를 작성하는 것을 좋아합니다. 식물
키우는 것을 좋아합니다.
Contacts & Blog
•
Email | nobel6018@gmail.com
•
•
•
Skills
Backend
•
Java, Kotlin, Python, TypeScript, ES6
•
Spring Boot, Spring MVC, Spring Data JPA
•
MySQL, PostgreSQL, AuroraDB, Kafka, Redis, DynamoDB
•
Exposed, JPA, Querydsl
•
Junit5, Kotest, Mockk, Mockito
•
Gradle (Kotlin DSL, groovy DSL)
•
NestJS
•
TypeORM
•
Jest
DevOps
•
AWS EC2, Elastic Beanstalk, S3, RDS(Aurora, mysql, postgres), DynamoDB, CloudFront, Route53
•
EKS(Kubernetes), ECR, ECS, CodeBuild, CodeDeploy, CodePipeline, SQS, SES, WAF, Athena
•
Kubernetes, Docker, Helm, Prometheus, Grafana, Loki
•
Jenkins, Github Action, Bitbucket Pipelines
•
Nginx
Frontend
•
React, React Native
•
TypeScript, ES6, yarn, npm
•
Redux(React-redux), Styled Components, React Query
Collaboration & Tool
•
Slack, Notion
•
Figma
•
IntelliJ, WebStorm, PyCharm, DataGrip
•
Git, GitKraken
Work Experience & Projects
카카오뱅크 - 백엔드 개발
2024.11 ~ (성장중)
•
담보여신개발팀에서 여신 서비스의 개발 및 운영 업무를 수행하고 있습니다.
•
챗봇 시나리오 개발 업무를 담당하고 있습니다.
•
서버의 기존 모놀리식(monolithic) 아키텍처를 마이크로서비스 아키텍처(MSA)로 전환하는 업무를 했습니다.
•
카카오뱅크 기술 블로그에 Reviewer로 기여했습니다.
◦
▪
Exposed(Kotlin ORM)에서 발생한 Escape 문자열 처리 오류를 해결한 과정을 다루고 있습니다.
◦
기술적인 내용을 보다 쉽게 이해할 수 있도록 다듬었고, 글쓴이와 테크니컬 라이터와의 원활한 소통을 통해 글의 완성도를 높이는 Reviewer 역할을 수행했습니다.
•
Kotlin, Java, Spring Boot, Mockk, Kotest, RDBMS(Mysql), Redis
플로틱 - 백엔드 개발
2022.01 ~ 2024.10 (IT개발팀 리더)
•
•
기획자, 개발자, 디자이너로 조직된 12명의 팀을 리딩하였습니다
•
첫 개발자로 입사해서 첫 시스템 구축부터 MSA 시스템의 아키텍처 설계 및 기술스택과 더불어 개발 문화 확립 업무를 했습니다.
•
Kotlin, Spring boot, Junit5, Mockk, Kotest, RDBMS(Mysql), JPA, Querydsl
•
Kubernetes, Helm, Prometheus + Grafana + Loki
•
Agile하게 일하고, 2주 단위의 스프린트와 매일 데일리 스크럼을 진행하고 있습니다.
•
테스트 커버리지는 80% 이상을 유지하고 있습니다.
•
로봇 IoT와 통합하기 위해 Kafka를 사용했습니다.
◦
불안정한 네트워크 환경에서도 IoT와의 통신을 위해 카프카를 사용했습니다.
◦
AWS IoT Core를 사용했으나 On-Premise 환경을 고려하여 카프카로 이관하였습니다.
(히스토리) 로봇 IoT와 통합하기 위해 AWS IoT Core를 사용했었습니다.
•
Kotlin 기반의 Spring Boot를 사용한 API 서버 개발을 통해 외부 시스템과 통합하였습니다. 자체 개발한 알고리즘을 통해 최적화된 명령을 로봇 IoT에 내리는 서버를 개발하였습니다.
•
컨테이너 기반의 어플리케이션을 관리하고 있으며, 빠른 배포와 확장을 위해 Kubernetes로 컨테이너를 관리하고 있습니다.
내용이 많아서 가독성을 위해서 Toggle로 작성했습니다.
펼쳐서 내용을 확인해주세요. 
물류센터 내 로봇 운영 프로세스를 유연하게 대응하기 위해 MSA 아키텍처를 도입했습니다.
MSA 아키텍처로 전환하기 - 필요성과 도메인 분리 기준, 성취 효과
MSA 아키텍처에서 기술적 고려사항
추가 기술적 고려사항
물류센터의 망분리 환경을 대응하기
글림미디어 - StarPlay 백엔드 개발
2021.10 ~ 2022.01
•
•
트래픽의 80% 이상이 해외 (동남아시아, 북미, 오스트레일리아 등)에서 발생하고 있습니다
•
NestJS, TypeScript, TypeORM, Open API 3 (swagger), JWT, Jest (테스트코드), Passport (Google, Kakao, Apple Local Strategy 구현)
•
AWS ECR, ECS(ARM64 architecture), RDS(Aurora DB), S3, CloudFront, CodeBuild, CodePipeline, SQS, SES, Lambda, WAF, Athena
•
레거시 PHP 코드를 NestJS로 변경하였습니다. JWT로 회원 인증을 구현하였고 Google, Kakao, Apple 로그인을 구현하였습니다. 모든 코드에 대해 테스트코드를 작성하여 커버리지 80% 유지하였습니다
•
AWS SQS + Lambda를 사용하여 이벤트 발생시 (회원가입, 결제 등) 이메일을 보내는 로직을 구현하였습니다
•
AWS Cloudwatch event + AWS Lambda를 이용하여 정기적인 작업 (정기 구독 유저에게 포인트 지급 등)을 구현하였습니다.
•
정기적으로 대용량 트래픽이 발생할 때 서버 관제를 통해 안정적으로 서버를 운영하였습니다. AWS Cloudwatch로 관제하였습니다.
◦
2021년 12월: 동접자 1만 2천명, 5분간 최대 요청수: 126k
보이스루 - VWS 백엔드 개발
2020.09 ~ 2020.12
•
AI 기반 영상 편집 서비스 VWS 백엔드 개발 (JTBC, National Geographic 방송사가 초기 유저로 사용)
•
Kotlin, Spring Boot, JPA, QueryDSL, Junit5, Kubernetes
•
AWS DynamoDB (글로벌 서비스를 고려했고 빠른 응답속도를 보장하기 위해 사용하였습니다)
•
JWT, Spring Security, Open API 3 (swagger)
•
백엔드 개발/운영/배포 전 과정을 혼자 맡아서 진행하였습니다
보이스루 - Kubernetes 도입
2020.04 ~ 2020.09
•
Worker와 서버가 많아져 Kubernetes 도입을 결정
•
Kubernetes 도입을 위해 개발팀 전사적으로 학습과 스터디 진행
◦
책 "Kubernets In Action", k8s 공식 문서 스터디
•
AWS EKS, ECR, EC2, S3, CodeBuild를 사용하여 Kubernetes 시스템 구축
•
기존 Server, Worker를 Kubernetes로 마이그레이션 작업
보이스루 - JAMAKE 백엔드 개발
2020.01 ~ 2020.09
•
•
Kotlin, Spring Boot, JPA, Querydsl, Junit4, AWS Elastic Beanstalk, SQS, S3, Lambda, Kubernetes
•
JWT, Spring Security, Open API 3 (swagger)
•
백엔드 개발/운영/배포 전 과정을 혼자 맡아서 메이저 업데이트를 두 번 진행하였습니다
◦
프리미엄 자막 제작 서비스 'JAMAKE BLACK' 오픈
◦
성장 가능성이 높은 영상 추천 기능 연동 개발
◦
Youtube API 쿼터 최적화
•
유튜브 영상 다운로드 프로세스를 개발하였습니다
◦
AWS SQS, EC2(Spot Instance), youtube-dl을 이용
보이스루 - ETL 작업
2019.11 ~ 2020.01
•
AI 학습에 필요한 자막 데이터를 AI 학습 전용 데이터베이스에 추출, 가공, 적재하였습니다
•
Airflow 도입하여 워크플로우를 관리하였습니다
•
Docker, AWS EC2, ECR, RDS(postgreSQL)
뮤팟 - 뮤팟 서비스 개발
2018.04 ~ 2019.11
•
•
Ruby on Rails, HTML, CSS(SASS), JavaScript(ES6), jQuery
•
Python Librosa, Keras(Tensorflow), CNN, DSP
•
서비스 매출 증가(200% 이상)를 위한 서비스 개발 경험하였습니다
◦
AI를 이용하여 유튜브 배경음악으로 적합한 음원 추천 기능 개발
◦
원하는 음악 특성을 멀티 셀렉트 가능한 태그 기능 개발
◦
유튜브 영상을 보면서 추천 배경음악을 실시간으로 들어보는 'Pick' 기능 개발
Open Source Contribution
Telegraf (kafka input plugin)
•
Telegraf는 다양한 데이터 소스를 수집하고 이를 InfluxDB 데이터베이스로 전송하는 역할을 하는 오픈소스입니다
•
Kafka 메시지를 입력값으로 사용하는 공식 플러그인에 버그가 있어서 수정하여 기여하였습니다
•
PR 링크:
14679

Inflearn Enhancer (크롬 확장프로그램)
•
인프런의 미디어 플레이어를 유튜브처럼 만들어주는 크롬 확장프로그램을 개발하여 크롬 웹 스토어에 배포하였습니다
•
인프런 미디어 플레이어에 단축키로 일시정지/재개, 10초 앞/뒤로 이동, 배속 시 유튜브와 동일하게 알려주는 기능을 개발하였습니다
•
Github 링크:
inflearn-enhancer

NestJS 공식문서 (KR)
•
NestJS의 한글 공식 문서입니다
•
NestJS 공식문서가 잘못 기술된 부분을 수정하여 더 좋은 문서가 될 수 있게 기여하였습니다
•
현재까지 총 4번의 Pull Request가 merged 되었습니다
React Kakao Login
•
React로 카카오 로그인 구현할 수 있는 라이브러리입니다
•
React(TypeScript)로 구현하다가 타입 오류를 발견하여 기여하였습니다
React Kakao Map SDK
Education & Awards
한양대학교 벤처창업경진대회 혁신상
•
한양대학교 벤처창업경진대회 혁신상 (최우수 총장상)
•
2019년 10월 수상
•
인공지능 기반 TTS (Text To Speech) 서비스에서 서버 개발을 담당하였습니다
•
한양대학교 정보시스템학과 & 자원환경공학과
•
2014.03 ~ 2021.08
•
정보시스템학과, 자원환경공학과
•
졸업학점 : 4.02 / 4.5
•
한양학업 최우수상(상위1%) 2회 수상 (2020년 2학기, 2021년 1학기)