사이드 프로젝트의 목적에 따라 모든 방향 자체가 달라진다.

- DND wiki 참조
사이드 프로젝트를 하는 이유
!! 재미있어야 한다 !!
- 재미있지 않으면, 자발적으로 참여하기가 어렵다.
- 한 명 한 명이 끼치는 영향력이 크기 때문에!
아이디어 구성
- 다른 서비스와의 차이점은?
- 금액이 무료
- 보통 금액이 무료이면 탈주율이 높은데, DND는 무료임에도 불구하고 탈주율이 정말 낮다.
- 운영진의 높은 열정에 근거한 피드백들이 그 원인이라고 생각
- 짧은 기간 동안 운영 (8주)
- 8주는 대학생 방학기간이기 때문에, 여름 방학 겨울 방학 연 2회 진행
팀 구성 이후 작업
- 게더(함께하는 느낌을 줌)
- 매일 매일 스크럼 진행
- 아이디어 구상 및 기획단게에서 생각보다 정말 많은 시간이 소요 됨
- whimsical 등을 통해서 정리
- whimsical은 flowchart를 도와주는 서비스 (ex사진)
실제 개발단계
목표
1. 누가 무엇을 할 지 구분하여 결정
2.현재 진행 상황에 대한 공유 필요
방법1. 이슈 기반의 프로젝트를 진행
- 다양한 칸반 프로그램들 사용
- GitHub의 이슈 사용
- JIRA (초기 세팅 시간 많이 필요)
- Zenhub
방법2. 마일스톤 (기간 단위의 deadline으로 일들을 묶어두는 것)
- 보통 2주 단위로 지정
- 해당 기간 동안 진행되어야 할 이슈들을 묶어서 마일스톤으로 설정함
방법3. Epic은 큰 이슈가 있을 때, Epic으로 처리하고 하위에 여러 이슈를 등록하는 것
- ex) 프로젝트 사용법이라는 Epic 만들고
- 세부이슈로
마크다운 사용법
,코딩컨벤션
,브랜치 전략
등을 이슈로 설정할 수 있다.
배포단계
배포는 종합예술과도 같다..
client, server, aws-netflify, ... 종합적으로 알아야하는 부분이 많다.
- 다양한 배포 툴 선택 가능
- 결국 배포툴들은 내부적으로 ubuntu의 nginx를 통해서 배포관련 세팅을 해주는 것
AWS
/Heroku
/netlyfy
serverless
로 구성할 경우 상당히 저렴한 가격으로 구성가능하다- 트래픽이 발생할 때만 요금이 발생하는 구조
- 사용자 수가 적거나, API의 사용 빈도가 낮을 때 사용하면 금액적으로 크게 이득볼 수 있다.
- 구성요소
- S3
- 정적 배포파일 들이 저장되어 있는 보관소
- 람다
- 함수들의 집합으로, 기능 실행 시 사용
- AWS Amplify
- 배포를 클릭을 통해 쉽게 가능하게 하는 AWS 시스템
- 정적 배포로 EC2 사용보다는 저렴한 측면
- netlify 배포
- 느리다는 단점!
- 일정시간 접속이 없으면 서버가 죽는다.
- 요청이 오면 → 서버를 부팅 → yarn start → 응답 보냄
기타
- 프론트엔드 개발자도 피그마와 같은 디자인툴 어느정도 사용할 줄 알아야한다.
- ex. ctrl+g를 통해 grid를 볼 수 있는데, 각 영영이 그리드를 기준으로 n칸 사용하는 것으로 디자인이 잡혀있을 수 있다. 이 때 이를 고려하지 않고, 단순 px값으로 css작업을 할 경우, 원하는 디자인이 아닌 불상사가 발생할 수 있다.
- 프로젝트 세팅의 경우 1명이 주도적으로 진행하는 것이 좋다.
- 큰틀에서 eslint, prettier 등 정하는 것이 효율 적
- 배포 환경 세팅도
질문
Q. 내가 사이드프로젝트를 하면서 어려웠던 점은 개발, 디자인., 이런 것 보다도 결국 사람이다.
팀원들의 목표가 다를 때 이던데, 이러한 경우가 있었는지, 어떻게 극복했는지 궁금
- 나의 사례
- 누군가는 이 사이드 프로젝트에 150%이상 집중함,
- 누군가는 정말 사이드로서 업무를 진행함
- 처음에는 이해관계에 따라 서로가 서로를 필요로했지만, 시간이 지나면서 한쪽은 기대를 높여 바라는 것이 많아져 실망을 하거나, 한 쪽은 오히려 부담스러워하는 상황이 발생
- 특히 지금은 자리를 잡았지만 초창기에는 의견조율이나 기획방향성을 잡는데 어려움이 있지는 않았는지
- 회사에서는 사실 목표가 다른 사람들이 모여, 일을 하고 있다. 어떻게 이를 극복하고 있을까..
모든 기업에서, 단체에서 같은 고민을 하고 있을 것이다.
사람 뽑기가 가장 어려운 분야. 원하는 인재상의 기준을 명확히 정하고, 컬쳐 핏에 맞는 사람들을 선별하는 것이 가장 중요하다
Q2. 프로젝트 진행할 때, front-backend 모여서 기획 -> API 문서 같이 작성하고 -> 이슈리스트 업 후에 -> 각자 개발 진행하는 프로세스가 적합할까요?
기획 단계에서 같이 이야기를 많이 나누고 구체화시키는 것이 중요
경우에 따라 다르지만, 와이어프레임, DB모델링 설계까지 같이 진행하고, 이후에는 front와 backend 파트별로 기능개발 관련 회의 진행하는 프로세스 추천
(필요시 당연 히 소통하는 것은 당연)