About Me
Introduction
안녕하세요. 3년차 NodeJS 개발자 허윤입니다.
Adriel 에서 Backend Team 에서 근무하고 있습니다.
평소에 아티클 혹은 새로운 기능이나 아이디어를 생각하고, 점심시간 혹은 쉬는 시간에 여러 방향에 대해서 대화를 나누는것을 좋아합니다.
이렇게 제시한 사항이 서비스에 반영이 될 때 큰 기쁨을 느낍니다.
기분나빠지는 대화 및 화법을 굉장히 지양합니다. 아무리 같은말이라도 ㅏ
다르고 ㅓ
다르기 때문에, 건전한 커뮤니케이션을 지향합니다.
한번 일을 하더라도 한번 더 나아가 제안 및 제시까지 하려고 노력합니다.
Contact & Channel
Skills
Backend
- Node.js
- Typescript
- Nest.js
- ORM
- Prisma
- Objectionjs+Knex
- TypeORM
- BullMQ
- PHP
- CodeIgniter
- GnuBoard5 / 영카트
- Database
DevOps
- AWS(EC2, Lightsail, RDS)
- Letsencrypt(Certbot)
- Cloud Flare
- Elastic Search(apm)
Work Exprerience & Projects
2021.08 ~ 재직중
Adriel
백엔드 개발(영어)
기술스택: NodeJS, Typescript, Redis, BullMQ, Knex+Objection, Postgres, Elastic Search, AWS
- 레거시 코드 중 오래걸리는 코드를 분석하여, 해당 데이터의 중요도 및 즉각적인 필요성을 판단 하였고, 서비스 속도를 저하시키는 코드를 별도의 Background Job으로 분리하여 CPU, Memory, 작업시간을 최적화 - Architecture + Creative Insight
- 5시간 걸리던 작업을 분석을 통해 불필요한 중복작업을 삭제하고, 사용 라이브러리를 분석 및 함수 재배치를 통해 5분이내의 작업으로 최적화 - Creative Insight
- 매일같이 100만개가 넘는 Background Job이 프로세스되지 못하고 계속 축적이 되는 현상을 APM과 Bull-Dashboard를 통해 확인. “Too many request” 가 지속적으로 발생하는것을 확인하고, 현재코드와 API Docs를 비교 및 분석하여 코드를 재구성하여 Rate Limit 이슈를 완벽히 해결 하였고, 현재는 정체되어있는 Job이 없음. - Naver Search Ads
- API 쓰로틀링 이슈를 프록시 서버 구축을 통해 우회하여 서비스 속도 향상 - Naver Search Ads
- NCloud 에서 AWS로 서비스 이전
- Elastic Search의 Transaction을 활용해 Background job의 로그 및 실패기록을 확인하고 디버깅에 큰 도움이 됨
- API의 Rate Limit을 고려하여 내부 시스템을 구축해야함. 이를 위해 Group기능 그리고 Priority, Concurrency 가 필요하였고, BullMQ PRO에 비슷한 기능이 있음을 발견. 테스트를 통해 개선사항 및 구체적인 방향성을 제시하였고, 추후 업데이트를 통해 적용될 예정.
- 사내 Payment 시스템 개선 - NicePay, Stripe
- Legacy 코드 개선 및 Typescript 전환작업
- 100% Test Code Coverage
- 문제 발생시 Slack 으로 알림
- Circular Dependency 문제 해결을 위해 모놀리틱에서 꼬여있던 파일 구조 및 플로우를 정리 하여 제안하였고, 모든 개발자의 동의를 얻어 점진적인 적용을 하기로 예정.
2020.03 ~ 2021.07
RS-TEAM
일부 프론트, 백엔드 개발(팀장)
기술 스택: NodeJS, Typescript, NestJS, Prisma, PHP, MYSQL, jQuery, Bootstrap, AWS(Lightsail, RDS)
단순 PHP에서 시작해 CodeIgniter라는 프레임워크를 적용, 그누보드의 CMS경험을 활용해 CodeIgniter를 활용해 제작된 CIBoard를 자사 서비스에 도입함으로 서 코드 퀄리티 및 작업속도를 향상시킴.
이후 NodeJS를 도입하게 되었으며, nodejs의 프레임워크 그리고 javascript와 php에서 가장 불편했던 type 지정의 부재를 해결하기 위해 typescript + NestJS를 도입.
CMS경험을 통해 작업속도 및 퀄리티를 향상시키려면 CMS의 필요성을 이미 알고있기에 자사 CMS를 제작을 주도.
RS-TEAM 작업 목록
JWEntertainment
2020.03 ~ 2020.05
- 노래방 기계의 라이센스 판매하는 사이트, B2B 모델의 비공개사이트
- PHP + CodeIgniter 와 Bootstrap 템플릿을 활용하여 구현
- AWS Lightsail 활용
- csv를 업로드시 Database 에 칼럼에 맞추어 비동기로 등록되는 기능 구현.
Cindymap
2020.05 ~ 2020.08
https://app.cindymap.com
- 마사지 예약 중계 사이트, 이벤트 + 포인트샵까지
- PHP + CodeIgniter를 활용하여 제작
- AWS Lightsail / RDS 활용
- 중간에 합류하여 xss공격 보안 문제를 확인 및 보완조치
- CodeIgniter 의 Log 가능을 활용하여 전반적으로 디버깅에 용이하도록 제작
- Query 튜닝작업을 통해 10만개 이상 데이터를 보유한 테이블들을 Join 하여 1분이상 걸리던 수많은 Query를 1~5초내로 단축
- 50만명의 테스트유저에게 푸시요청을 하면 서버가 뻗는 현상이 있었음. 1000명씩 끊어 분할 전송시키는 로직을 제작하여 해결
- SlogLog를 활용하여 느린 쿼리 파악 및 조치