본문 바로가기
개발자 상우의 지금 이야기/THXSTORE🔥

THXSTORE를 함께하는 팀원들을 소개합니다!✌

by upswp 2021. 4. 30.
Name 박대현 성정욱 박상우 최동식 황영준
Profile
Position Frontend & UI/UX Frontend & UI/UX Project leader
& Backend Develop
Backend Develop & CI/CD Backend Develop
Git @daep93 @gluwein @upswp @pertus123 @junjun0905

 

안녕하세요! THXSTORE를 진행하는 강철코딩팀입니다!

저희는 현재 SSAFY 4기를 진행 중이며

SSAFY에서 마지막으로 진행하는 🔥FINAL PROJECT🔥를 진행하기 위해 뭉쳤습니다.

 

-강철코딩- 팀은 어떤팀인가요?

 

저희 팀은 함께 학습하고 함께 모든 걸 이겨내는 팀입니다.

SSAFY 1년간의 대장정의 마무리를 이번 THXSTORE를 통해 이루고자 노력하고 있습니다.

 


THXSTORE는 어떤 프로젝트인가요? 

THXSTORE는 음식점을 운영하시는 자영업자분들을 위한 사회공헌 프로젝트입니다.

SSAFY에서 진행하는 2학기 마지막 프로젝트로 자율 주제를 택하여 직접 명세서 설계부터 개발까지 이뤄지고 있습니다.

THXSTORE에 대한 자세한 내용은 추후 블로그에 글을 업로드해보겠습니다.

 


 

THXSTORE 프로젝트는 어떻게 협업하고 있나요?

간단하게 저희 팀이 그동안의 협업 과정을 소개해드리겠습니다.

 

SSAFY GitLab을 이용한 형상관리

GitLab의 메인과 개발진행 중인 Git Graph입니다.

 

THXSTORE는 SSAFY에서 관리하는 별도의 GitLab을 이용하여 작업하고 있습니다.

기본적으로 Git Flow 방식을 기반으로 팀 내에서 정한 Convention을 통해 형상관리를 진행하고 있습니다.

또한 MR을 통한 적극적인 코드 리뷰를 진행하며 Backend와 Frontend의 commit들을 관리하고 있습니다. 이 과정에서 수정과 작업을 바탕으로 검증된 코드를 Merge 하고 있습니다.

자세한 코드 리뷰에 관한 글은 추후 블로그에 작성해 보겠습니다. 

안정적인 개발 환경 문화를 팀 내의 가장 중요한 원칙으로 정하여 품질 높은 코드를 작성하기 위해 노력하고 있습니다.

 

위의 그래프는 현재까지 진행된 그래프입니다. (2021년 04월 30일 기준)

 

 


SSAFY JIRA를 이용한 이슈관리

현업과 유사한 환경에서 이슈를 관리하기 위해 적극적으로 JIRA를 이용하여 이슈관리를 하고 있습니다.

매일 아침마다 스크럼 미팅을 가지며 하루 동안의 작업을 애자일 방식을 통해 진행하고 있습니다. 개발을 학습하고 성숙한 개발자로 나아가는 과정에서 절대 쉽지 않은 과정이지만 매일매일을 목표한 바를 채우기 위해 노력하며 모든 동료가 한마음으로 개발을 이어나가고 있습니다.

 

스크럼 회의

또한 JIRA를 이용하여 스크럼 회의를 이어나가고 있습니다. 대시보드로 통계된 수치를 확인하고 전날 작업된 이슈들과 진행 중인 이슈들의 현재 상황을 점검하고 프로젝트의 전체 과정을 매일매일 점검하며 작업하고 있습니다.

 

스프린트

스프린트는 1주일로 잡고 작업을 하고 있으며 현재 3번째 스프린트를 진행하고 있습니다. (2021년 4월 30일 기준)

현업과 비교하여 짧은 스프린트 기간이지만 SSAFY의 7주간의 짧은 프로젝트 일정을 소화하기 위한 방안으로 생각하고 있습니다. 

 

댓글 기능

JIRA를 이용하여 적극 활용하고 있는 기능은 바로 댓글 기능입니다. 개발을 이어나가다 보면 쉽게 잊히는 중요한 대화들을 댓글을 통해 소통하며 작업하는 과정에서 소통의 부족이 일어나지 않도록 노력하고 있습니다.

 

버전 관리

JIRA의 Releases 기능을 이용하여 단계적으로 처리하기 위해 버전 관리에 힘쓰고 있습니다. 많이 부족한 버전 관리이지만 버전 관리를 통해 작업의 우선순위를 정하고 Frontend와 Backend의 약속을 통해 개발이 이어져 나가며 함께하는 개발이 가능하고 있습니다. THXSTORE에서는 기본 기능부터 핵심기능까지 명세서를 기반으로 세밀하게 나눠서 버전을 관리해보고 있습니다.

 

필터 기능

JIRA의 가장 큰 장점인 필터 기능을 통해서 이슈를 관리하고 있습니다. 

Components를 이용한 기능별 이슈를 관리하고 있습니다. 각 이슈를 생성 및 관리하는 과정에서 Component를 설정하여 한눈에 해당 이슈를 확인할 수 있도록 모니터링하고 있습니다.

또한 JQL Query를 이용하여 이슈들을 빠르게 확인할 수 있도록 Filter를 이용하여 관리하고 있으며 이를 이용하여 대시보드를 직접 설계하여 팀에서 이슈를 쉽게 모니터링할 수 있도록 JIRA를 관리하고 있습니다. 

 

추후 JIRA에 관한 자세한 내용은 블로그에 추가로 작성해 보겠습니다.


Github의 wiki를 이용한 모든 내용은 문서화 

 

upswp/SSAFY-FINAL-PROJECT

🔥SSAFY 4기 FINAL 자율 PROJECT🔥. Contribute to upswp/SSAFY-FINAL-PROJECT development by creating an account on GitHub.

github.com

프로젝트를 진행하며 잊히기 쉬운 내용들을 wiki에 적어보며 모든 로그를 남기고자 노력하고 있습니다.

wiki를 이용하고 있는 내용은 아래와 같습니다. 

  • Home : 프로젝트의 진행상황을 한눈에 볼 수 있는 공간입니다.
  • Convention : Convention에 대한 내용을 정리한 공간입니다.
  • Issues : 프로젝트를 개발하며 발생한 이슈들을 문서를 통해 남기며 기록하는 공간입니다.
  • Meeting Log : 프로젝트를 진행하며 중요한 스크럼 회의 내용을 작성하는 공간입니다.
  • Setting : 프로젝트를 설치하는 과정과 추후 배포되어 프로젝트를 동작하기 위한 설정을 작성할 공간입니다.
  • Knowledge sharing : 개발 과정에서 학습한 내용들을 동료들과 함께 공유하는 공간입니다.

현재 wiki의 경우 public으로 공개되어 관리되고 있습니다. 링크는 위에 있습니다!

GitLab의 wiki를 사용하지 않는 이유는 프로젝트가 SSAFY에서 종료되고 Github으로 이전하는 과정에서 어려움이 많아서 프로젝트가 종료되고 이전할 Github에서 wiki를 작업을 하고 있습니다.

(Github이 개인적으로 여러 설정이 있어서 편하기도 합니다! 😃)


Webex를 이용한 비대면 개발

주 단위로 2021 현재까지 진행한 미팅 평균

프로젝트를 진행하는 평일 09-18시까지는 Webex를 이용하여 프로젝트를 진행하고 있습니다. 코로나-19로 인하여 오프라인 개발이 어려운 부분을 Webex를 이용하여 오프라인과 동일한 개발환경을 구축하기 위해 사용하고 있습니다. 

세션을 나누어 Frontend와 Backend를 개발을 진행하고 전체 회의는 세션 밖에서 이야기하며 소통하고 있습니다. 모두를 위한 매너로 천장 샷? 꺼진 카메라, 가상 배경만 나오는 모습은 특별한 상황이 아닌 이상 지양하고 있습니다.

 

Webex를 이용하여 프로젝트를 진행하며 가장 큰 장점은 장소의 제약을 받지 않고 개발을 이어나갈 수 있다는 장점입니다. 또한 개발 특성상 컴퓨터 앞에서 오래 머무는 경우가 많은데 Webex를 이용하여 소통하게 되면서 빠른 소통을 이어나가고 있습니다. (하지만 오프라인이 너무나 좋다..)


Mattermost를 이용한 소통

Mattermost는 아래와 같은 채널로 구분하여 작업하고 있습니다.

  • 땡 스토어: 전체 공지와 모두에게 전할 이야기를 공유하는 공간입니다.
  • 링크 방: 레퍼런스와 공식문서, 블로그 자료들에 대한 공간입니다.
  • 자료방 : 프로젝트를 진행하며 공유하는 자료들을 모아두는 공간입니다.
  • 잡담 : 자유롭게 프로젝트에 대해서 이야기하는 공간입니다.
  • Git log : Git과 관련된 notification을 제공받는 공간입니다.
  • Jenkins log : Jenkins와 관련된 notification을 제공받는 공간입니다.
  • JIRA log : JIRA와 관련된 notification을 제공받는 공간입니다.
  • secret file : 프로젝트와 관련하여 보안과 관련된 파일을 관리하는 공간입니다.

Mattermost를 적극적으로 이용하는 이유는 두 가지입니다.

  • 프로젝트에 대한 진행 상황을 공간을 분리하여 채널별로 성격에 맞는 대화를 통해 개발과 관련된 기억을 오래 보존하기 위해서입니다.
  • Git에 push를 진행하고 Jenkins에서 자동화 배포가 이뤄지고 해당 이슈를 JIRA 이슈 번호와 연관 지어 smart commit을 진행. 이 모든 과정을 한 번의 commit으로 모두 확인할 수 있는 모니터링을 위한 공간입니다.

Jenkins log, JIRA log, Git log 채널입니다.


REST Docs를 이용한 소통

Backend에서 개발하는 REST API 개발 상황을 실시간으로 적용시키는 REST Docs를 통해 TDD를 기반으로 개발된 프로젝트를 Frontend 개발자 분들과 소통하기 위한 용도로 사용하고 있습니다. 

또한 REST API를 보다 RESTful 하게 개발하기 위해 사용하고 있습니다. Self-descriptiveness, HATEOAS 한 REST API를 개발하여 Frontend와 소통하기 위해 적극 활용하고 있습니다. 

REST Docs와 관련하여 자세한 내용은 추가적으로 블로그에 글을 작성해 보겠습니다.

 


글을 마무리하며

프로젝트를 진행하며 가장 많이 성장하고 있고 가장 많은 애정을 가진 프로젝트입니다. 부족한 글재주이지만 프로젝트를 진행하며 발생하는 이슈, 학습한 내용들을 열심히 기록해 보겠습니다. 

 

THXSTORE 파이팅 😃

 

v.2.0.0 보러가기!

 

신난 저희들의 모습을 보여드리죠! [THXSTORE 팀소개 v.2.0.0]✌

 

upsw-p.tistory.com