채용공고 올리기

신윤수님을 응원해보세요!

INFCON 참여
이직/구직 중이에요
성실함
책임감
협업 지향
커뮤니케이션
적응력

미리보기

기본 정보

이름
신윤수
직업
Node.js 백엔드 개발자
이메일
chss3339@gmail.com
간단 소개

- 기여할 수 있는 일이 많은 환경을 좋아합니다. - 다른 동료들의 부족함을 채워 팀의 완성도를 높입니다. - 코드 리뷰를 통해 다른 사람이 작성한 코드여도 제가 작성한 코드인것처럼 이해하며 익숙해지려고 노력합니다. - 이해가 안되는 부분이 있을때 답을 못찾을수는 있어도, 답을 추론할 수 있는 근거는 찾아냅니다. - 제가 없어도 문제가 발생하지 않는것을 목표로 하며 문서화를 진행합니다. - 코드를 작성하지 않은 개발자가 봤을때도 한 눈에 알아 볼 수 있는 코드를 작성하려고 노력합니다. - Strong Opinions, Weakly Held 방식으로 대화하도록 노력합니다. - 좋은 제품을 만들기 위해 노력하며 기획자를 포함한 타부서 인원과 협업하는것을 즐깁니다. - 새로운 기술을 배우는데 거부감이 없습니다.

기술 스택

기술 스택

NestJS, Node.js, MongoDB, MySQL, TypeScript, rabbitmq, Redis, TypeORM, Mongoose, github-actions, aws-ec2, aws-s3, Lambda

경력

회사명

젠테

직급 | 부서 | 근무 유형

사원 | 개발팀 | 재직 중

근무 기간

2022.10. ~ 재직 중 (2년 9개월)

담당 업무
  • 젠테의 자체 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.)

    • 공통 플랫폼을 사용하는 부티크 API에 대해 공통 코드를 작성하여 재사용

      • 추상 메소드를 사용하여 필수 메소드 개발 용이

  • 외부채널 연동 서버 개발 (스마트스토어, Poizon, Shopify)

    • 기술스택: NestJS, MongoDB, Mongoose, CQRS, Redis, RabbitMQ, Docker, K8s, Airflow, RxJS

    • 스마트스토어 application 계정별로 rate limit이 달라 scale out이 제한적 → k8s deployments를 사용하다가 statefulset으로 변경하여 scale out시 rate limit이 여유로운 application 계정을 사용하도록 개발

    • hexagonal architecture를 사용하여 각 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 등 참고하여 호환성 맞는 버전 찾아 진행

  • Shopify 스토어를 GraphQL API를 사용하여 젠테 포레와 연동 - 도메인 관련

    • Shopify 주문 데이터와 젠테의 주문 데이터 구조가 달라 젠테 포레에서 사용할 수 있는 Unique key가 없는 문제 발생 → 중간 테이블을 생성하여 직접 정의한 규칙으로 Unique Key를 생성하여 젠테 포레에 업데이트

  • legacy 부티크 상품 연동 어플리케이션 리팩토링

    • RxJS 기반 NestJS 어플리케이션으로 리팩토링

    • 모든 코드를 RxJS로 처리하여 Reactive Programming 장점 극대화 → 비동기 처리 용이, 메모리 누수 방지, 상품 단위로 데이터 처리 용이

      • 모든 연동 관련 코드의 반환타입이 Observable

  • 개발팀 내 다양한 주제로 세션 진행

    • Node.js 오픈소스 기여

    • Cursor와 MCP 사용

포트폴리오

URL

link

https://cooing-narwhal-b0f.notion.site/1c87da7da81380a68334c29da92830d8

노션

교육

소속/기관명

엘리스

종류 | 전공

사설 교육 | SW트랙 2기

재학 기간 | 재학 상태

2022.04. ~ 2022.07. | 졸업

소속/기관명

아주대학교

종류 | 전공

대학교(학사) | 응용화학생명공학과

재학 기간 | 재학 상태

2015.03. ~ 2020.08. | 졸업

대외활동

활동명

엘리스 코더랜드 온라인 질의응답 코치

소속/기관명

엘리스

연도

2022

내용

2022년 8월 한달동안 엘리스 코더랜드 온라인 질의응답 코치를 맡았습니다. 엘리스는 부트캠프 외에 많은 기업에서 임직원 교육 목적으로 코딩 교육을 진행하는데, 엘리스를 사용하는 모든 사용자들이 질문한 내용을 보고 답변 해주었습니다. 한달이라는 짧은 시간동안 진행한 것이였지만, 코딩 입문자 입장에서는 변수가 어떤 파라미터로 들어가고, 어떤 인자로 되어 어떻게 작동하는지 자세하게 알려줘야 이해하기 쉽다는 것을 깨달았습니다.

활동명

엘리스스쿨 코더랜드 보조강사

소속/기관명

엘리스

연도

2022

내용

단기 이벤트성 교육이기때문에 3번 진행

초등학교 저학년을 대상으로 한 블록코딩 교육 보조강사로 활동했습니다.
링비트카, 앱인벤터로 교육을 진행했으며, 중고등학생때 스크래치를 배운 경험이 있어 아이들이 흥미를 잃지 않도록 지도했습니다.

자격증

자격증명

SQLD

점수 | 발급기관

합격 | 한국데이터산업진흥원

취득연월

2022.06.

자기소개

자기소개
  • 기여할 수 있는 일이 많은 환경을 좋아합니다.

  • 다른 동료들의 부족함을 채워 팀의 완성도를 높입니다.

  • 다양한 관점에서 바라보고, 각 관점마다 근거를 가지고 최선의 결과를 도출하려고 노력합니다.

  • Slack, Notion 등의 커뮤니케이션 툴에 익숙합니다.

  • 코드 리뷰를 통해 다른 사람이 작성한 코드여도 제가 작성한 코드인것처럼 이해하며 익숙해지려고 노력합니다.

  • 좋은 제품을 만들기 위해 노력하며 기획자를 포함한 타부서 인원과 협업하는것을 즐깁니다.

  • 제가 없어도 문제가 발생하지 않는것을 목표로 하며 문서화를 진행합니다.

  • TypeScript, NestJS 환경에 익숙합니다.

  • NestJS로 OOP에, RxJS로 FP에 익숙해졌습니다.

  • 개인적으로 AI에 관심이 많으며, 이것을 도입할 수 있는 환경을 원합니다.

댓글