미리보기
기본 정보

- Node.js 백엔드 개발자입니다. - 다른 언어와 기술을 배우는데 거부감이 없습니다. - 집요하게 파고드는것을 좋아하고, 더 나아가 팀원들이 볼 수 있도록 문서화하는것을 즐깁니다. - 이해가 안되는 부분이 있을때 답을 못찾을수는 있어도, 답을 추론할 수 있는 근거는 찾아냅니다. - 낮은 결합도와 높은 응집도를 나타내는 코드를 작성하려고 노력합니다. - 코드를 작성하지 않은 개발자가 봤을때도 한 눈에 알아 볼 수 있는 코드를 작성하려고 노력합니다.
기술 스택
NestJS, Node.js, MongoDB, MySQL, TypeScript, rabbitmq, Redis, TypeORM, Mongoose, github-actions, aws-ec2, aws-s3, Lambda
경력
젠테
사원 | 개발팀 | 재직 중
2022.10. ~ 재직 중 (2년 5개월)
젠테의 자체 ERP (Jente Foret) 신규 기능 개발 및 유지보수
Blocking되는 작업들은 RabbitMQ사용하여 비동기로 실행되도록 처리
스마트스토어와 같은 외부 채널 API 사용할때 상품 업데이트 경우 한 작업단위당 수만번 이상의 요청을 보내야해서 페이지 blocking → non blocking으로 실행되도록 설계
외부 채널 주문을 ERP에 동기화하는 작업은 단순히 외부 api 사용하여 DB에 저장하는것이므로, k8s ingress를 설정하지 않아도 가능하게 할 목적으로 cli 이용하여 Airflow로 실행되도록 개발
MongoDB에서 많은 양의 데이터를 cursor로 조회하여 stream 처리 → 부하 감소
엑셀 다운로드시 수십만개 이상의 데이터를 담아야하는데 이때 DB에서 한 번에 조회시 서버 메모리 사용량 급증 → chunk단위로 조회하여 stream으로 가공하고 엑셀 파일 생성하도록 수정
session, redis 이용하여 admin이 user 정보 변경시 모든 기기에서 로그아웃, 특정 아이디로 대신 로그인
express-session 라이브러리 사용 → 세션이 생성될때 readonly 처리되어 수정이 불가능하고, key가 랜덤값으로 생성되어 특정 user에 대한 세션 정보가 어떤것인지 알 수 없어 redis에 별도로 유저 정보와 세션키값을 저장하여 접속 제어
100여개 이상의 부티크 API 연동 개발 및 유지보수
부티크와 지속적으로 트러블 이슈 관련 협업 진행
다양한 포맷을 가진 데이터를 자사 포맷에 맞게 가공 (shopify, cloudstore, atelier, etc.)
외부채널 연동 서버 개발 (스마트스토어, 포이즌)
기술스택: NestJS, MongoDB, Mongoose, CQRS, Redis, RabbitMQ, Docker, K8s, Airflow, RxJS
스마트스토어 application 계정별로 rate limit이 달라 scale out이 제한적 → k8s deployments를 사용하다가 statefulset으로 변경하여 scale out시 rate limit이 여유로운 application 계정을 사용하도록 개발
cqrs 패턴을 사용하여 각 layer가 의존성을 갖지 않도록 설계
typescript interface로 class 추상화
도메인 객체 적용
데이터를 캡슐화하여 의도하지않은 데이터 수정 방지
비즈니스로직을 도메인의 행동으로 정의
인증 모듈 생성하여 API 인증 코드를 중복해서 작성하지 않아도 되도록 개발
부티크 파트너가 사용하는 B2B ERP 신규 기능 개발 및 유지보수
Express.js, NestJS, Mongoose, TypeORM, CQRS, 3-tier architecture, Docker, K8s
Client Vue.js 개발
Node.js 및 NPM 패키지 버전 업그레이드, 통일
Node.js 12, 16, 18 → 20 업그레이드
ChangeLog, Release, peerDependencies 등 참고하여 호환성 맞는 버전 찾아 진행
포트폴리오
교육
엘리스
사설 교육 | SW트랙 2기
2022.04. ~ 2022.07. | 졸업
아주대학교
대학교(학사) | 응용화학생명공학과
2015.03. ~ 2020.08. | 졸업
대외활동
엘리스 코더랜드 온라인 질의응답 코치
엘리스
2022년 8월 한달동안 엘리스 코더랜드 온라인 질의응답 코치를 맡았습니다. 엘리스는 부트캠프 외에 많은 기업에서 임직원 교육 목적으로 코딩 교육을 진행하는데, 엘리스를 사용하는 모든 사용자들이 질문한 내용을 보고 답변 해주었습니다. 한달이라는 짧은 시간동안 진행한 것이였지만, 코딩 입문자 입장에서는 변수가 어떤 파라미터로 들어가고, 어떤 인자로 되어 어떻게 작동하는지 자세하게 알려줘야 이해하기 쉽다는 것을 깨달았습니다.
엘리스스쿨 코더랜드 보조강사
엘리스
단기 이벤트성 교육이기때문에 3번 진행
초등학교 저학년을 대상으로 한 블록코딩 교육 보조강사로 활동했습니다.
링비트카, 앱인벤터로 교육을 진행했으며, 중고등학생때 스크래치를 배운 경험이 있어 아이들이 흥미를 잃지 않도록 지도했습니다.
자격증
SQLD
합격 | 한국데이터산업진흥원
2022.06.