8월 회고 첫 협업, 공모전을 끝내며

byeol·2023년 9월 15일
0
post-thumbnail

3월부터 준비한 공모전이 끝이났고 데브코스에서 3개월의 시간을 보냈다.
8월의 나는 어떤 부분에서 성장했고 부족했는지 회고를 작성해보려고 한다.

사람들과의 첫 협업 마무리 😎

디프만에 지원하게 되었지만 떨어지게 되면서 내가 직접 사람들을 모집해야 겠다 생각이 들었다.
(오기라면 오기로, 다음에 다시 지원할 것이다.)

농림축산식품부 창업경진대회를 목표로 사람들을 모집했고
디자이너 한분과 프론트 개발자 두분, 그리고 백엔드 개발자 한분과 함께 프로젝트를 시작하게 되었다.

처음으로 하는 협업이었고 잘하지 못하지만 내가 주도해서 팀을 이끌어가야 하는 상황이어서 중심을 지키고 배우려는 자세를 가지려고 노력했다.
다행히 팀원분들이 너무 좋은 분들이어서 와해되지 않고 좋은 결과로 마무리될 수 있었다.

✅ 아쉬움

🐣 상대방의 코드를 보고 내가 배우려는 자세를 가졌더라면 더 성장하지 않았을까

같이 하던 백엔드 개발자 분이 정말 실력이 좋으셨는데 그 분의 코드를 주의깊게 보지 않았다.
Stream이나 Optional, 객체 지향적으로 코드를 짜려고 노력하신 흔적들이 보이는데 그 부분에서 충격을 받고 배우려는 자세를 가졌더라면 더 성장하지 않았을까라는 아쉬움이 들었다.

또한 협업을 한다는 것은 내 코드를 상대방이 이해할 수 있는가에도 초점이 맞춰져야 한다고 생각한다.
근데 코드 리뷰 없이 본인이 맡은 역할만을 집중했던 것이 문제였던 것 같다.

🐣 상대방의 코멘트는 성장의 기회, 열린 자세를 가지자.

팀원이 조심스럽게 내 코드에 대해서 코멘트를 주신 적이 있다.
코드를 이상하게 짜는 것 같다라는 것이다.
그리고 어떻게 고치면 좋을지를 말씀해주셨는데
어디가 이상할까, 어떤 부분이 문제일까를 물어보는 열린 자세를 가졌어야 하는데
상처를 크게 받았었다.
지금 생각하면 주신 의견에 감사하며 성장했겠지만
그 때의 나는 처음 겪어보는 코멘트라 충격이 컸다.

사실 데브코스를 하면서 팀원들과 아래 대화를 계속 나누는데
그러다 보니 상대방의 코멘트는 정말 큰 성장의 기회라는 것을 알게 되었던 것도 있다.
왜 이 방법을 사용하셨어요?
이 방법의 장점은 뭘까요?
저는 이 방법이 좋다고 생각해요

상대 개발자 분께서 주신 피드백을 놓쳤던 나의 모습을 떠올리게 되는데 이 부분이 가장 큰 아쉬움으로 남아 있다.

🐣 AWS와 CI/CD

개인 프로젝트에서 나는 AWS에 배포하는 것을 실패해서 네이버 클라우드에 배포했는데
여전히 그 부족한 부분에 대해서 채우지 못했다.
그래서 이번 프로젝트에서도 상대 개발자분께서 배포를 맡게 되었다.

CI/CD가 구현되어 있지 않아서
매번 오류가 뜨고 해결하면 다시 배포하는 과정이 반복되었는데
이 부분에서 굉장히 많은 비용이 발생했다.

🐣 핵심 비즈니스 로직이 들어간 부분을 구현하지 못했다.

나는 Oauth를 이용한 로그인 구현, 공공 날씨 API를 이용한 주간, 일간 날씨 예보 구현, 게시글 신고 로직 구현을 맡았다.
좋아요, 게시글 CRUD, 최근 본 게시글 등 핵심 비즈니스 로직이 들어간 부분은 맡지 못했다.

✅ 배운점

💡 프론트와의 소통

로그인을 구현할 때
프론트 분께서 이 질문을 자주 하셨다.
응답값이 어떻게 와요?
제가 어떤 값을 보내드리면 되죠?
이 데이터가 필요합니다.
전체적인 로그인의 흐름이 어떻게 되죠?
보내주신 데이터가 뭘 의미하나요?
API 명세서에 적어주세요

이런 소통을 하다보니
프론트에게 데이터를 보내줄 때는 무엇을 의미하는지 명확하게 표시해주고
어떤 흐름을 흘러가는지 잘 이해하고 설명하는 능력도 중요하구나
그리고 API 명세서를 바로바로 최신화해서 프론트 개발자가 개발할 때 기능간 갭이 생기지 않도록 노력해야 겠구나를 깨달았다.

그리고 기능을 구현할 때 클라이언트에게 어떤 정보를 제공해야 하는지를 중점적으로 생각하고 전체적인 흐름을 생각하는 습관이 생기게 되었다.

💡 디자이너와의 소통, 팀원들의 의견을 존중하기

처음에 주제를 정하고 각 기능에 대해서 어떻게 구현할지 이야기를 나누었다.
프론트와 백엔드가 주고 받는 대화는 디자이너 분이 이해하기 어려웠고 그래서 조용히 계셨었다.
그래서 집에 돌아가서 이 부분이 문제가 있다는 것을 깨달았고
사과의 말씀을 드리며 방식을 바꿔야 겠다는 생각을 했다.

그래서 피그마를 통해서 함께 시안을 만들어 가야겠다는 의견을 주셨을 때 적극적으로 동의했고
확실히 피그마를 통해서 대화를 나누는 것이 디자이너, 프론트, 백엔드 모두의 의견을 나눌 수 있는 방법이었고 소외되는 사람 없이 협업을 하는 자세의 중요성을 깨닫게 되었다.

💡 노션, 슬랙, 피그마, git 모두 처음 써보지만 배우면 된다.

나는 이 공모전을 생각하면 며칠 간 노션을 잘 사용하고자 유튜브를 통해서 배웠던 기억이 난다.
그리고 첫 협업이라 git 사용에 익숙하지 않았는데
팀장이라 organization을 만들어야 했고 나의 실수로 혹여나 파일이 사라질 수도 있었기 때문에 git에 대해서 열심히 공부했던 기억이 난다.

모두 처음 배우는 것이었고 그 때는 이게 엄청 큰 산처럼 느껴졌는데 지금은 그 때 왜 그렇게 큰 산처럼 느꼈지라며 올챙이적 생각을 잊고 지내고 있다.

어느 순간부터는 어떤 툴을 배우는 것에 두려움을 느끼지 않는다. 배우면 되니까 곧 익숙해질 것이다.

💡 도메인에 대한 이해 부족은 사업성을 망친다.

우리는 본선에 진출하게 되면서 실제 스타트업 창업자와 교수님을 만나 멘토링을 받게 되었다.
서비스의 사업성에 대해서 설명을 드렸는데 시장이 너무 작고 이 서비스에 오래 남게하는 방법에 대한 이해가 부족했다고 하셨다.

어떻게 수익을 창출할 것인가?
단순히 분양을 중개하는 것만으로 수익을 창출할 수 없고
이 서비스에서 하나의 흐름을 모두 해결할 수 있도록 해야 한다고 하셨다.

서비스를 만드는 것이 결국을 수익을 만들어야 내야 하는데
너무 기능적인 부분에 집중했던 것은 아닐까
서비스를 만들 때 그 도메인에 대한 이해가 부족했고
비슷한 도메인의 수익창출 구조와 이를 어떻게 기능으로 구현했는지 분석해야 겠다는 생각이 들었다.

✅ 시도해 볼 점

🥕 중복되는 코드 제거하고 의존성에 대해서 다시 분석하기

실제로 UML을 그려서 객체가 어떤 객체를 의존하고 있는지 살펴봐야 한다.
그리고 최대한 의존하지 않도록 재설계해야 한다.

공공 API를 통해서 데이터를 얻어올 때 중복되는 코드들이 너무 많고
resttemplate를 사용하는데 곧 deprecated 된다는 이야기가 있어서 webclient로 바꿔야 한다.
어떤 디자인 패턴을 이용하면 이런 기술적 변화에 덜 고생해서 유지보수할 수 있을지도 고민해보려고 한다.

로그인할 때는 webclient를 사용하고 공공 API에서는 resttemplate를 사용해서 하나로 통일해야 겠다는 생각이 들었다.
그리고 하나의 객체가 너무 많은 책임을 가지고 있어서 이 부분도 수정할 예정이다.

🥕 refresh token을 통해서 보안성 지키기

refresh token을 전혀 활용하지 않고 있어서
access token의 만료 기간이 한달이다.
보안적으로 위험하다.

그리고 지금 access Token을 get 요청을 통한 header로 받고 있는데
이도 적절한지 고민해봐야할 부분이다.

처음에 프론트엔드 개발자분께서
이 부분에 대해서 의문점을 가지고 계셨는데
결국 마지막에 구현하지 못했다.

최근에 다른 프로젝트에서 이 부분에 대해서 배워야겠다는 생각이 들어서
Redis를 이용해서 refresh token을 구현했다.

그래서 지금 이 프로젝트에도 다시 리팩토링할 생각이다.

🥕 채팅 기능을 구현하여 사용자 정보 노출을 최소화하기

현재 사용자가 관심있는 텃밭을 분양하기 위해서 연락을 취할 수 있는 수단은
사이트에 올라온 게시글 작성자의 전화번호에 직접 연락하거나 문자를 보내는 방법이다.

전화번호가 그대로 노출된다. 민감한 개인정보가 유출되는 부분이라고 생각하여
1:1 채팅 기능을 구현해볼 생각이다.

STOMP와 MongoDB를 사용할 생각이고 Message Broker는 아직 결정하지 못했다.

🥕 핵심 비즈니스 로직이 들어간 상대방 코드를 리팩토링 해보자

상대방의 코드를 보면서 이 서비스가 구체적으로 어떻게 돌아가는지 살펴보고
내가 리팩토링할 수 있는 부분은 리팩토링을 진행해볼 생각이다.

그리고 나는 현재 이 부분에 대해서 아쉬움이 남아서
데브코스에서 진행하는 당근 마켓 클론 코딩 프로젝트에서
위치 데이터를 이용하는 부분의 API를 맡았다.
프론트로부터 위도, 경도를 받아서 사용자의 동네를 설정하는 일인데
Point와 MultiPolygon을 사용하여 위치 도메인을 조금이나마 이해해고자 노력했다.

✅ 앞으로 창업에 대한 생각(후속지원으로 고도화하기)

텃밭 카페들, 블라인드, 당근 마켓 동네 생활을 돌아다니며 우리의 서비스를 홍보했고 그 과정에서
이 서비스에 대한 애착이 많이 생겼었다.

유저의 소리함을 열어보며 팀원들과 오늘은 이 부분이 들어왔으니 개선해보자
우리는 앞으로 이런 부분에서 사업성을 챙겨야 한다 등 개선하고자 노력했던 거 같다.

다행히 창업경진대회 우수상을 타게 되면서
후속지원이 가능해졌고 12월부터 다시 고도화 작업에 들어가려고 한다.
앞서 시도해 볼 점들을 개선해 나가며 사업성을 챙겨 나가 볼 생각이다.

그리고 부족한 텃밭 데이터에 대해서는
전단지라도 돌려서 텃밭 주인 분들에게 매물 등록을 해달라며 부탁해 볼 생각으로..!!

profile
꾸준하게 Ready, Set, Go!

0개의 댓글