
이번 주에는 토이프로젝트 1로 쇼핑몰 DB 모델링을 진행해보았다.
남궁성 강사님께서 추천해주신 데이터 모델링 책을 읽으며 개념을 익히고, 실제로 내 손으로 테이블과 관계를 그려보려고 노력했던 시간이었다.
프로젝트 초반에 우리 팀이 합의한 몇 가지 규칙을 공유해본다.
우리 팀은 전공자 3명, 비전공자 3명이지만 나를 빼고 다 실무경력이 있으셔서 나만 잘하면 되는 것 같다. 우리 팀의 리더가 설계 테이블을 어떻게 짜고 역할분담을 정해주고, 참고할 사이트들을 추려서 보여주고, 프로젝트 진행 방향성에 대해 간략하게 10분정도 브리핑을 해주었는데, 처음 겪어보는 개발 관련 프로젝트 브리핑이라 신선하기도 하면서 회사다녔을때 기획했던 것이라 별 다를게 없는 것 같아 기분이 묘했다.
위와 같이 개략적인 규칙들을 정하였다. 월요일은 각자 맡은 파트에 대해 책을 보면서 각자가 담당한 파트에 필요한 테이블과 칼럼들을 나열해서 정리하였다. 깃허브와 erdcloud, jira의 계정들을 하나의 팀으로 연동시키는 작업을 하였는데, 이제서야 진짜 프로젝트를 하는 것이구나라는 것을 느꼈다.
월요일때와 마찬가지로 10시부터 30분간 자기가 담당한 파트에 대해 설명을 하고 공통 타입과 명명규칙을 간략하게 정하고 각자 담당하는 파트의 테이블을 erdcloud에서 작성하기 시작했다.
나는 상품파트를 담당했었는데, 고객파트를 담당하시는 분께서 내가 작성한 erd를 보시고 pK 설정을 왜 그렇게 했는지? 물어보셔서 그제서야 내가 잘못했다는 것을 알게되었다.
내가 생각했던 구조를 말씀드리니
이 부분은 이런 논리로 인해 이렇게 변경되어야 하고, 요 부분은 실제 홈페이지를 들어가서 보면 이렇게 구성되어 있기 때문에 1:다 관계이다.
라고 설명해 주셨다.
데이터모델링 책을 보고 개념들은 알았지만, 이 개념들을 실제로 적용을 하지 못했던 것이다. 학원 문이 닫기 전에 관계 설정에 대해서 다시 생각해보고 마무리 하였다.
강사님의 피드백이 있는 날이었다.
다른 팀들의 모델링한 것에 대한 강사님 피드백을 들어보니 내가 생각했던 상품의 범위는 좁은 것이어서 바로 상품의 재고, 재고를 보관하는 창고, 온라인 상의 재고와 오프라인상의 재고 차이, 창고도 섹터를 나누어서 상품을 어디에 보관할지에 대해서도 생각을 한 후 테이블을 작성하기 시작했다.
엑셀에 테이블명과 컬럼명들을 쭉 적어보고 모델을 짜보려고 했지만, 테이블과 컬럼수가 계속 늘어나는 것을 보고 제한을 두고 지금까지 한 엑셀시트를 바탕으로 테이블을 작성해야겠다고 마음 먹었다.
강사님 피드백을 수요일에 받을 수 있을 줄 알았지만 시간관계상 목요일에 받게 되었다.
창고와 창고 재고 관리 테이블은 있는데 왜 입출고내역이 없냐는 강사님 피드백을 받자마자 나는 한대 얻어맞은 느낌이었다. 내딴에는 빠짐없이 다 짰다고 생각했는데 그게 아니었던 것이었다.
피드백을 받고 수정을 해야했지만, 쿼리문으로 작성해서 과제를 제출하는 것이 우선이라 mySQL에서 정상작동하는지 확인하는 것으로 하루 일과를 마쳤다.
오늘은 한주간 진행한 토이프로젝트의 결과를 발표하는 날이다. 다른 팀들의 erd와 설계한 것들을 보니 우리팀의 장점과 단점을 알 수 있었다. 우리팀도 열심히 했지만 다른 팀들도 열심히 한 것처럼 보였고, 나도 더 열심히 해야겠다고 결심했다.
우리 팀원들은 다들 각자 맡은 분야들을 책임감을 가지고 과제를 해주셔서 너무 좋았다. 이번주는 개념과 논리모델링, 물리모델링까지 하였지만, 다음주는 본격적인 개발이 시작되므로 물리모델링과 서버, 공통디자인에 대해 다시한번 토론을 해봐야겠다.
이번 주 정말 열심히 했다! 다음 주도 파이팅! 💪