[코딩공부] 30일차(4/7)

성철민·2023년 4월 7일
0

배움

목록 보기
31/42

내일배움캠프

Django 개인 프로젝트 - 무신사 재고관리 시스템 만들기

무신사 재고관리 시스템 완성

프로젝트 3일차


장고를 이용한 첫번째 프로젝트를 완성했다
로그인 화면은 위와 같이 부트스트랩을 이용해 간단히 구성했다

회원가입 또한 부트스트랩을 이용해 간단히 구성했고 여기서 입력된 정보가 user DB로 넘어가 저장된다.


재고관리 시스템에 접속하면 왼쪽에는 접속한 유저의 정보가 보이게 되고 오른쪽에는 현재 상품별 재고 현황이 보인다

신규 버튼을 누르면 위와 같은 화면으로 넘어가고 새로운 상품의 정보를 작성할 수 있다

다시 메인화면의 상품의 row를 클릭하면 각 상품의 상세화면으로 넘어온다
여기에서 입/출고 시간과 수량을 확인할 수 있고 현재 재고 또한 볼 수 있다

우측 상단의 재고 변경 버튼을 누르면 위와 같은 화면으로 바뀌고 입/출고와 수량을 결정할 수 있다.
입력시간은 자동적으로 DB에 저장되며, 재고보다 많은 양의 출고를 기입하게 되면 위와 같은 에러메세지를 띄운다

Trouble Shooting

DB구성이 까다로웠다
현재 재고를 어떻게 화면에 보여줘야 할 지가 고민이었다
입고 테이블인 inbound와 출고 테이블인 outbound로 나누었을 때 이걸 SQL처럼 각 항목마다 연산해서 보여줘야 하나...하고 처음에는 그렇게 구성했지만 실패했다
Django ORM으로 SQL처럼 테이블들을 서브쿼리로 만들어 연산하려다 보니 너무 복잡했기 때문이다.

결국 입출고 테이블을 합쳐 History테이블을 만들고 재고의 수량 변화만을 저장하는 Inventory테이블을 만들어 재고와 입출고 기록을 확인할 수 있도록 구성했다
입출고 기록 시 History테이블에는 시간과 함께 기록을 저장하고, Inventory테이블에는 해당 아이템의 현재 수량을 가져온 뒤 수량을 더해주거나 빼주고 다시 업데이트하는 식으로 하니 위와 같이 깔끔한 DB가 구성되었다.

Think

Django로 만든 첫번째 프로젝트다
생각보다 Django로 할 수 있는 것들이 더 많고 프로젝트를 진행하면서 배우면 배울 수록 더 새로운 게 나와서 재밌다
더 깊게 파서 이걸 이용해서 더 큰 프로젝트를 진행해보고 싶다.

profile
developer

0개의 댓글