# VPLapp
사내에서 사용할 작은 Admin page
SHOPIFY - VPL 통하여 제품을 판매할 수 있도록돕는 사내 App
자사몰들의 상품관리 및 주문 수령 Store 관리를 위한 것으로 Shopify를 이용하고 있다.
이러한 Shopify와 자사의 물류시스템의 일종인 VPL의 API를 이용하여 제품에 입고와 주문에 대한 출고 처리 등을 담당 및 관리할 수 있는 자사 app을 만드는 프로젝트를 진행하였다.
# 프로젝트 최소구현사항
발주를 넣을 수 있어야하고, 발주의 처리를 통한 가용재고를 체크하여 상품이 원할하게 판매될 수 있도록 해야만한다. 주문을 확인하고 주문이 잘 출고지시가 되었는지 출고여부에 대한 확인이 가능해야한다.
- 발주를 넣고 입고 예정정보를 창고 관리 시스템에 입력할 수 있다.
- 주문을 정보를 가져오고 출고지시를 내릴수 있어야한다
- 출고 완료시 배송 정보를 업데이트한다.
# 프로젝트 회고
# 새로 알게된 것
Server 개발시에 MSA 아키텍쳐에 대한 고민을 할 수 있었다.
MQ를 이용한 Event-Driven을 이용한 시스템을 어떻게 구현할 수 있는지 알 수 있었다.
Graphql을 사용하여 쿼리를 작성하고 서버를 구현할 수 있는 경험을 할 수 있었다.
MongoDB에 대하여 조금더 깊이 이해 할 수 있었다.
nestJS를 통한 서버구현을 할 수 있었는데, 좋은 경험이 되었다.
- TS를 통한 OOP를 가장 잘 구현할수 있는 구조로 이루어진 Server Framework로서 코드의 가독성을 높여준다.
- 위의 이유로 확장성 및 유지 관리를 용이하게 도와준다.
- Graphql, OPENAPI, MQ, KAFKA, QUQUE, 스케줄러 등등 다양한 모듈을 손쉽게 Import 할 수 있는 장점이 있다.
- 세팅의 충돌이 없도록 모듈관리에 대한 편의를 제공한다.
- Inject, Decorator를 통해 간단히 instance를 만들어 사용한다.
- php - laravel, Java - spring, node - nestJS처럼 대표적인 Server Framework가 될 것이라고 생각된다.
# 아쉬운 점
뭔가 전체적으로 아쉬움이 남는점이 많은 프로젝트였다. 어떤 프로젝트던간에 아쉬움이 있을수 밖에 없겠지만 Production으로 사용될 프로젝트라고 봤을때는 특히 부족한 점이 많아 보였다.
- 테스트 코드의 부제
프로젝트를 시작하면서 꼭 테스트 코드는 짜면서 진행하겠다 마음 먹었지만, 여전히 배움이 많이 필요하다고 느끼고, 우선은 코드 작성에 집중하였지만 여전히 테스트 코드에 대한 갈증이 남아있다.
- 코드 컨벤션에 대한 혼재
다른 API들을 묶어서 사용하는 곳에서 할당 받은 변수를 컨벤션에 맞춰서 DB를 구성하였어야 하지만 그렇게 하지 못한것이 안타까움
- redis 미적용
Redis 시스템이 반드시 서버의 커버리지를 높이기 위해 필요하였지만 미적용상태로 마무리하였다. 추가적으로 구성한다면 그렇게 어렵지 않게 가능한 부분이겠지만, 프로젝트 빌드업 단계에 해두지 않은 것은 다소 아쉬운 부분이다.
- 정식 프로덕션으로 사용하지 않음
사용자로 예정되어 있던 NY팀에서 타 서비스로 해당 하는 기능을 대체할 예정으로 사용자가 없어져서 프로젝트가 프로덕션으로 배포예정이 없다.
# 이후 스터디가 필요한 내역
- redis
- 테스트 코드
- mock Server 구성
- mongodb Deloy
- server system에 대한 이해
← Last Project 회고록 JSX →