# VPLapp

사내에서 사용할 작은 Admin page

SHOPIFY - VPL 통하여 제품을 판매할 수 있도록돕는 사내 App

자사몰들의 상품관리 및 주문 수령 Store 관리를 위한 것으로 Shopify를 이용하고 있다.

이러한 Shopify와 자사의 물류시스템의 일종인 VPL의 API를 이용하여 제품에 입고와 주문에 대한 출고 처리 등을 담당 및 관리할 수 있는 자사 app을 만드는 프로젝트를 진행하였다.

# 프로젝트 최소구현사항

발주를 넣을 수 있어야하고, 발주의 처리를 통한 가용재고를 체크하여 상품이 원할하게 판매될 수 있도록 해야만한다. 주문을 확인하고 주문이 잘 출고지시가 되었는지 출고여부에 대한 확인이 가능해야한다.

  • 발주를 넣고 입고 예정정보를 창고 관리 시스템에 입력할 수 있다.
  • 주문을 정보를 가져오고 출고지시를 내릴수 있어야한다
  • 출고 완료시 배송 정보를 업데이트한다.

# 프로젝트 회고

# 새로 알게된 것

  1. Server 개발시에 MSA 아키텍쳐에 대한 고민을 할 수 있었다.

  2. MQ를 이용한 Event-Driven을 이용한 시스템을 어떻게 구현할 수 있는지 알 수 있었다.

  3. Graphql을 사용하여 쿼리를 작성하고 서버를 구현할 수 있는 경험을 할 수 있었다.

  4. MongoDB에 대하여 조금더 깊이 이해 할 수 있었다.

  5. 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에 대한 이해
© Devlog from jeong