내 생애 첫 팀 프로젝트를 진행하면서 실력적으로 정말 큰 성장을 하게 되었다. 팀의 필요성과 중요성을 많이 느꼈고 좋은 팀원분들을 만나서 프로젝트를 완성도있게 만들 수 있었다.
따봉
은 사용자 간 칭찬 포스트를 공유하는 SNS 앱 어플리케이션입니다.
따봉
을보낼 수 있습니다.빅따봉
을 보낼 수 있습니다.우리 팀은 아토믹 디자인으로 개발하기로 했다. (아토믹 디자인이란?)
먼저 작은 컴포넌트 단위로 나누고 상향식 접근을 통해 큰 컴포넌트를 구성했다.
하지만 5가지로 나눠서 하기엔 시간이 너무 오래걸리고 효율적이지 못하다고 판단해서 3가지로 나누었다.
components 폴더는 웹앱 전반적으로 재사용되는 base 컴포넌트
features 폴더는 각 page에 사용되는 컴포넌트
pages 폴더는 웹앱의 각 page를 components와 features에 있는 컴포넌트로 조합해서 만든 컴포넌트
js => 2주간 짧은 프로젝트였기 때문에 ts를 배우지 않은 팀원들이 있었고 프로그래머스에서 지금까지 js를 사용해 강의를 들어왔고 기초가 중요하다고 생각해 js를 선택했다.
react => vue나 angular를 사용한 팀원이 없고 react를 다들 사용해보거나 공부해서 react를 선택했다.
storybook => UI 테스팅을 할 수 있는 좋은 툴, 모든 팀원이 꼭 사용해보고 싶어서 사용했다.
figma => 같이 디자인을 만들고 협업하기 좋은 툴, css에 대한 부담도 줄어들게 해준다.
깃 레포와 팀 노션이 궁금하다면?
저희 팀이 만든 어플이 궁금하다면?
칭찬/감사합니다
채널의 기능을 확장해서 만들면 어떨까해서 아이디어를 냈고 채택되었다.Issue Template을 Feat, Bug 둘로만 설정하다가 Style, Refactor 관련 이슈도 Feat 템플릿으로 사용하니 혼동이 오는 부분이 있었다. 그래서 추가적으로 Style, Refactor 템플릿을 추가로 만들어서 통일성을 갖추게 했다.
Issue Label을 긴급, 보통, 천천히로 나누었지만 시간을 정확히 정하지 않아서 긴급이어도 코드 리뷰가 늦어지는 상황이 있었다. 2차 스프린트 회의에서 그동안 아쉬웠던 리뷰, label 관련 의견을 내어서 프로젝트를 빠르게 진행되었다. 예를 들어, 긴급인 경우 코어 타임 이내에 리뷰를 하고 수정해서 빠르게 머지시킨 후 다음 업무를 할 수 있게 했고 보통인 경우 다음 코어 타임 전까지 리뷰를 하는 룰을 정했다.
api 초안 만들기, base 컴포넌트, rank Page, 칭찬하기 page 등 구현했지만 제일 기억에 남는 건 rank Page 구현이다.
const sortUsers = useCallback(async () => {
const allUsers = await getAllUsers();
const channelPosts = await getChannelPosts(channelId);
const allUserInfo = allUsers.map(({ image, fullName, _id, posts }) => {
return { _id, image, fullName, [TTABONG]: posts.length, [COIN]: 0 };
});
channelPosts.forEach(({ title }) => {
const { type, receiver } = JSON.parse(title);
for (let i = 0; i < allUserInfo.length; i += 1) {
const { _id, coinCount } = allUserInfo[i];
if (receiver._id === _id) {
const count = type === 'TTaBong' ? coinCount + 1 : coinCount + 2;
allUserInfo[i].coinCount = count;
break;
}
}
});
return allUserInfo;
}, []);
만약 코인(따봉)수가 각 User 객체 내에 받아오면 굳이 이렇게 구현할 필요는 없었지만
어떻게든 구현을 해야하기 때문에 있는 api로 로직을 만들었는데 나에게는 꽤 즐거운 경험이었다.
api를 어떻게 사용해야 할지 생각도 많이 하게 되고 고민도 많이 할 수 있었다.
아직 데브코스에 마지막 팀 프로젝트가 남아있다. 더 좋은 결과물을 내기 위해 미리 준비해야 할 것들을 생각해 보았다.
프로젝트 정말 고생 많으셨습니다 👏👏👏👏