홈쇼핑 예약 서비스를 메인으로 담당하여 ERD 작성부터 개발까지 담당하였습니다.
UI 화면과 어떤 API들로 구현하여야 서버의 부담은 줄이면서 확장성있는 코드를 만들 수 있는지 고민하고 개발하였습니다.
👨💻 Role
- 홈쇼핑 상품 예약 비즈니스 서비스 모델링
- Python REST API, Service 구현
- 예약 생성 및 취소는 핵심 ERP 서버인 Python API를 통해 처리
- 홈쇼핑 구매자 엑셀 업로드/다운로드 및 관리
- 문자, SMS 발송 및 홈쇼핑 구매자 인증 토큰 관리
- 예약 생성 및 재고 차감 API 구현
- Kotlin REST API, Test Code 구현
- 홈쇼핑 상품 날짜별 최저가 실시간 조회
- 행사상품 상세 정보 조회
- 예약 생성 및 예약 상세 조회
📗 Stack
- Python
- Kotlin
- React
- MariaDB
- AWS Lambda
- AWS EC2
👷🏻 개발 상세
- Business Service Flow
- ERP 홈쇼핑, 상품 등록 및 관리 → 홈쇼핑 구매자 리스트 엑셀 업로드 → 홈쇼핑 구매자 문자, 카카오톡 발송
→ ERP 상품 재고 관리 기반 예약 화면 구현 → 예약 접수
- ERP 홈쇼핑, 상품 등록 및 관리
- 홈쇼핑 구매자 리스트 엑셀 업로드
- django-import-export 사용
- 판매측에서 보내주는 홈쇼핑 구매자 엑셀을 통해 구매자 데이터 입력
- 유효성 검사, 중복 검사 후 처리
- 홈쇼핑 구매자 문자, 카카오톡 발송
- 예약 사이트 URL을 문자/카카오로 발송
(카카오 템플릿 관리가 안 된 고객사는 문자로 자동 발송)
- 예약 접수 및 조회
- 한달 치 호텔 옵션 및 재고를 조회하여 한달치 옵션별 최저가를 Json에 담아 재고 조회 쿼리 최소화
- 예약 가능 시간을 설정한 경우 해당 시간 이후부터 예약 허용 (Mysql)
- nGrinder를 통한 Traffic test 진행
- Django transaction을 통한 재고 처리, 결제 관리, 예약 생성 로직의 서비스 안정성 향상
- Spock을 통한 Test code관리
- 이전에 진행했던 프로젝트에서는 빠르게 서비스를 만들어 고객사에게 제공해야 하는 회사 특성상 이전에 생긴 레거시 코드들이 계속 방치됐었음.
그리고 방치되는 레거시 코드들로 인해 객체 지향과도 거리가 멀어지고 코드관리가 전혀되지 않아 예상했던 개발 일정보다 지연되는 일도 간간히 발생하였음.
이번 홈쇼핑 상품 예약 프로젝트에선 처음부터 Test code 기반을 잡고 Test code를 기반으로 하여 자연스래 객체 지향적으로 올바른 Clean code를 유지하고자 함.
- 특히 이번 Kotlin API 서버가 홈쇼핑 상품 예약 시스템 뿐만이 아닌 고객사 website에서도 사용할 API 서버였기 때문에 다른 개발자들이 구현된 API에 대한 정리된 자료가 있으면 매번 코드를 분석할 필요 없이 개발하여 단축시킬 수 있을 것이라 판단하여 Spock을 통해 request 변수, return 변수가 정리된 md 파일로 생성되게 구현.
- BDD가 익숙하지 않았던 개발 초기엔 Postman을 통한 개발이 빨랐지만 개인적으로 Nextstep를 통해 TDD, Clean code를 통해 공부하면서 BDD에 익숙해져갔고 API를 호출해야하는 웹사이트 담당 개발자분들도 정리된 파일을 통해 쉽게 호출하여 개발이 빨라질 수 있었음