토이프로젝트 해방일지 - 1. 컨셉 잡기 / 기능 떠올리기 / 요구사항 만들기

백여우·2022년 9월 5일
10

토이프로젝트

목록 보기
1/3
post-thumbnail

5월에도 토이프로젝트를 하나 하긴 했지만
아무런 기획이나 계획 없이 막무가내로 만든, 그야말로 장난감이었기 때문에
이력서에 넣기에는 많이 아쉬웠습니다.

그동안 배운 기술 지식 외에도
데이터베이스개론에서 배운 데이터베이스 설계, 패스트 캠퍼스에서 배운 깃 브랜치와 이슈, 프로젝트 사용법 등

제가 알고있는 체계적인 도구들을 동원하여 최대한 완성도있는 프로젝트를 만들어보자 결심했습니다!


1. 컨셉 잡기

어떤 주제로 프로젝트를 만들면 좋을까를 고민하다
7월경 트위터에서 가볍게 써봤던 글이 떠올랐습니다.



오 세상에. 고마워요 7월 15일의 나!

조금 더 구체적으로 컨셉을 잡아보면

  • '리팩토링 대상 코드', 즉 리팩토링이 필요한 못난이 코드를 업로드할 수 있고,
  • '리팩토링 대상 코드'를 다른 사람들이 보고 리팩토링하여, '리팩토링 한 코드'를 업로드할 수 있어요.

핵심 컨셉은 사실 이게 다에요. ㅎ-ㅎ

'리팩토링'이라는 거창한 주제를 달고 있지만
'리팩토링 대상 코드'를 게시글로, '리팩토링 한 코드'를 댓글로 치환해 생각해보면

결국 글 내용으로 코드만 작성하도록 강제한 게시판 서비스와 같기 때문에,
큰 부담 없이 도전해볼만 한 프로젝트 컨셉이라고 생각해요.

2. 기능 떠올리기

패스트캠퍼스의 실무형 프로젝트 클론코딩 강의를 독학하면서, 실무와 유사하게 프로젝트를 기획하고 설계하는 것을 가볍게 따라해본 경험을 떠올렸습니다.

그 때의 경험을 되살려 이번 프로젝트를 설계하는 데에 적용해보기 시작했어요!

먼저, 저 혼자 덩그러니 있는 쓸쓸한 슬랙 워크스페이스를 하나 만들어,
프로젝트에 들어갔으면 하는 기능들을 뽀짝뽀짝 적어나가기 시작했어요.

초기 기능 컨셉을 보시면
코드 언어 선택, 리팩토링 요구사항, 채택과 같이 프로젝트에 특화된 기능을 제외하면 일반적인 게시판 서비스에서도 자주 볼 수 있는 평범한 기능들임을 알 수 있을 거에요.

남들은 떠올릴 수 없는 기가막힌 기능을 굳이굳이 만들어 어렵고 불안정한 서비스를 만드는 것보다,
평범하지만 기초가 튼튼하고 안정적인 기능을 설계하고 구현해서 트래픽에도 안전한 프로젝트를 만들고 싶다는 의지를 반영했습니다.

2-1. 뷰 페이지 샘플 만들기

토이프로젝트를 설계하는 중에 프론트엔드 파트를 담당해주실 든든한 팀원(@Romuru0303)분이 생겼습니다!
팀원과 프로젝트 컨셉을 잘 설명하고 의견을 나눌 수 있도록
만드려는 프로젝트가 어떤 느낌인지 사진으로 보여드릴 수 있어야겠다 생각해서,

예전부터 자주 사용하던 디자인 제작 사이트를 이용해
프로젝트의 뷰 페이지 샘플을 제작했습니다!


팀원분께 보여드렸더니 다행히 바로 느낌이 왔다고 하셔서 뿌듯 :3


(트위터에 올렸더니 칭찬받아서 여기에도 자랑! :) )

3. 요구사항 만들기

뽀짝뽀짝 만든 기능 문서를 바탕으로
진지하고 구체적인 요구사항 문서를 작성하기 시작했어요.

데이터베이스 설계부터 코드를 사용한 기능 구현에 이르기까지 프로젝트 전반에 걸쳐 계속 읽어보고 체크해야 할 문서이기 때문에 최대한 자세하고 알아보기 쉽게 쓰는 것을 목표로 작성했습니다.

공부 완전 초반 때 부스트코스라는 네이버 사이트에서 웹프로그래밍 공부를 했는데,
부스트코스에서 내준 과제 문서의 요구사항 항목이 엄청 자세하고 알아보기 쉬웠던 기억이 났습니다.
요구사항 문서를 쓸 때 그 때의 경험을 되살려 썼더니 꽤 좋은 문서가 나온 것 같아요! :)



가볍게 상상하고 적어두었던 기능 하나하나를 구체적인 요구사항 문서로 작성하니 정말 길고 복잡해지기 시작했어요.
이거 처음부터 너무 큰 산을 쌓는 것 아닌가 하는 생각이 들었습니다 :(

그래서 우선 최소 기능 제품(mvp)를 먼저 만든 후 차차 버전 업을 해가며 추가로 필요한 기능들을 만들어 붙이는 게 낫겠다 생각해서, 최소 기능이 아닌 기능과 요구사항들은 가차없이 취소선을 그으며 분량을 줄여나갔어요!

이후 약간 줄어든 요구사항을 프론트엔드 파트의 요구사항, 백엔드 파트의 요구사항으로 분류하여 슬랙의 채널에 나누어 게시했어요.


요구사항은 프로젝트를 진행하면서 얼마든지 개선되거나 삭제될 수 있다는 걸 감안하더라도,
뷰 페이지가 세세하게 구현해야 할 디테일이 많다 보니 프로트 파트 요구사항이 압도적으로 많이 나왔습니다.
프론트 파트 맡으신 팀원분께 묵념. ( ._.)_

앞으로 비즈니스 로직과 예외 처리 관련 요구사항을 착착 추가하기 시작하면 백엔드 파트에서 할 일도 무진장 늘어날 것 같아요. 미래의 나에게도 묵념. ( ._.)_

profile
얼레벌레

1개의 댓글

comment-user-thumbnail
2023년 5월 11일

안녕하세요 :) 컨셉 잡기와 요구사항 쓰는 부분에서 감명깊게 봤어요. 혹시 본문에서 말씀하신 '디자인 제작 사이트'는 어떤걸 쓰시는지 알 수 있을까 해서 댓글 달아봅니다.

답글 달기