팀프로젝트를 끝내고 진행한 과정과 느꼈던 점을 회고해보려고한다. 우선 팀프로젝트 시작과 동시에 팀원들과의 소통의 시작과 역할분배. 개인 프로젝트를 끝내고 간간히 소통을 하기 시작하면서 처음부터 통성명을 하거나 어색한 점은 거의 없었던 것 같다. 그래도 지금까지 같이 캠프를 진행하면서 몇 번의 팀 변경과 각 주차에 맞는 발제 등을 진행해온 결과이지 않을까싶다.
- 프로젝트 초기설계(ERD 설계, 와이어프레임, API 명세)와 역할배분
주제 자체는 빠르게 정해졌고, 개인프로젝트에서도 진행해봤고 우리가 잘할 수 있는 방향으로 결정이 되니, 추가적인 기능만 세세하게 생각할 수 있어서 초기설계나 역할배분에서도 조금 수월하게 진행할 수 있었던 것 같다. 우선 ERD같은 경우는 ERD Cloud라는 사이트를 통해 팀원들과 같이 진행했다. 사실 ERD 설계 자체는 식별,비식별관계의 차이를 모르고 처음에 진행을 해서 피드백 이후 꽤나 많은 수정을 거쳤다. 하지만 와이어프레임은 이미 존재하고 있는 다양한 블로그(velog,디스콰이엇 등)들을 참고해서 초창기부터 정해진 솔리드한 형태를 프로젝트 끝까지 거의 원형 그대로 보존했다. API 명세 같은 경우는 가장 수정이 많이 됐다. request나 response 등 제대로 이해하지 못해서 진행을 하지 못했던 부분도 있거니와 파일명이나 그에따른 url패턴 정해지지 않은 것들이 많아서 가장 모호했던 부분이었던 것 같다. 일례로 다른 어떤 팀에서는 와이어프레임에서도 변경을 많이 했다는 것 같은데, 실무에서처럼 독창적인 서비스를 갖는 형식이나 전혀 베이스가 없는 상태에서 진행하는 프로젝트라면 초기설계에서도 많은 시행착오와 창의성에 따른 고통이 수반될 터이다. 이번 프로젝트에서는 해보지 못한 걸 한다는 경험은 할 수 없었지만, 다른 결과물들에서 축적된 경험과 노하우들을 벤치마킹할 수 있어서 완성도 면에서는 만족할만한 결과물이 나왔다.
- 프로젝트 진행(User Model 생성)
User Model에서는 개인프로젝트에서 진행해보다가 꽤 어려움을 겪어서 포기했던 AbstractBaseUser 형태를 다시 사용해보기로 했다. 시행착오를 겪어서 그나마 이해하고 구현하는데 시간을 조금 절약할 수 있었던 것 같다. User 모델을 생성해두면 이후 다른 팀원들이 맡은 게시물 CRUD 파트에 대한 검증이 수월하게 진행할 수 있을걸 알고 있었기 때문에 금요일에 시작한 프로젝트여서 주말까지 이용해 User 모델을 팀원들의 본격적인 작업 전에 구성해놓으려고 노력했고 꽤나 성공적이어서 개인적으로는 만족한다. 일단 장고 공식 홈페이지에서 제시한 Full Example을 따라 해서 커스텀했는데, 로그인하는데 이메일형식을 사용하는 것을 알고 그렇게 진행해보려고 생각해서 놔뒀지만, 원한다면 다시 username(ID)형식의 로그인 페이지 구현도 가능할 것 같고 admin 사이트에서 Personal Info창을 수정해서 사이트 내에서 내가 추가한 필드에 대한 내용을 입력할 수 있게 만드는 것도 이제는 가능하다. 다만 아쉬운 점은 Required Field나 createsuperuser에서 입력할 내용 수정, 유저가 회원가입하고 로그인 할 때의 제한(이메일 형식, 비밀번호 문자형태, 비밀번호 확인해서 1차와 2차가 같지 않으면 회원가입이 되지 않게)하는 것에 대한 내용은 추가적으로 구현해보고 싶다.
- 프로젝트 막바지 오류수정과 통합... 그리고 발표
일단 진행을 하면서도 많은 merge conflict 현상을 겪었지만, 기능을 추가하는 것 외에 뺄 때도 깃허브가 어떠한 로직으로 작용하는 지는 정확히 모르지만 내가 진행중인 작업내용을 main에서 pull할 때 그냥 main에서 삭제된 내용이라고 인식하는 등 다른 팀원이 올려놓은 코드와의 변경점을 잘 살펴보지 않으면 대참사가 날 수 있다. 팀원 중 한 명이 그러한 실수를 했고 comment를 남겨 merge를 진행하지 않았더니 해결방법을 질문해주셔서 화면공유로 내가 하는 방식대로 진행해보았다. 알려줄만한 실력이 되는지는 모르겠지만 그렇게 다른 사람에게 알려주면서 스스로 공부도 되고 팀원들의 반응도 나쁘지 않았기에 더욱 만족했던 것 같다. 그리고 git에 더 말해보자면 gitmoji를 사용해보자는 의견을 따라 도입했는데 기능 개선(art)와 코드 수정(memo)의 사용이 혼용되면서 약간은 아쉬운 부분이 없잖아 있었던 것 같다. 그리고 커밋하면서 자꾸 까먹는 부분도 ㅎ; 아무튼 여차저차해서 발표까지 갔는데 아이디어가 신선한 조와 css가 보기 편한 조 등 다양한 팀의 발표가 있어 즐거웠다.(이번엔 발표를 맡지 않아서 그런것일수도) 그리고 우리팀의 발표자분께서 많이 부담을 느끼고 끝나고 난 뒤에 잘 못한것 같다 했지만, 앞서 경험한 바로 아쉬움이 남는 건 어쩔 수 없고 개인적으로는 발표구성도 잘하고 진행을 잘 하신 것 같다고 생각한다. 이제 발표 끝나고 회고를 하면서 다른 팀의 발표물에서는 안 보인 장고의 message 기능을 넣은 것도 매우 좋았다고 느꼈고, 팀원들 모두 발표물의 완성도에 긍정적으로 만족했기 때문에 좋은 팀프로젝트의 기억으로 남을 것 같다. 개인적으로는 django의 message기능, image 파일 올리는 함수에 대해 더 공부하고 싶은 맘이 있다.