본문 바로가기

프로젝트 진행기

끝판왕의 프로젝트_Node.js 뉴스피드 만들기_팀프로젝트

# 들어가며..

Node.js에서 express 프레임워크를 이용한 서버구축에 대한 실습이 지난 과제로 끝나고 본격적인 팀 과제가 진행되었다. 

가장 큰 목표는 '뉴스피드 만들기' 즉 기존에 실습한 CRUD의 결정체라고 할 수 있겠다 !! 

# 해야할 것
1. 서비스 기획
- 문제 정의 
- 해결 방안

2. 프로젝트 준비
- S.A작성
- 와이어 프레임 구상
- API 명세서 작성
- ERD 작성
- Git repository 생성 및 연결

 

# 1. 서비스 기획

1) 주제 선정

서비스의 방향성을 잡기 위해 어떤 서비스를 만들 것인가에 대한 고민이 시작되었다. 

주제 선정을 위해 팀원들의 관심사를 파악하고 공통의 관심사를 주제로 진행하고자 했다. 

 

그 이유는 모두가 관심이 있는 분야여야 그 분야에서 해결하고자 하는 것들과 필요한 것이 무엇인지 쉽게 떠올릴 수 있을 것이라 생각했다.

 

하지만 !

4명 밖에 없는 팀이지만..ㅎㅎ 관심사는 모두 달랐다. (개발, 경제, 옷, 게임, 건강 등...) 

 

차선으로 우리가 겪을 수 있는 문제를 찾아보고자 했다.

프로젝트가 진행되거나 종료될 경우 항상 하는 말에서 힌트를 얻어 아래와 같이 문제를 정의하고 해결하고자 했다.

<문제 정의>
내일배움캠프에서 진행한 프로젝트에 대해 자유롭게 의견을 교류할 수 있는 서비스의 부재
- 깃헙 레포지토리 주소를 공유해야만 확인할 수 있음
- 교류가 적은 사람들의 프로젝트를 확인하기에는 부담스러움이 있음
- 진행한 프로젝트들을 한눈에 확인하기가 어려움 

<해결 방안> 
진행한 프로젝트를 자유롭게 올리며 피드백을 받는 서비스 개발
- 프로젝트에 대한 요약과 핵심 기능 등을 등록할 수 있어 많은 사람에게 프로젝트를 보여줄 수 있다.
- 과거에 했던 프로젝트도 한눈에 확인할 수 있다.

<기대효과>
- 서비스가 활성화 된다면 내배캠에서 진행한 프로젝트에 대해 전반적으로 파악할 수 있음
- 다른 기수, 다른 반과의 교류도 가능
- 타 프로젝트를 편하게 참고하며 개인의 개발역량도 성장할 수 있는 긍정적인 영향 기대

 

최종적으로 우리팀의 서비스는 SpartaFolio라는 이름의 서비스로 출발하기로 결정되었다. 

(물론 프로젝트를 공유하고 교류하는 다른 서비스가 많지만 우리는 내배캠 이라는 고정적인 수요층이 있다고 판단했다.) 

 

#2. 프로젝트 준비

1) S.A 작성 

본격적인 프로젝트 진행에 앞서 팀원들과의 약속과 목표를 정하는 S.A를 작성했다.

우리 조의 주된 목표와 규칙은 다음과 같다.

Ground Rules
- 프로젝트는 화면 공유하면서 
- 주저하지 않고 물어보기 
- 팀원 간 이끌어주면서 진행하기
- 회의 : 14시 / 코드 리뷰 : 19시 진행 

목표
- 기본 CRUD기능 구현하기
- 완성하고 추가 기능까지 해보기
- 공유하기 기능 도전
- 뒤쳐져도 끝까지 따라가기
- 질문 하루에 하나씩 하기

 

2) API 명세서

API 명세서는 위 첨부한 노션 페이지에 있는데 강의에 함께 작성했는데 기존 과제에서 작성해보았던지라 빠르게 진행되었다.

(고수이신 팀장님 주도하에 빠르게 빠르게 ...)

 

3) ERD 명세서

 요 부분은 프로젝트/회원가입에 대한 CRUD를 작성하는 분들이 작성해주셨다. 

https://drawsql.app/teams/spartafolio/diagrams/spartafolio

 

SpartaFolio | DrawSQL

Database schema diagram for SpartaFolio.

drawsql.app

 

4) 와이어 프레임 구상

다른 프로젝트 공유 서비스를 벤치마킹하여 와이어 프레임을 구상했다.

https://www.figma.com/file/0RmrCJNYAnxAL7W3352RBI/nbcamp_Node.js_TeamProject_A-2?type=design&node-id=0-1&mode=design&t=2tZHilytOhuNB8kP-0

 

Figma

Created with Figma

www.figma.com

현업에서도 많이 사용하는 피그마 라는 툴을 이용했고, 우리가 원하는 기능을 최대한 아름답게 표현하고자 했다. 

 

5) 깃 레포지토리 연결

팀장님께서 초기 세팅 후 깃헙에 올려주셔서 팀원들은 해당 레포지토리에서 클론하여 사용했다. 

https://github.com/Avoler0/nbcamp-spartafolio

 

GitHub - Avoler0/nbcamp-spartafolio: 내일 배움 캠프 - 6주차 - 노드 숙련 개인 프로젝트 / 상품 판매 사이

내일 배움 캠프 - 6주차 - 노드 숙련 개인 프로젝트 / 상품 판매 사이트. Contribute to Avoler0/nbcamp-spartafolio development by creating an account on GitHub.

github.com

 

깃 협업에 대해서는 배운대로 Git convention을 참고하고, 브랜치는 기능별로 별도로 생성하여 관리하기로 하였다. 

 

본격적인 프로젝트를 진행하기에 앞서 준비과정이었으나 협업을 연습하는 시간이었다. 

재직 시에도 항상 협업에 대한 중요성을 느끼고 있었으니 앞으로의 프로젝트에서도 잘 할 수 있으리라 ~