오늘부터 한달 간 Final project를 시작하게 되었다. 이번에는 꼭꼭! 매일매일 devlog를 작성하고자 한다.
프로젝트에 들어가기 앞서 다음과 같이 마음가짐을 가졌다.
1. 앞서 진행했던 first project와는 다르게 기간이 한달인만큼 기존의 배웠던 것 + 새로운 기술 스택을 도입해서 써보고 싶다.
2. first project를 진행하면서 미흡했던 부분 (특히, 기획의 중요성)을 보강하고, 이번에는 진짜로 완성도 있는 프로젝트를 만들겠다.
3. 이 프로젝트를 통해서 내가 좀 더 성장해 있기를 바라기 때문에 정말 열심히 하겠다!!
4. devlog 열심히 쓰자! 프로젝트 끝나고 문서 정리를 잘하자! (중간중간에도 열심히)
사실 이번 final project를 할때에는 기업협업을 하고 싶어서 기업협업을 신청했으나, 신청자 수가 많아 사다리타기를 하여 탈락하였다. ㅠㅠ 비전공자로 실제 현업에서 개발하는 방식을 경험할 수 있어서 좋을 것 같았지만 그렇게 되지않아서 아쉬운 마음이 드는건 사실이다. 그래도 수강생프로젝트도 나름의 장점과 기대할만한 점이 있다고 생각이 들어서 열심히 할 생각이다!!
Final Project - BillyZip
이번 프로젝트에서는 수강생프로젝트 중 집을 공유하는 서비스를 만드는 프로젝트에 참여하게 되었다.
기업협업에서 떨어진다면 하고싶은 수강생프로젝트로 눈여겨 보고있던 서비스이다.
이 프로젝트의 서비스에 대한 생각은 에어비앤비 구독 느낌도 살짝 있고 직방 같은 느낌도 살짝 있는 프로젝트인것 같다.
서비스를 간단히 설명하자면 서비스를 구독한 유저들은 구독한 기간 동안 호스팅이 되어있는 집들 중 마음에 드는 집을 선택해 일정 기간동안 살 수 있는 서비스이다.
프로젝트 이름인 빌리집은 빌리카와 비슷한 느낌의 작명으로 집을 빌린다는 의미이다. 나까지 해서 총 4명이 참여하게 되었다.
final project는 앞선 first project와는 다르게 기간도 기간인만큼 다른 팀도 그렇고 약간 새로운 기술스택을 사용해보는 것에 다들 도전하는 분위기이다. 그래서 우리 팀도 기존에 했던 것에서 좀 더 챌린지하게 새로운 기술스택에 도전하게되었다.
일단은 프로젝트에 타입스크립트를 도입하기로 의견을 모았다. 사실 타입스크립트가 자바스크립트의 super set으로 자바스크립트를 어느정도 알고 있는 상태에서는 좀 더 수월하게 배울 수 있다고는 하지만, 새로운 것에 대한 두려움이 약간 드는 건 사실이다.
개인적으로 first project에서 완성도가 좋지 못했다고 생각이 들어서 이번 프로젝트에서는 완성도 있는 프로젝트를 만들고 싶은데 타입스크립트를 적용해서 프로젝트를 (내가) 과연 완성할 수 있을지 아직 미천한 경험으로는 감이 안잡힌다 ㅠㅠ 이 부분은 좀 더 팀원들과 논의가 있을 것 같다.
Front - React native, React hooks, Redux, Typescript
저번 프로젝트에서는 풀스택 포지션으로 프론트와 백엔드를 왔다갔다 하면서 프로젝트를 했었는데 이번에는 프론트엔드 포지션을 맡게 되었다. 사실 저번 프로젝트할 때도 그렇고 사람 욕심이란게 이것저것 다 해보고 싶다.
그렇지만 프로젝트를 해보니 왜 포지션이 나눠져 있는지 알 것 같다. 물론 경험하고 배우는 입장에서는 풀스택이 좋다고 생각은 하지만 어떤 프로젝트를 '완성도'있게 만들려면 전문적인 포지션으로 협업을 하는 것이 프로젝트를 완성하는데에 있어서 좀 더 효율이 좋은 것 같다.
아무튼 그렇게 팀원과 역할을 나누다보니 프론트엔드 포지션을 맡게 되었다. (프론트 2, 백엔드 2)
이 서비스는 앱으로 만들기로 하였기 때문에 React-native를 사용하기로 하였고, React-Hooks도 사용하면 좋겠다는 의견이 있어서 Hooks도 사용할 것 같다. 또한 서비스에 대한 아키텍쳐를 짜다보니, 상태(state)관리가 왠지 필요할까? 싶어서 Redux(or MobX) 또한 고려중에 있다.
(Redux vs MobX)
https://www.robinwieruch.de/redux-mobx#whats-the-difference-between-redux-and-mobx
이러한 레퍼런스를 참고하다보니 막상 state 관리가 이정도의 프로젝트에서 필요한지도 의문이 조금 들고 (물론 배우는 입장에서 써보면 좋겠지만 제한된 기간안에 프로젝트의 완성도를 고려한다면...?) 쓴다면 어떤 것을 써봐야할지, 아니면 다른 상태관리 라이브러리를 써야할 지 계속된 고민이 있다.
이렇게 프론트 기술 스택을 (욕심나서) 다 적다보니까... 모두 새롭게 배워야하는 스택이다. 두둥.
사실 드는 생각은 저것들을 다 제대로 알지도 못할 뿐더러 저 중에 하나만 적용하더라도 새롭게 공부해서 적용해야하는데 내가 저걸모두 사용할 수 있을까?!... 라는 생각이 든다 ㅋㅋㅋ 근데 또 전부 욕심나는 건 사실이다. 그래서 계속 고민중에 있다. 가능하다면 전부 써보고 싶다. 그런데 또 완성도 있는 서비스를 완성하려면... 포기해야하는 것도 있어야 할 것 같고... 정말 많은 고민과 논의가 있을 것 같다.
Back - node.js, express, TypeORM, Typescript, mysql 등
백엔드에서는 일단 기존에 배웠던 node.js와 express를 활용할 것 같고 DB 또한 mysql로 가져갈 것 같다. 다만 이제 인증처리라던지 지도검색이나 핸드폰 문자 인증 기능 등을 여러 개 도입하기로 했기 때문에 카카오맵 api 등 여러가지 api와 모듈을 추가로 많이 사용할 것 같다.
Deploy - AWS
배포는 기본적으로 AWS를 통한 배포로 생각하고 있지만, 자동 배포? CI/CD? 젠킨스? 같은 키워드가 눈에 들어와서 고려사항으로 적어 놓았다. ㅋㅋㅋㅋ 욕심이 끝이 없는 것 같다. 자동 배포는 좀 더 advanced 한 느낌으로 가져가고 일단은 AWS를 통한 배포를 해볼려고한다.
Project start !
현재까지 진행한 부분은 어제 팀이 짜여졌고, 오늘 팀원들과 프로젝트명, 팀명등을 정했다. 그리고 이 서비스가 어떤 서비스인지를 좀더 구체화 하였다.
또한 저번 프로젝트에서 했던 것처럼 Team rule, Git rule, Code rule 등을 정했다. 저번에 이 부분을 정하는 것이 처음이라서 미흡했었는데 이번에는 경험을 바탕으로 좀 더 효율성있는 협업을 하고자 자세하게 정하려고 노력하고 있다.
그리고 기본적인 서비스의 아키텍쳐, DB 스키마 등도 팀원들과 같이 정했는데 사실 이 부분은 아직 확실하게 정립되지 않아서 계속 디테일한 부분은 계속 변경이 있을 것 같다.
계속해서 기술스택에 대한 논의도 이어가고 있고, 아키텍쳐, 스키마도 계속해서 조금씩 변할 것 같다. 그리고 이런 것들이 어느정도 정립이 되면 본격적으로 api 문서, task 정립과 일정 조율에 들어갈 것 같다.
사실 프로젝트도 이제 겨우 두번째이고 해서 아직 프로젝트 진행에 미숙한 점이 많다. 하지만 조금씩 나아져가는 느낌도 들고 이번 프로젝트를 통해서 좀 더 성장할 수 있다고 생각한다!!
이번 프로젝트는 꼭 성공적인 프로젝트가 되도록 하겠다!!
'Project Devlog > BillyZip' 카테고리의 다른 글
Final Project - (6) 2020_0203 (0) | 2020.02.03 |
---|---|
Final Project - (5) 2020_0202 (0) | 2020.02.02 |
Final Project - (4) 2020_0201 (0) | 2020.02.01 |
Final Project - (3) 2020_0131 (0) | 2020.01.31 |
Final Project - (2) 2020_0130 (0) | 2020.01.30 |
댓글