풀스택 서버리스 프로젝트 with React - 1. 사이드프로젝트 첫 걸음

2023. 11. 2. 18:31개인노트-인강

사이드 프로젝트:10개 기술스택으로 구현하는 풀스택 서버리스 프로젝트 with React

Part 1. 프로젝트 시작하기

Ch01. 사이드프로젝트 첫 걸음

 

# 강사 및 강의 소개

## 강의 목적

- 내가 가지고 있던 추상적인 아이디어를 구체화 시키는 방법을 배운다.

- 대충 한 번 만들고 끝나는 버려지는 시스템이 아니라 유지 보수가 가능한 시스템 체계를 만듭니다.

- 현실에서 충분히 발생할 만한 문제를 해결할 수 있는 능력을 기릅니다.

- 로컬에서만 개발하는건 x. 같이 만든 어플리케이션을 AWS에 배포해보고 도메인 (URL)까지 확실하게!

## 강의 순서

- Part1. 사이드 프로젝트 시작하기

- Part 2. 프로젝트 기획하기

- Part 3. 프로젝트 설계하기

- Part 4. 비용 정산 사이트 구현하기

- Part 5. 서비스 배포하기

- Part 6. [Advanced] 서비스 디벨롭 하기

## 진행 방식

- 클론 코딩 ❌
- 처음 기획 단계 부터 서비스 배포 까지 모든 과정을 함께 합니다.
- 파트가 끝날 때마다 숙제를 내드립니다. 추후, 숙제 해설 영상도 함께 제공 됩니다.
- 파트가 끝날 때마다 중요한 부분을 같이 되짚어 보면서 복습합니다.

 

# 사이드 프로젝트, 왜 해야 하나요?

## 사이드 프로젝트란?

- 본업과 관련 없이 개인 적인 시간을 내어 내가 원하는 것을 하는 프로젝트

- 내가 주도적으로 기획하고 개발
- Tech 쪽에서는 주로 새로운 소프트웨어 개발을 칭하곤 함

## 왜 해야 하나요?

사이드 프로젝트는 성장할 수 있는 기회 입니다.

- 커리어를 시작하는 첫 단추를 만들 기회 입니다.

- 풀스택 개발자가 될 수 있는 기회 입니다.

- 직장에서 충족하기 어려운 욕구를 충족 시킬 수 있습니다.

- 새로운 기술을 실전 프로젝트에 사용해볼 수 있습니다.
- 기술을 깊이 있게 알 수 있습니다.
- 기본적인 프로젝트 관리 기술을 배울 수 있습니다.
- 다양한 사람들과 협업하는 방법을 터득할 수 있습니다.
- 잘 될 경우, 창업의 기회로 이어지기도 합니다.

## 사이드 프로젝트의 성공적인 사례

- 네이버: 삼성SDS 사내 벤처로 시작
- 트위터: 사내 해커톤에서 시작. 작은 그룹의 팀원들이 서로 무엇을 하고 있는지 공유할 수 있도록 문자 기반 서비스에서 시작해서 지금의 트위터가 됐다. 140자로 세상을 바꿀 수 있다는 목표를 가지고 있었다.
- Github: 두 창업자는 개발자 모임에서 만나 git의 시스템 자체는 괜찮지만 이용함에 있어서 불편함을 토로하던 도중 이를 해결할 사이드 프로젝트를 진행 해보기로 한다. 이 것이 지금의 Github이 되었고, 2018 년에 Microsoft에 인수된다.
- 당근마켓: 카카오 개발자들이 모여 사이드 프로젝트로 진행. 사내 직원들을 위한 중고 거래 플랫폼에서 시작했고, 주변에서 자신들이 사는 동네도 확장 시켜달라는 요청이 많아 본격적으로 창업에 뛰어들었고 이제는 북미에도 진출

## 여러분은 왜 하고 싶으신가요?

- 목적이 중요 합니다.
- 그 것에 대해 열정적이어야 합니다.
- 항상 쉬운 일만 있는 것은 아닙니다. 팀원간의 불화가 생길 수도 있고, 생각보다 기술적으로 챌린징 해서 포기하고 싶을 때도 있고, 갑자기 일이 바빠져서 신경을 많이 못쓰게 되다가 중단하고 싶어질 수도 있습니다. 포기하고 싶다는 순간의 충동을 잠재울 수 있는 것은 이 프로젝트를 왜 해야 하는지, 동기와 목적이 그 답입니다.

 

# 사이드 프로젝트 주제 정하기

## 이렇게 하면 망합니다.

- (계획도 없이) 일단 해보자!
- (의욕만 앞서서) 일단 해보자!
- (왜 하는지도 모른채) 일단 해보자!
- (단순히 최신 기술만 써보려고) 해보자!

## 첫 단추. 주제 정하기

- 가장 중요한 스텝

- 내가 만들고 싶은 것이 무엇인지를 구체적으로 생각해 보는 시간이 반드시 필요합니다.

- 내가 사용할 것을 만들어야 배움의 깊이가 훨씬 깊습니다.

    - 포트폴리오에 넣었을 때, ‘신 기술 도입을 위해 아무거나 만들어 본' 경험 보다 더 좋은 인상을 주게 됩니다. 우리는 현실에서 있는 문제를 찾아내고 이 문제를 해결한 경험을 아주 가치있게 생각합니다.

 

## 내가 하고 싶은게 뭔지 어떻게 아나요?

- 가장 쉽게 시작할 수 있는 것은 나의 생활에서 바꿀 수 있는 것을 찾아 보는 것입니다.
    - 예 1) 내 하루 루틴이 어떤가요? → 루틴 중 비효율적인 것이 있나요?
    - 예 2) 요즘 내 감정은 어떤가요? → 어떤 것들이 나를 불편하게 만드나요?

## 구체적으로 접근해 볼까요?

- 5-WHY 기법을 통해 아이디어를 찾아봅시다.

5-WHY 기법?
문제 상황에 대한 근본적인 원인을 파악하기 위한 분석 기법.
문제 상황에 대해 ‘왜 이 문제가 발생했는지?' 다섯 번 반복해 나가면 문제의 근본 원인에 도달할 수 있다.

 

# 1인 개발 VS. 팀 개발, 어떤 것이 좋나요

- 주제를 정했다면 그 다음 정해야 할 것은 누구랑 할 것인지 입니다. 혼자 개발할 수도 있고, 팀을 꾸려 개발할 수도 있습니다.

## 1인 개발의 장점

- 모든 일들의 실무자이면서 주도권을 가지고 있다
- 미팅이 없어서 일정 조율에 대한 부담 없이 자유롭게 개발이 가능하다
- 전문성이 부족한 분야(e.g. 디자인)는 돈을 쓰고 외주를 줘서라도 내가 원하는 방향으로 퀄리티를 높일 수도 있다

## 1인 개발의 단점

- 프로젝트의 장기화 - 혼자 모든 일을 하다보니 일정이 더 오래 걸리고, 심적으로 더 빨리 지칠 수도 있다
- 체계를 갖춰 하기 쉽지 않다
- 프로젝트 관리 방법보다는 구현 자체에 초점을 더 두게 될 경향이 크다
- 피드백을 받기가 쉽지 않고, 모든 의사 결정이 온전히 본인의 몫. 리스크가 있다

## 팀 개발의 장점

- 다양한 직군/사람과 협업 → 소프트 스킬 🔺
- 다양한 사람의 목소리를 들을 수 있음 → 제품이 본래 목적을 벗어나 산으로 갈 위험성 🔻
- 제품 설계와 코드 리뷰 등 같이 배우며 성장할 수 있는 기회 🔺
- 실무와 가장 유사한 환경

## 팀 개발의 단점

- 팀원의 역량이 중요하다. 잘 맞지 않는 팀원과 일할 경우 혼자 개발할 때보다 역효과 발생 가능
- 팀원간 큰 불협화음이 생겼을 경우 팀이 폭파될 수 있음. 팀원이 이탈할 경우, 프로젝트가 계속 유지보수 되기 어렵다
- 팀 미팅 일정 잡기가 쉽지 않다

## 팀원은 어디서 구하나요?

- 사이드 프로젝트를 하기 위한 플랫폼이나 개발자 커뮤니티를 이용
    - 본인의 의지와 지금까지 한 것들을 올리면서 적극 구인
- 해커톤 참여
    - 해커톤에 따라서 팀원 매칭을 해주거나, 팀원을 구인할 수 있는 채널을 오픈해주기도 함.
- 한국 내에서 찾는다면?
    - 개발자 커뮤니티 단톡방/슬랙
    - https://letspl.me/project
    - https://holaworld.io/
    - https://bside.best/bside (유료)
- 전세계 사람들과 일해보고 싶다면?
    - https://nomadprojects.io/
    - https://devpost.com/software/blossom-find-your-team