ERD 작성 전, 필요한 엔티티에 대해 생각해보았다.
필수적인 요소로
를 먼저 떠올렸다.
빌딩 - 층 / 층 - 쓰레기통은 각각 1 : N 관계를 생각했다.
팀원과의 회의 및 컨설턴트님의 초기 피드백으로
이렇게 총 세 가지의 결론을 도출했다.
위 세 결론을 바탕으로, 하기와 같은 초기 erd를 작성했다.(추후 변경 가능성 존재)
크게 세 부분으로, 모델 / 공통 코드 / 로그-통계 부분이다.
캠퍼스 - 건물 / 건물 - 층 / 층 - 쓰레기통 / 캠퍼스 - 학생 / 캠퍼스 - 관리자는 각각 1 : N 관계를 갖는다.
현재 임시로 쓰레기통과 관리자 사이에 "쓰레기통 비움" 이라는 M : N 관계를 나타내는 테이블이 존재한다.
위 테이블은 추후 어떤 관리자가 어떤 쓰레기통을 비웠는지를 추적하는 용도로 사용할 계획이다.
최대한 겹치는 데이터들이 어떤 것이 있을까 회의한 결과, 크게 세 부분으로 결과를 도출하였다.
쓰레기통 분류 종류
쓰레기통 현재 상태
- 정상 (쓰레기통 사용량 30 % 미만)
- 주의 (쓰레기통 사용량 70% 미만)
- 위험
위 단계와 더불어 일정 기간이상 쓰레기통이 비워지지 않은 경우에 따른 상태 변경 조건을 추가할 예정이다.
관리자 종류
공통 코드 작성 관련하여
공통 코드-1
위 블로그들을 참고하였다.
코드 작성 이후,
"공통 코드를 어떻게 구현할 수 있을까, 어떤 코드가 좀 더 효율적일까?"
에 대해 조사하던 중, enum에 대해 알게 되었다.
인프런 공통코드 enum 질문글
django 공통코드와 enum
쏘카의 공통코드 관리 변천사
해당 질문 글과 블로그를 참고하여
ENUM의 활용이 좀 더 효율적일 것 같다는 생각을 하게 되었고,
아래와 같이 Django 활용 Enum 구축에 성공하였다.
통계 데이터 구축 계획은 아래와 같다.
1. 쓰레기통 IoT 장치(아두이노 기반)와 서버의 통신으로 인한 로그 데이터 축적
2. 일일마다 로그 데이터 갱신해주고, python pandas를 활용, 해당 데이터 통계내서 테이블에 넣기
아직 H/W 쪽 구축이 되지 않았고, Django 활용 로그 데이터 쪽 부터 알아야 할 것 같기 때문에, 현재로썬 단순 계획만 있다. 하지만 이 프로젝트에서 내게는 가장 흥미로운 부분이다.