스프링으로 처음부터 끝까지 다른 사람들과 함께 프로젝트를 하고 싶다 라는 생각으로 디프만 12기에 지원했다.
12기가 시작하는 날에 팀원들이 정해졌고, 팀명을 정해야 했다. (변수이름 잘 짓는 분👋)
우리 팀 이름은 오개안말(오늘도 개발자가 안된다고 말했다)이다.
디자이너 3명, 프론트엔드 개발자 4명, 백엔드 개발자 4명으로 총 11명이 모인 웹 서비스 팀이다.
스터디를 하면서 후반부로 갈수록, 스터디원들의 참여도(저를 포함합니다🥹)가 낮아지는 경우가 있다. 이야기를 하면서 다수가 겪는 문제였고, 스터디를 진행하면서 지속적인 동기부여의 필요성을 발견했다. 이 필요성에서 시작된 우리의 프로젝트는 똑스(똑똑한 스터디)이다.
똑스는 퀴즈를 이용한 성취경험으로 만족스러운 동기부여의 경험을 제공하는 개발자를 위한 스터디 서비스이다. 스터디원들이 퀴즈를 출제하고, 푸는 방식을 통해 전반적인 참여울을 높이고, 투표하기 랭킹 기능을 통해 지속적인 동기부여를 제공할 것이라고 기대한다.
Spring Boot 프레임워크를 사용하고, Java 11 을 사용하기로 했다. 처음에는 트렌디한 Java 17 을 사용해볼까도 고민했지만, 라이브러리마다 호환성 문제가 있다고 들어서 일단 접기로 한다.
요즘 많이 사용하는 멀티모듈로 프로젝트를 구성했다.
Core 모듈에 entity, service 관련 레이어가 있고 이 모듈을 다른 모듈들이 implementation 하는 구조이다.
정리해보자면, 아래와 같다.
Flyway로 DB 형상관리를 해보았는데, 팀원들이 모두 같은 DB 형상을 가지고 작업할 수 있다는 점과 DDL 변경 이력이 남는 다는 점이 좋았다. 하지만 DB 변경사항이 많은 초기 MVP 단계에서 매번 스크립트를 작성하는 부분이 번거롭기도 했다.
JUnit5, fixturemonkey 를 사용해서 테스트 코드를 작성하고, Jacoco 를 사용해서 커버리지를 측정해 볼 예정이었으나 이 부분은 TODO로 남아있다.
API 스펙 정의는 노션에서 정리하고 의견을 나눈후에 Swagger 에 반영하기로 했다.
조회에는 JPA, QueryDsl 을 사용하기로 했는데 나는 이번에 조회를 QueryDsl 로만 사용했다. QueryDsl의 groupBy 등 새로운 메서드를 써볼 수 있는 좋은 기회가 되었다.
📚 백엔드 레포: https://github.com/depromeet/toks-api
📚 프론트엔드 배포: https://github.com/depromeet/toks-web
📚 비핸스: https://www.behance.net/gallery/161231589/Toks-Study-for-Developers-
디자이너 원희님
톡스 하면서 선우님께 인상 깊었던 부분은 스터디방 랭킹 산정에서 팀원들끼리의 형평성(?)에 대해 의견 주셨던 게 기억에 남아요! 디자이너들끼리 기획하며 놓쳤던 부분을 날카롭게 짚어주셔서 제차 고민하고 더 나은 기획을 할 수 있었습니다👍
돌이켜 생각해 보면 백엔드(선우님, 시은 님) 분들은 기술적으로 구현이 어렵다는 제약을 거의 안 주셨던 거 같아요 덕분에 더 사용자 입장에서 자유롭게 기획해 볼 수 있었습니다!!
디자이너 정현님
백엔드로 같이 참여해주시면서 바쁘실텐데 빠르게 피드백 해주셔서 너무 좋았습니다! 그리고 가장 기억에 남는 것은, 협업을 하면서 커뮤니케이션하시는 부분입니다! 개발적인 부분 외에도 디자인끼리만 논의될 수 있는 기능적, 화면 설계적인 기획 부분에도 적극적인 의견과 근거있는 피드백을 주셔서 다양한 견해를 들어볼 수 있었습니다:) 하나의 프로젝트를 같이 진행하면서 너무 뜻깊고 즐거운 경험이었습니다~
디발자 성념님
안녕하세요 선우님🙊 똑스 서비스 출시하느라 정말 고생 많으셨습니다👍🏻 사실 제가 처음으로 PM을 해보면서 많이 부족하기도하고 많이 배우기도 하고 너무 좋았던 기억밖에 없었던 거 같아요🥺 선우님이랑 함께 협업하면서 느꼈던 부분은 저는 사실 개발자분들과 협업을 했던 경험이 많지 않았고 특히나 백엔드분들과는 더 더 더 이야기해볼 시간이 없었는데..🥲 똑스를 진행하면서 여러 가지 아이디어도 주시고, 순위에 대한 의견 등등 제가 가지고 있던 편견이 깨지게 된 시간이라고 생각합니다🤩 길다면 길고 짧다면 짧은 시간이었지만 너무 고생 많으셨습니다👏🏻👏🏻
프론트엔드 개발자 현구님
기간이 길지 않았는데, 큰 문제없이 서버를 잘 구성해주셔서 너무 감사드렸어요. 마지막까지 책임감있게 팀의 aws 관리를 해주신것도 인상깊었습니다. 톡스가 잘 마무리되게 도움 많이 주셔서 감사드려요. 상황의 여의치 않아서 직접 만나 이야기를 나눠볼 기회가 좀 적어 아쉽네요ㅠ 나중에 5팀 기회가 있으면 꼭 다시 뵈어요!
프론트엔드 개발자 민석님
여행가서도 계속 슬랙보면서 소통하시던 모습에 감사했고 기본적인 API 스펙을 구성해주셔서 작업하기 좋았습니다! 다만 저희 개발 시간이 좀 더 여유롭지 않아서 API 스펙 논의를 못한 점이 모두에게 아쉬웠네요!
프론트엔드 개발자 두현님
명세서에 있는 데이터 들의 타입 명세가 조금 아쉬웠던거 같고 프론트엔드 측에서 변경 되어야 하는 데이터에 대해서 즉각적으로 수정해주셔서 너무 감사했습니다!
프론트엔드 개발자 채림님
빠르게 이슈나 피드백에 대해 대응해주셔서 작업하는 내내 재미있고 즐겁게 개발할 수 있었습니다. 또한 의사소통 스킬이 매우 뛰어나셔서 제가 프론트 개발자임에도 질문이나 의견을 주고 받는데 막힘없이 진행할 수 있었습니다.
백엔드 개발자 시은님
책임감 있는 개발자.
팀 내 협업 규칙을 준수하는 개발자입니다. 또한, 직장이나 개인 일정과는 별개로 진행되는 프로젝트에서도 항상 책임감 있는 모습을 보여주며 빠른 피드백과 소통 덕에 수월하게 프로젝트를 마칠 수 있었습니다.
소통과 이해가 수월한 개발자
타인에게 자신의 생각을 이해하기 쉽게 전달하는 개발자입니다. 어리숙한 질문에서도 함께 의도를 찾아가는 과정과, 본인의 생각을 이해하기 쉽게 정리하는 능력 덕에 팀원으로서 소통과 의견 공유가 수월했습니다.
동기부여를 주는 개발자
같이 프로젝트를 진행하면서 큰 동기부여를 주는 팀원입니다. 특히나 개발을 대하는 태도가 감명깊었습니다. 시도하고 싶은 내용들을 찾아보고 직접 적용하는 열의 있는 모습과, 간단한 질문에도 본인이 생각하는 근거를 바탕으로 답변을 주는 방식이 인상깊었습니다.
백엔드 개발자 동건님
선우누님과 함께한 4개월을 회고하며!
먼저 4개월동안 하나의 서비스를 만들기 위해 정말정말 고생 많으셨어요 ㅜㅜ
짧은 기간동안 선우누님과 함께하며 느낀건 코드적으로는 다음과 같아요!
1. 개인적으로는 일관된 코딩 컨벤션이 있으면 좋을 것 같다고 생각합니다! 코드를 확인하다보면, 비슷한 기능을 제공하지만 다르게 구현된게 많아 그 이유를 찾는게 힘들었어요! 예를들어 어떤곳은 @Transactional(readOnly = true) 붙어 있고, 어떤 곳은 없는 경우가 있어요!
2. 조금 더 빠르게 이슈를 해결하는 능력이 필요할 것 같슴다!! (빠른 이슈 해결은 필수!)
3. 가능하면 명확한 로그를 추가하여, 이슈 발생시 바로 확인 가능하도록 하기!
4. 다양한 조건의 테스트 코드 추가하기! (가능하면요!!)
5. 읽기 쉬운 가독성 있는 코드가 되었으면!!!
그리고 제가 선우누님께 배울점도 많았던 것 같아요
1. 공통으로 사용하는 DB 스키마를 항상 적극적으로 관리해주셔서 감사했어요
2. 새로운 기능, 해보지 못한 기능들에 대해 적극적으로 학습하고 적용하려고 하셨던 것 같아요
3. 저는 잘 못해서 항상 부러웠는데, 인프라적으로 어려움이 있을때 뚝딱뚝딱 설계해주신 부분!
4. 저렴한 비용으로 현재 서비스 운영에 있어 적합한 아키텍쳐 설계! 매우매우 존경스러웠습니다.
5. 프론트 개발자 및 디자이너와의 협업에 있어 발생하는 커뮤니케이션 에러를 해결하기 위해 노력하였고, 이를 통해 의사소통에서 발생하는 병목현상을 줄이심!!
6. 이미 정상 작동하지만, 그럼에도 꾸준하게 리펙토링을 진행하면서 성능 개선을 하려고 노력하는 부분!!
마지막으로…
물론 엄청나게 코드를 작성해서 팀을 혼자서 끌고 가는 분도 있던 것 같아요. 그런데 저는 팀원과 원활하게 소통하고, 서로를 배려하는 커뮤니케이션을 기반으로 한 동료 개발자가 더 같이 일하고 싶은 사람이었던 것 같아요.
선우누님은 같이 개발을 진행할때 엄청엄청 편하게 느껴졌고, 배울 수 있는게 많은 동료인 것 같습니다.
같이 할때 편하고, 믿을 수 있는 동료 개발자라고 생각합니다!! 앞으로도 잘부탁드릴게요 누님!
from 극락코딩
4개월이라는 짧은 시간동안 서비스를 배포하면서 느낀점은 다음과 같다.
MVP 는 정말 최소한의 우리가 중요하게 생각하는 기능만 집중적으로 개발하여 배포하는 것이다. 초반에 유용한 기능들이 많이 있었지만 현실적으로 우리가 구현 가능한 기능을 생각해보았을 때, 기능들이 많은 부분 다이어트 되었다. 초반 기획에서 의욕만 가지고 기획을 바라보기 보다는 최대한 비관적인 태도로 의논하는 방식이 필요할 것 같다.(오개안말인가)
함께 일하는 동료들은 정말 소중하다. 요청을 받고, 드리기도 하면서 나와 함께 하는 동료들의 커뮤니케이션하는 방식에 감사했고, 배울 점이 참 많았다.
공유와 문서화는 중요하다. 이슈가 터졌을 때, 혼자 그 이슈를 알아서 해결하는 것 보다 동료들에게 이슈와 해결책을 공유하고 논의하는 것은 나에게도 동료들에게도 도움이 되는 일이다. 내가 지금 만든 코드는 레거시가 되기 때문에, 다른 사람이 의문을 가질 수 있는 부분은 주석 및 문서화가 중요하다는 것을 느꼈다.
마지막 한달은 정말 정신이 없었지만, 배포된 서비스를 보고있으면 뿌듯하다. 디프만 12기에 참여 할 수 있었단 것에 감사하다.
선우님 그동안 똑스 서버 개발하시느라 완전 고생하셨어요 !!! 이렇게 회고글을 보니 뭔가 기분이 이상하네요 ㅎㅎ .. 저도 곧 디프만 회고를 적어야겠어요 🥰