드디어 나의 프로젝트가 끝이 났다!
이전에도 많은 작은 프로젝트들을 했지만 내 스스로
기획하고 팀원들을 꾸린 뒤에 개발환경, 배포환경을 설정
하며 기능들을 만들고
배포
까지 한 프로젝트는 이번이 처음이다.
한 마디로 하나부터 열까지 전부 경험해본 것이다.
첫 프로젝트라 그런지 회고 글에 신경이 많이 쓰였다. 그래서! 우롱차 마냥 3번의 글로 우려 먹을 계획이다
이 글은 회고의 첫 번째 글로 애자일
과 스프린트
에 대한 글이다.
그래서 내가 만든 건 무엇이냐.
일전에 slack-bot 을 만들게 된 이유와 비슷한데, 현재 나는 미라클 코딩
이라는 이름으로 하는 Daily-TIL 스터디를 하고있다.
"스터디를 하던 중에 팀원들의 TIL을 좀 더 쉽게 모아서 보는 홈페이지가 있었으면 좋겠다."
라는 생각에서 이 홈페이지를 만들기 시작했다.
먼저 프로젝트를 시작하기 전에 그 스터디에서는 github 의 pr 형태로 til 을 서로 확인하고 있었기 때문에 github api 를 이용하면 pr 목록을 가져올수있고 그것 이용해서 더 쉽게 TIL 아카이빙을 할수있지 않을까? 라는 대략적인 계획은 가지고 있었다.
이 프로젝트에는 비슷한 서비스를 하는 좋은 롤모델 홈페이지
가 있었다.
blackCoffeeStudy 라는 곳에서 이미 비슷한 시스템으로 진행을 하고 있었기 때문에 디자인과 아이디어 모두 많이 참고하였다.
롤 모델 페이지
가 있는 것과 없는 것은 프로젝트를 계획할 때 많은 차이점이 있었는데, 비슷한 서비스를 하는 페이지를 참고하면서 어떤 기능들을 어떤 디자인으로 해야하는지 먼저 서비스를 실제로 하고 있는 웹 사이트를 보고 가닥을 잡을 수 있어서 좋았다.
홈페이지 기능과 디자인을 추상화 시킬 때 편리했다.
목적에 해당하는 기능들을 브레인 스토밍해서 마구 추가했다.
날짜에 따른 필터기능
태그에 따른 필터기능
로그인기능
컨디션 통계기능
.. 등등
생각나는 기능들을 추가하다 보니 생각보다 많은 feature 들이 생각이 나서 어떻게 완성해 나갈지 막막했었다.
우리는 모든 소프트웨어 하드웨어에서 version 이라는 말을 쓰고있다. 그냥 지금 바로 터미널 창을 열어서 node -v
(노드가 깔려있다면) 를 입력한다면 v14.17.4 와 같은 version이 나올 것이다.
version 체계는 다음과 같다.
v <전체를 뒤엎을 변화>,<기능 수정, 기능 추가>,<버그, 내부 적 코드 보완>[-<상태코드><수정카운트>]
이러한 버젼체계를 이용해서 우리 팀원이 이 프로젝트에서 하고싶었던 feature 들을 가장 먼저 할 수 있는 것과 나중에 업데이트 해야할 일들 을 순위를 매겨서 버젼으로 나누게 되었다.
ver 0.0
- git hub api 를 이용해서 TIL 을 가지고 옴
- TIL 을 유저에 따라서 필터링 가능
- TIL 을 클릭하면 해당 링크 새탭으로 열림
- 유저가 입력한 컨디션에 따라서 다른 이모지를 보여줌
ver 1.0(예정)
- DB , Back sever 구현
- 로그인 기능 구현 -> git-Auth // 로그인은 되지만 접근 못하게
- 유저들의 출석 , TIL 저장한뒤에 user 상세페이지에서 분석
ver 2.0 ~(예정)
- 기수 별로 다른 페이지
이렇게 version 별로 나눠서 우리의 팀원들은 스프린트다운 스프린트
를 할 수 있게
되었다.
참고 버전 체계
4. 그렇게 우리는 2주간(2021-07-29 ~ 2021-08-06) 스프린트로 version 0.0 을 배포하는 것을 목적으로 달리게 되었다!
스프린트 애자일 스크럼.. 요 삼형제는 내가 코드스쿼드 하면서 한 번씩은 들어봤고 그렇게 해보려했지만 크게 와닿지 않은 아이들중 하나다.
애자일(Agile)
은 민첩하다 라는 뜻으로 분석 → 설계 → 구현 → 테스트 → 통합 → 유지보수 의 폭포수 모델의 반대 개념의 개발 방법론이다. 애자일 하다는 것은 이 단계들을 짧게 짧게 쳐(?) 내서 1~4주간 배포할 수 있을 만큼의 일들만 하고 배포하고 회고하고 다시 1~4주간 배포할 수 있을 만큼의 일들만 개발하고 배포하는 개발 방법론을 말한다.
이렇게 1~4주간의 기간을 스프린트
라고 부른다.
하나의 서비스를 버전 0 , 버전 1 , 버전 2 이렇게 스프린트 단계별로 설계하고 2주안에 개발이 가능한 부분들만 개발을 하고 배포까지 한 싸이클을 완료했다.
그렇게 서비스를 이어나간다
라는 생각을 하게 되니 애자일과 스프린트가 왜 필요한지 폭포수와 어떻게 다른지 어느정도 이해가 갔다. 코드스쿼드에서는 주어진 미션을 2주간 하고 마무리를 했기 때문에 어떤게 애자일 한거지?
라고 뇌 속 에서 계속 의문이 들었다.
실제로 면접때 내가 애자일 하게 팀과 협업을 했다. 라고 말했다가 면접관이 스프린트 기간을 얼마나 했어요?
라고 다시 되물었던 기억이 되살아 났다. 그렇다. 면접관 입장에서는 프로젝트라고 해놓은 것들이 전부 그렇게 까지 길게 안한 것들 인데 애자일 하게 했다니? 조금 갸웃? 했을 것이다. 거기서 애자일이 무엇이냐는 대답에 헛소리를.. 했던 기억이난다
그래서 정리하자면,
애자일은 엄청 큰 서비스를 만들 때, 그것을 스프린트Backlog 단위로 쪼개고, 1~4주 내에 배포하고 회고하고 다음 스프린트로 넘어간다. 스프린트와 스프린트 사이에선 분석 → 설계 → 구현 → 테스트 → 통합 → 유지보수 의 단계를 넘나들수 있다 라고 말할 수도 있고 , 기능 단위의 프로토타입을 기반으로 일한다고 말할수도 있다.
아직 배우고있는 주니어의 뇌피셜입니다. 현업에서는 다르게 적용된다면 댓글로 피드백 주시면 감사하겠습니다.
이번 프로젝트는 무사히 0.0.1 version 을 배포를 마쳤고 놀랍게도 배포를 하자마자 무려 3가지의 버그가 발생하였다. 회사였으면 감봉, 시말서감 이슈에 세가지 등록하고 0.0.2 version 배포 준비중이다.
🌈 배포 주소 : https://www.miracle-coding.com/🌈