프로젝트 회고 : 칠리소스

·2022년 11월 28일
2

개발일지 & 회고

목록 보기
72/72

🌶️ 당신의 협업을 도와줄 오픈소스, 칠리소스

기획의도

‘오늘 내 할 일이 뭐였더라?’ 하며 JIRA에 들어가보고, ‘프로젝트 마감이 언제지?’ 하면서 간트차트를 열어보고, ‘팀원이 이 일을 끝냈을까?’ 궁금할 때 일일이 물어보는 것들.. 😮‍💨 너무 불편하셨죠? 이제 저희 칠리소스와 함께 편하게 프로젝트하세요!

주요기능

JIRA 연동

스프린트마다 반복 사용되는 이슈를 빠르게 생성

캘린더 기능

어떤 이슈를 언제 진행할지 일정 생성 가능, 팀원과 공유하여 팀원의 스케줄 확인 가능

간트 차트

캘린더를 세분화한 기능으로 시간별로 업무 스케줄링 가능

GitLab 연동

Merge Request, Commit 로그 확인

주요기술

MSA로 설계한 서비스별 모듈화
Spring Cloud Feign
ELK, Zipkin, Prometheus, Grafana
eureka 및 gateway를 활용한 로드밸런싱 및 서비스의 스케줄링
JWT Authentication
REST API

🔨 프로젝트 개발 환경 및 사용 기술 스택

👨‍👩‍👧‍👦 팀 소개

프로젝트 결과물

ERD

https://www.erdcloud.com/d/s59yXCYJHJKTYsKoQ

wire-frame

https://www.figma.com/file/TwwrhfeSB3e5IsgEMzo9zb/chili_source?node-id=115%3A255&t=a3HO57v64r99Ph3i-1

api 명세서

https://docs.google.com/spreadsheets/d/1RejvfKEZDWMobJbOnOz__TSnC4yjO7vEhjzHsLLAjjw/edit?usp=sharing

회고

프로젝트 사전 준비

팀모집

이번에는 잘하는 사람 보다는, 하고 싶었던 사람들과 팀을 이뤘다. 실력적인 부분도 중요하겠지만, 그동안 여러 사람과 이야기 하며 소통이 잘되는 사람과 함께 했을 때, 어떤 결과물이 나올지 궁금하기도 했다.

오픈소스

이번 프로젝트의 주제는 오픈소스이다. 어느정도 관심도 있었고 살면서 언젠가 부딪혀 봐야하는 주제라면 미리 해보는 것이 좋다는 생각이 들었다. 함께하는 팀원 모두 상의해본 결과, 모두 함께 오픈소스 트랙을 진행해보기로 결정되었다.

기획

기존의 한 팀원이 하고 싶어했던 이이디어를 기반으로 여러 기능을 추가하였다. 기획한 내용을 요약하자면 다음과 같다.

  • 기존의 협업툴을 좀 더 사용하기 편하게 만들어주는 브릿지 솔루션
  • 자주 사용하는 이슈를 저장해두는 기능
  • 이슈를 쉽게 불러오는 기능
  • 대량의 이슈를 쉽게 만드는 기능
  • 달력 혹은 간트차트를 통해 일정을 확인하는 기능
  • 위의 기능들을 유저가 원하는대로 추가하거나 옮기는 것이 가능한 위젯 기능

브릿지 솔루션인 만큼 기존의 서비스들의 API를 활용하기 때문에, 기획 시 나타날 수 있는 에러사항이 많았다.

예를 들어, 기존의 Jira, GitLab 을 좀 더 사용하기 용이하게 만들어주는 기능이기 때문에, 기존의 서비스들에 가입이 되어있고, 토큰을 발급받아 얻어오는 작업이 필요하다. 일반적으로 토큰이 활용 되는데, 토큰은 유효기간을 가지고 있기 때문에 토큰을 정상적으로 저장하는 데 예상 가능한 서비스 플로우가 4가지나 나타났다.

  • 정상적으로 토큰을 가져와 저장한 경우
  • 올바르지 못한 토큰을 가져오는 경우
  • 토큰은 올바르나 유효기간이 만료된 토큰을 가져오는 경우
  • 저장하고 사용하는 도중에 토큰이 유효기간이 만료되는 경우

이러한 상황들을 개발 전에 모두 확인해보기 위해, 팀이 향후 만들 서비스 플로우 흐름을 익히기 위한 회의를 수차례 진행하였다. 예상할 수 있늰 에러를 생각해보고, 해결책을 찾으며 전체 프로세스를 구축하여 모든 팀원이 공유하기까지 약 2주정도의 시간이 걸렸다.

복습의 시간

이전 프로젝트와는 다르게, 이번에는 새로운 기술을 배워보기 보다는 기존의 기술 지식을 좀 더 복습해보기로 했다. 이번에 함께하는 프론트 팀원들이 리액트와 타입스크립트를 공부하고 싶어하기도 했고, 나 역시도 기존의 기술 지식에 대해서도 아직 부족함이 많았기 때문에 이러한 결정을 하게 되었다.

물론 아예 도전이 없는 것은 아니었다. 프로젝트 자체가 오픈소스이기 때문에, 프로젝트를 오픈소스화 하기 위한 방안들을 구현해야한다. 이에 대한 이야기는 뒤에 이어서 자세히 해보겠다.

KEEP

컨벤션

기존에도 컨벤션을 구상하여 진행하기는 했으나, 시간이 지날수록 흐지부지 되는 경우가 많았다. 이번 프로젝트에서는 이부분을 확실히하는 컨벤션을 제작해보았다. 확실히 컨벤션을 구체적으로 만들 수록 코드의 통일성이 높아져, 코드를 이해하기에도 에러를 잡기에도 훨씬 쉬워졌다.

현재 프로젝트에서 정리한 프론트엔드 컨벤션은 다음과 같다.

https://beberiche.notion.site/ce867e71a9954a64aebeab38fc5bf9cd

Problem

완성도

이전의 프로젝트에서도 한번 이야기 했던 문제사항이 이번 프로젝트에서도 발생했다. 좋은 아이디어와 기능을 가진 프로젝트 임은 분명하지만 기존 기획 대비 볼륨이 많이 작아졌다. 볼륨이 작아지게 된 계기들을 한번 생각해보자.

컴포넌트 및 디자인을 직접 구현하였다. 물론 이러한 경험은 중요하지만, 7주간의 프로젝트에서는 좋은 선택은 아니다. MUI, BootStrap 등 다양한 대안들이 존재한다. 해당 대안을 사용하지 않은 것이 좋지 않은 결과를 가져오게 되었다.

프로젝트 후반부에, 코드의 일부를 MUI 를 반영시켜 진행해보았다. 처음 써보았는데, 사이드 프로젝트에 매우 도움이 될 듯 하다.

새로운 기술에 대한 이해 시간이 많이 필요했다. 모든 팀원이 새로운 기술에 대한 시행착오 시간이 소모되었으며, 이러한 부분이 프로젝트에 좋지 않은 결과로 다가왔다.

여기서 말하는 좋은 결과는 단순히 등수, 상에 대한 이야기이다. 취업을 하기위해 모인 자리인 만큼 등수 나 상은 매우 중요하다. 코드적인 관점, 개발자적인 관점에서라면 당연히 이 부분은 문제가 되지 않는다. 오히려 긍정적인 방향이라고 생각한다.

Try

백앤드

자율 프로젝트 시작부터 계속 생각했던 부분이다. 나는 프론트앤드, 백앤드 모든 영역에 관심이 있다. 정확히는 나 홀로 웹 서비스 전반의 영역을 모두 다룰 수 있는 개발자가 되고 싶다. 현재 3번의 프로젝트가 끝이났으니, 늦은 백앤드 공부를 시작하려고 한다. 우선은 다시 SpringBoot 관련 공부를 진행하며, JPA 를 공부해보려고 한다. 다음 프로젝트 회고는 팀이 아닌 나만의 회고를 진행하게 되기를 바란다.

프로젝트 결과물

랜딩페이지

서비스 이용 및 오픈소스 기여 가이드 페이지

소셜 로그인

유저 정보 수정

프로젝트 생성 및 지라, 깃랩 연동

프로젝트 선택 및 설정

팀원 추가 및 권한 변경

위젯 추가

이슈 템플릿 생성

미들 버킷에 담기

미들 버킷을 활용한 대량의 이슈 생성

캘린더 이슈 공유

캘린더 이슈 추가

캘린더 이슈 수정

간트차트 시간별/일별/월별/연도별 일정 확인

간트차트 시간 단위로 세분화 일정 조정

GitLab 최근 Merge 내역 조회

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

1개의 댓글

comment-user-thumbnail
2022년 12월 1일

잘 읽었습니다

답글 달기