
계속되는 설계에도 끝이 보인다.
아마 이번주의 말미에는 개발에 돌입할 수 있을듯 하다.

우선 한 주간의 시작(스프린트 시작)이라 JIRA로 주간 스프린트 계획부터 수립했다.(화요일 캡처본이라 몇개는 완료된 상태)
이번주의 큰 목표는 ERD, API 명세 까지 완료 이후 개발에 착수하는 or 땅 하면 바로 시작 할 상태까지 가는 것이다!

후..
쉽지않았다
우선 각자 대분류로 분류하여 요구사항 명세를 완성한뒤 6명 팀원 다 같이 명세서 하나씩 검토하며 확립했다.
아무래도 국어적으로 표현이나 단어 하나씩에 얘기거리가 계속 있다보니, 상당히 피로한 과정의 연속이었다.
그래서 하나의 기준이 필요했고, 우리는 차후 개발 설계 단계에서 요구사항 명세서가 참고 역할을 해주게끔 작성을 하자란 기준을 잡았다.
그래서 대분류와 중분류로 나누고 기능적으로 상세히 기술하며 진행 했다.
확실히 설계의 단계가 깊어질수록, 점점 확립이 되는 듯 하다.
오늘은 ERD 설계를 진행했다.

1차 ERD정도로 생각하면 될듯하다. 아마 많은 수정과 개선이 필요할듯 하기때문에 ..
서기역할을 맡아서 ERD Cloud를 사용하며 직접 작성해보아서 좋은 경험이 된 것 같다.
Column의 속성을 주는 법이나 설정과 색을 부여하는 법? 등 전반적으로 ERD Cloud 사용법을 익힐 수 있었고, 역시 ERD 설계 또한 쉬운 부분이 아니란걸 깨달았다.
요구사항 명세와 달리 ERD 설계부터는 조금 더 데이터 관점으로 접근하려 노력했다.
다음 링크는 ERD를 설계하며 새로 알게된 사실을 기록한 포스트다.
M:N관계의 구현을 위한 매핑 테이블 설계에 관한 포스팅
다대다 관계 테이블 설계
유저 테이블을 설계하며, 일반 유저와 소셜 유저로 분리되어 나타났던 이슈와 팀원들간의 의견 병합 과정을 다뤘다. 개인적으로 ERD를 다루며 가장 많이 배웠던 부분이라고 생각했다.
유저 테이블을 소셜유저와 일반유저로 분리하기
ERD를 마친 후 열심히 API명세를 진행하였다.
확실히 ERD까지 나온 뒤라 난이도적으론 더 쉬웠다.
API명세를 짜며 많이 고민했던 부분은 명명규칙에 관한 것이었다.
짜면서 느낀건 RESTFUL하게 짜는것도 중요하지만 개발팀원들과의 약속과 가독성 또한 못지 않게 중요한 부분이다.
이를테면 REST API라면, 동사가 아닌 명사로 명명하여야 한다는 규칙이 있다.
하지만, 통상 우리가 사용하는 login같은 경우는 login 이외의 단어로 명명하는 것 보다 우리 팀원들끼리 직관적으로 공유되고 보기 쉬운 login이란 동사로 명명하는 것이 더 효율적이라고 생각했다.
이처럼, REST API를 설계하는 부분에서 규칙을 지키는 것 만큼 팀원들간의 소통에서 더 효율적인 부분을 신경쓰는 것 또한 중요하다고 생각했다.

그리고 ..컨설턴트님과 회의를 진행했다.
회의를 진행하다보니 아이디어 적으로 다양한 의견이 나왔는데
아무래도 아이디어 1차 수정이 진행되어야 할 것 같다.
어느정도 수정이 필연적이라 예상했지만, 생각보다 빠르게 찾아왔다.
그래서 일단 수정이 일어난다면, 단계별로 문서를 수정하기로 팀원들에게 제안했다.
요구사항 명세 수정 -> ERD 수정 -> API 명세 수정
이런식으로 점층적으로 수정된 아이디어를 적용 해 나가기로 했다.
그리고 꼼꼼하고 정확한 설계가 중요하다는건 두말하면 잔소리지만, 기한이 정해져있는 프로젝트이기 때문에, 설계에 너무 지나친 시간을 할애하는 것 또한 프로젝트의 완성에서 멀어지는 악수일수도 있단 생각을 했다.
그래서 팀원들과 상의하여 내일까지 아이디어 수정과 API 명세까지 모든 설계 작업을 완료하고 업무 분담을 진행하여 금요일엔 개발에 착수 할 수 있는 상태를 만들기로 약속하였다.
부디 내일 모든 설계가 예상대로 끝나길 바라며..
어제 말한대로 아이디어의 일부분 수정이 있었다.
가장 큰 이유는, 게임 한판의 소모 칼로리가 생각보다 크지 않기떄문에, 그걸 목표로 잡고 진행하기엔 목표 달성의 결과물이 빈약하다는 이유에서였다.
그래서 다이어트적인 관점보다는, 부모와의 유대감 형성과 아이들의 활동량 증가 자체에 목적을 맞춰 플레이타임 통계를 보여주기로 결정하였다.
그리고 그에 따른, 설계 명세서의 변화 또한 차례대로 진행하였다.
그리고 수정사항 뿐만 아니라 전반적으로 API명세서를 다 같이 검토하며 최종적으로 설계 검토를 마무리 지었다.
설계 단계는 우리 팀원들간의 약속이 꼼꼼히 정해졌다고 생각되기도 하고, 프로젝트의 총 기간이 6주인걸 감안했을떄, 이제는 개발에 착수해야 할 시기라고 생각하였다. 따라서 설계는 계획대로 여기서 마무리 하고 이제 개발에 들어가려고 한다.
게임개발을 유니티로 하겠다고 말이 나와서
게임1, 디자인1, 백엔드3, 인프라1로 분업을 진행하고
우리 기능의 백엔드 파이가 작기 때문에, 백엔드 개발을 조속히 마무리하고 프론트와 게임에 붙기로 하였다.
그리고

전반적으로 코드 컨벤션을 다 같이 읽으며 프로젝트를 진행하며 지켜야 할 사항들에 대해 공유하였다.
내일부터 개발 시작이다아 !
허허 바로 시작하면 될줄 알았지만...
생각보다 git을 정리하는데에 오래 걸렸다.
그러고 MSA에 맞게 DDD 설계를 해야했는데, API 명세가 좀 아쉽단 생각이 들었다.
그래서 API명세를 약간 수정하니 하루가 다 가버렸다.
마찬가지로 주차 마무리라 스프린트 회고를 하고 스프린트 마무리까지 진행했다.
아래 포스팅은 git 사용흐름을 정리하며 쓴 글과 MSA와 DDD설계에 관해 쓴 포스팅이다.
git branch 분리와 Merge Request 날리는 흐름
MSA와 그를 위한 DDD 설계
주말은 기업지원 원서 좀 쓰고, 친구들과 시간보내며 휴식했다.