마이온커리어 MYOWN Career
업무 내용 개괄
- 레거시 코드베이스 통합, 리팩토링
(2인 협력 업무)
- 레거시 코드베이스가 Python(Django)과 JS(Node.js + Koa)로 나뉘어져 있었음
- 서비스 초기에 개발되었던 Django 서버는 사용자 등록/인증 기능에만 사용되고 있었음
- 기타 서비스의 핵심 기능은 Node.js 서버가 수행하고 있었음
- 차후의 서비스 유지보수와 코드베이스 관리를 위해 사용자 등록/인증 기능을 Node.js로 포팅하고 리팩토링을 진행함
- 기존 Django(python) 코드베이스의 인증 로직 코드 분석
(인증 로직 포팅은 외부 개발 자문이 진행함)
- 포팅된 인증로직을 기존 Node.js 코드베이스에 Auth Service로 통합하여 리팩토링을 진행했음
- 레거시 Node.js 코드베이스에 반복되는 ORM 관련 코드들이 다수 존재하여 반복되는 ORM 함수들을 JS Object 형태로 통합하여 재사용하는 형태로 리팩토링하였음
(해당 내용은 외부 개발 자문의 피드백을 받고 진행했음)
- ORM 함수를 통해서 구현할 경우, Readability가 저하되는 경우가 있어, Query 최적화가 적용된 Raw Query로 대체함
- 레거시 Node.js 코드베이스가 MSA 구조로 이루어져 있어 Gateway Service가 엔드포인트 라우팅을 해주고 있었으나, 새롭게 추가된 Auth Service와 통합에 어려움을 겪었음. 새롭게 개발하기에는 기한이 촉박하여, 기존의 Gateway Service를 폐기하고 동일 기능을 AWS EC2 Load Balancer 설정 추가로 대체하였음
- 할인 쿠폰 시스템 개발
- 기존 기획안에는 존재했으나, 미구현 상태였던 할인 쿠폰 관련 API를 개발함
- 서비스에 쿠폰 인증 페이지를 추가함
- 내부 어드민 대시보드 개발
- 내부 어드민이 존재하지 않아, 운영진이 고객 서비스를 진행하는 데에 어려움이 존재했음
- 운영진의 요청에 따라 다음과 같은 기능을 포함한 어드민 대시보드를 개발함
- 회원 관리 및 검색
- 쿠폰 발행
- 쿠폰 관리 및 검색
- 회원 정보 초기화
- B2B 고객을 위한 회원 일괄 등록 시스템 (MS 엑셀 파일 업로드 방식)
파일 업로드와 파싱 파트는 외부 개발 자문이 개발함
- 파싱된 데이터를 SQL Raw Query를 통해 고객 DB에 등록
기술 스택
Langs
Back-end
- Django(Python) - legacy
- Node
- Koa
- Sequelize (Maria DB)
Front-end
DevOps