나의 2022년 겨울방학을 책임져 준 🖤디앤디🖤 회고록을 작성해보려 한다.
DND 는 개발자(Developer)와 디자이너(Designer)가 협업해 8주간 프로젝트를 완성해내는 동아리이다. 방학을 누구보다 알차게 보낼 수 있는 방법을 찾다가 원티드 홈페이지에서 디앤디 홍보배너를 보고 이끌리듯 지원하게 되었다.
그동안 최소 3개월은 잡고 프로젝트를 해왔기 때문에 8주라는 기간이 굉장히 짧다는걸 알고 있었지만, 짧은 기간동안 확 집중한다면 프로젝트를 완성하고 협업까지 경험하기에 8주도 충분한 시간인 것 같았기 때문에 오히려 큰 메리트라고 생각했다. (코드 퀄리티 면에서는 앞으로 계속 리팩토링이 필요하지만 말이다.)
그리고 직장인 분들과 협업해볼 수 있다는 점!
대학생으로서 직장인 분들과의 협업 방식이 궁금했다. 이부분은 뒤에서 좀 더 설명하도록 하겠다. 왜냐하면 같은 백엔드 팀원 분께 압도적 감사를 표현해야하기 때문..
동아리 합격 후 OT에서 팀빌딩 관련으로 재밌는 포인트가 있었다. dnd는 팀빌딩을 운영진 분들이 해주시는데, 기술 스택은 물론 당연히 고려해주시고 여기에 플러스로 mbti도 섞어서 짜주신다고 하셨다. MBTI 과몰입자 + 내향인으로서 굉장한 매력 포인트였다 😂
결과적으로 우리 팀에 굉장히 만족하고 트러블 없이 너무 잘 진행되었던 것 같다.
디앤디에서는 아래 간단한 사진처럼 "활동 가이드"를 제시해주는데, 개인적으로 이 가이드가 정말 좋았다.
매주 가이드에 맞게 과제를 제출해야하지만 큰 강제성이 없기 때문에 매주 팀원들의 역량에 맞게 진행하면 된다. 그러나 개발같은 경우 초반에 디자이너 분들에 비해 할 일이 적기도 하고 8주라는 기간을 염두에 두어 빨리 진행하는 것을 추천한다.
참고로 우리 팀은 일주일에 회의 2번은 픽스로 진행했으며 가이드 과제 관련해서는 3-4 주차를 1-2주차 때 같이 정하여 실제 개발을 가이드보다 빨리 들어갔다.
추가적으로 팀 활동 이외에도 개발/디자인 세미나도 종종 열린다. 예시를 들자면,, 특히 git 세미나가 기억에 남는 것 같다. git/github 에 대해 어느정도 알고 있다고 착각했었는데 실제 개발에 들어가기 전에 협업에 필요한 유용한 정보를 많이 얻었다. 모든 세미나 준비해주신 운영진 분들께 감사드립니다 :)
정기 세션은 따로 없고 중간 발표와 최종 발표가 있다.
결론부터 말하자면 우리 팀 5조는 <사회초년생을 위한 가이드, Spoon Feed> 서비스를 기획했다.
하고 싶던 아이디어가 많았는데, 우리가 사회초년생인만큼 가장 공감이 됐던 아이디어라 선정되었다. 사실 서비스 사이즈를 줄이느라 기획 단계에서 생각보다 고생이 많았다. 서비스에 정책 필터링과 커뮤니티를 둘 다 넣을 지, 주제는 (주거/금융/복지/취업/정책참여 등) 중 몇개로 줄일 지, 개수를 정한다면 어떤 주제에 집중하는게 좋을 지 등 많은 부분을 고민해야 했다. 결국 많은 회의를 통해 정책 필터링과 커뮤니티 기능 둘 다 개발하되 필터링을 메인으로 내세워 우선순위를 정했고, 주제는 mvp 단계에서는 주거와 금융으로만 좁혔다.
기획 부분은 물론 팀원 전체가 참여했지만 디자이너 분들이 디테일 적인 측면에서 많은 힘을 써주셨다.
아래 ia와 우리 팀 피그마 일부만 봐도 디자이너 분들이 얼마나 열심히 잘 해주셨는지 알 수 있다 👍
안드로이드는 화면 구현 때문에 당연히 디자이너와 소통할 일이 많지만 백엔드 또한 데이터베이스 설계 (ERD 작성)와 api 개발 시에 기획/디자인이 뚜렷해야하기 때문에 피그마에서 수시로 코멘트를 남겨 디자이너 분들과 소통했다. + 슬랙, 노션, 카톡 소통은 기본!
본격 개발에 앞서 협업을 위해 꼭 필요한 과정이 있다. 같은 파트 팀원과 다음의 것들을 상의하고 맞춰야 한다.
개발 환경
대부분의 팀들은 기술 스택이 맞춰져 있을 것이다. 그러나 우리 팀은 프레임워크 후보가 두 가지가 있었다. 같이 하는 백엔드 분은 Express를 주 스택으로 개발해 오셨었고 나는 Django 가 주였기 때문에 둘 중에 고민이 되었던 것. 나도 자바스크립트가 처음은 아니었으며 팀원 분도 장고 경험이 있었기에 어떤 언어/프레임워크를 선택해도 잘 해낼 수 있을 것 같았고, 상의 후 TS+Express 로 정하게 되었다.
또한 디렉토리 구조를 통일해야 하는데, 팀원 분이 Express 경험이 있으셔서 감사하게도 틀을 빠르게 짜주셨다. 백엔드 깃헙 레포 에서 확인할 수 있다 😎
커밋 컨벤션
우리는 본인의 작업 단위로 커밋하기로 했으며,
이슈 발급 -> 이슈 이름 토대로 브랜치 생성 -> 브랜치에서 작업 -> pull request -> 코드 리뷰 -> development 브랜치에 머지 -> master 브랜치에 머지 후 배포
형식으로 진행했다.
진행하면서 느낀 점이지만 커밋 메시지와 코멘트를 앞으로 더 신경써야겠다. 여태까지 커밋 메시지 작성할때 많은 생각 없이 적어서 올렸었는데 팀원 분께서는 정말 자세하게 적어주셔서 이 모습을 보고 배워야겠다는 생각이 들었다. 내 커밋과 다르게 작업에 대해 이해가 훨씬 잘되었다.. 반성 중입니다 🥲
코딩 컨벤션
변수명은 camelCase 로 정했으며 eslint + prettier 을 사용해 가독성을 높이기로 했다.
여담으로 팀원 분께서 커밋 컨벤션과 코딩 컨벤션 부분을 노션으로 깔끔하고 구체적으로 문서화 작업을 해주신 덕에 헷갈릴 때마다 계속 확인하면서 작업할 수 있었다.
아키텍처 & 데이터베이스 설계
아키텍처는 다음과 같다. 참고로 초반에 그린거라 route53은 적혀있지만 사용하지 않았다..ㅎㅎ
데이터베이스의 경우, https://app.diagrams.net/ 무료 사이트를 사용해 erd 를 작성했다. 사실 완벽한 디비 관계는 아니라고 생각하지만 당시 짧은 기간 내에 우리가 생각할 수 있는 최선이었던 것 같다. 백엔드 분과 상의해보았는데 현재는 겹치는 컬럼이 많기도 하고 관리의 편의를 위해서 추후에 필터링 관련 테이블을 분리할 수 있으면 좋을 듯 하다.
개발 준비가 끝났다면 실제 개발에 들어가면 된다.
백엔드에서 api를 개발하면 안드로이드 분들께 스웨거 + 노션으로 전달드렸고 다음 사진들에서 우리 문서의 일부 모습을 볼 수 있다.
참고로 개발 도중 만난 어려움이나 새로 알게된 점들은 벨로그 스푼피드 시리즈 에 따로 정리해놓았으니 궁금한 분들은 참고해주세용 :)
최종발표 때 우리 5조는 시연 영상에 필요한 api까지 연결을 완료했으며 일부 api들의 연결이 아직 안되어있는 상황이다. 따라서 dnd가 종료된 이후에도 지속적인 회의와 팀 활동을 통해 4월 초 출시를 목표로 잡으려 한다. 앞으로도 스푼피드 화이팅!! (개발이 완료된다면 어플 다운로드 링크와 사용 방법 등을 추가로 남기겠습니다 ㅎㅎ)
DND에서 얻은 것들은 정말 많지만 이게 다 좋은 팀원 분들을 만나서인 것 같다. 우선 안드로이드와 디자인 파트 분들은 다른 파트임에도 엄청난 실력자/열정러이신게 분명했다.
백엔드는 (좋은 의미로) 할 말이 너무 많은데 잘 요약하자면,,
특히 같이 해주신 백엔드 팀원 분이자 우리의 ✨팀장님✨ 덕분에 새로운 프레임워크도 알아가고, 사소한 코딩 습관들 - 예를 들면 타입 정의, validation, 문서화, 에러해결 방법 등 - 도 배우고, 어떻게 하면 서비스에 맞는 설계를 할 수 있을 지에 대한 시야도 넓어진 것 같다. 감사한 점들이 수도 없이 많지만 다른 것보다도 이 프로젝트에 대한 애정과 열정에 감동 받았다. 재직 중이셔서 시간 할애를 많이 못해주시지는 않을까 조금의 걱정도 있었는데 오히려 백수인 나보다 훨씬 열심히 해주셨다. 심지어 그저 빛인 팀장도 맡아주시고.. 이 포스트를 빌어 무한 감사를 표한다 🙏
그리고 비대면 활동이었음에도 불구하고 회의가 정말 잘 진행되었던게 좋았다. 운영진 분들께서 원활한 활동을 위해 많이 도와주셨고 트러블이 생기지 않기 위해 계속해서 모든 팀에게 관심을 주셨던 것 같다.
디앤디에서는 ...
8주동안 집중해서 멋진 서비스를 개발할 수 있는 기회고 그 과정에서 협업을 밀도 있게 경험할 수 있으며 좋은 인연들을 만나 활동 이후에도 서비스를 디벨롭해나갈 수 있다. 결론은 DND 최고다 ~
디앤디 7기 지원을 망설이고 있다면 고민의 시간이 아깝다고 생각한다 🎬