프로젝트에서 팀장을 맡게 되어 매우 바빴다.
일주일간 블로그 최신 글이 0으로 동결상태였는데 블로그를 보니 아 내가 정말 팀장 역할을 하느라 바빴구나를 새삼 실감하게 된다.
이번 프로젝트는 뉴스피드 만들기였다.
비록 프론트는 구현을 하지 않지만 친구기능 좋아요기능 등을 탑재한 api를 만드는 것이 이번 프로젝트의 필수 과제였다.
우리 팀은 2명의 전공자와 2명의 의문의 전공자(튜터님 피셜) 로 구성되어 팀운이 꽤나 좋았다. 웃긴 게 intp가 4명이어서 내가 제일 활발한 편이었다. 그래서 처음부터 팀장 분위기를 잡고 메이커 역할을 해야겠다고 생각했다. (그리고 발표도 맡았다)
처음엔 기술적으로 접근하고 싶었지만 팀원들은 객체지향과 기본기를 다듬고싶고 했고 나도 동의하는 항목이라 이걸 목표로 진행했다. 마침 객체지향을 공부하는 중이었고 나도 팀원들에게 내가 사용해본 디자인패턴이라든가를 소개해주며 새로운 경험을 제공해주고 싶었다. 또한 다른 학생분들이 생각하는 객체지향이란 무엇일까를 알게 되는 시간을 가질 수 있었다.
첫 회의. 누가 봐도 맨 아래가 나다. websocket과 spring eventlistner는 스프링 내장기능이라 사용해볼만한데 싶었지만 내려놓게 됐다.
다들 잘 하는 분들이어서 첫날에 api 설계를 다 하고 개발도 거의 다 했다. 그리고 월요일부터 본격적으로 리팩토링을 시작했다.
월요일 12시에 코드를 마무리하고, 각자 서로의 코드를 소개하며 비즈니스 로직을 설명하고, 어떤 방식을 채택했는지 그 근거에 대해서 이야기 하는 시간을 가졌다. 그리고 그 중 제일 합당한 또 학습에 도움이 되는 방법으로 리팩토링 하기로 했다.
entity 생성, dto 매핑 둘 다 빌더로 결정됐고 통일된 김에 mapper 클래스를 사용하기로 결정했다.
mapper 클래스 내부에선 다형성을 활용해 toEntity, toDto로 코드를 통일했다.
또한 서비스 계층에선 내가 사용한 템플릿 메서드 패턴이 채택됐다. 솔직히 튜터님들껜 호불호가 갈렸지만 우직하게 밀어붙였다. 좀 건방져보일 수 있지만 내 언어로 설명할 수 있는 코드는 정답이라고 생각한다. 물론 아는 만큼 보인다고 내가 덜 아는 걸 수도 있어서 늘 가능성을 열어두고 있다.
그래서 각자 브랜치에서 리팩토링과 오류 수정을 진행하고 최종적으로 결과물이 나오게 되었다.
각자 브랜치에서 작업하며 풀 리퀘스트로 협업을 하는 것은 진짜 처음이라 많이 새롭고 재밌었다. 어떻게 해야 더 긍정적인 방향으로 협업할 수 있을지도 알게 되었다. 일단 풀 리퀘스트 안에 있는 피드백 기능을 잘 사용하기 위해서는 한번에 푸시하는 양이 적어야 서로서로 피드백하기 편하다는 것을 깨달았다.
또한 커밋 메세지도 있어보인다고 영어로 적지 말고 그냥 한글로 적어야겠다 ㅎㅎ 세세하게.
https://github.com/roqkfchqh/Newsfeed
GitHub - roqkfchqh/Newsfeed
Contribute to roqkfchqh/Newsfeed development by creating an account on GitHub.
github.com
하하 그냥 결과물 와바박 올려버리기
발표가 막 끝나서 정신이 없는데 KPT 회고는 팀원들 의견 취합해서 얼른 적도록 해야겠다.
개인적으로 이번 조가 꽤나 마음에 들었던 것이 다 나랑 결이 비슷한 사람들이라 과묵하게 시킨 건 열심히 하는 스타일이어서 좋았다.(물론 코드 외적인 부분은 미루시더라..살짝.. 조크조크 ㅎ 나도 자주 미룬다. 재미없잖아)
ppt가 좀 잘 만들어진 것 같아서 일부분 따서 올려야징. "우리가 집중한 것"에 대해 발표가 잘 되었다고 생각한다. 기능적인 부분은 좀 아쉬웠지만 기초 프로젝트인 만큼 기본기에 집중하는 것이 옳다는, 팀원들의 의견을 반영한 점이 크게 작용했다.
사실 템플릿 메서드는 안 썼어도 차이가 미미했겠지만 유지보수할 때 제네릭을 곁들인다면 회원의 등급제나 서비스의 차등화가 매우 쉬워질거라는 점에서 꼭 사용하고 싶었다.
우리 조 다들 고생했고.. 근데 2주 뒤에 또 프로젝트다.
나는 좀만 더 고생하자
'팀 프로젝트 > newsfeed.project' 카테고리의 다른 글
기초 프로젝트 KPT 회고 (0) | 2024.12.27 |
---|