1. 웹개발 미니 프로젝트
항해를 진행하며 같이 하게 될 동료들을 만났다. 최대 3~4인으로 구성되었으며, 비전공자의 비율은 70% 정도인 느낌이다. 스파르타 웹개발 종합반 강의를 기반으로 프로젝트를 진행하며 결과 중심 보다는 협업이 어떤건가 느끼는 게 목표인 것 같았다. 4명 중 그나마 국비지원 경험이 있던 내가 팀장으로 선정되었다. 시작하기 전 스터디 그룹이나 사전 들어야할 강의 목록이 있는데 뽑힌지 2일밖에 안 된 분은 결국 부담을 느끼시고 하차하여 4명에서 3명으로 프로젝트를 진행했다.
첫 프로젝트니 잘 했다고 생각했다. 뿌듯하다 생각도 했다. 그러나 시간이 지난 지금 보니 왜 저것밖에 하지 못 했지란 생각이 많이 든다. 기능도 기능이지만 깃허브 사용법을 이때 자세히 익혔야 했는데 싶은 생각이 많이 든다.
2. 알고리즘 기초
주특기 주차에 들어가기 좀 더 빠른 언어 친화를 위해 알고리즘 문제를 풀어보는 시간이었다. 처음에는 이게 무슨 똥같은 소리지 했지만 생각보다 효과는 매우 좋았다. 30분 풀어보고 안 풀리면 답을 보고 외우고를 반복하며 접하는 문제가 많을수록 알아가는 함수나 사용법도 많기 때문에 전에 풀었던 문제를 다른 방식으로 응용하여 풀기도 하였다. 시험을 보고 낙제하면 탈락한다는 말에 모든 사람들이 화도 많이 내고 나가기도 많이 나갔지만 그래도 내가 항해를 하면서 제일 많은 자바스크립트를 접한 건 알고리즘 기초 이 주간이 아닐까 싶다.
프로그래머스에서 테스트를 진행했으며 처음엔 2,3점 나오는 문제들이 목요일부터는 10점을 넘기기 시작해 더 열심히했다. 적당한 난이도의 문제들로 구성되었다고 했는데 도대체 수박수박수박수박수박수? 이런 문제는 왜 생겼을까 매우 의문이었다. 뭐 이런 문제가 다 있지? 라고 생각했지만 지금 다시 보면 이런 문제들이 아주 중요했다. ^^ 소중함을 몰라서 미안...
알고리즘 기초 주간에 성실하게 공부한다면 통과할 수 있을 만한 문제들로 테스트를 진행할 예정이라 해서 난이도가 별로 안 높겠지 생각했지만 2문제를 엮어서 내주는 항해측의 배려에 뒷통수 아주 쎄게 맞은 기분으로 시험에 응했다. 1주일 동안 VSCODE 바다에 버려져서 알고리즘을 공부하고 느낀 것은
- 30분 이상 붙잡아도 풀리지 않는 문제는 답안을 보고 소화하자
- 알고리즘은 파이썬이 편하지만 주특기 언어로 하는게 좋다
- 같은 문제더라도 자바는 40줄, 자바스크립트는 5줄! 자바스크립트 최고!
- 스파르타 알고리즘 강의를 줄 예정이면 사전 스터디에 주던가...
- 안 풀리면 지옥이지만 풀리면 희열감 최고
3. 주특기 입문
Node.js와 express로 로그인 기능이 없는 나만의 항해 블로그 만들기
- Node를 이용한 웹 프레임워크 구성
- mongoDB와 mongoose를 이용하여 원하는 데이터베이스를 만들고 활용
- express를 기반으로 CRUD 기능이 포함된 REST api 만들기
- AWS에 express와 mongoDB 서비스 배포
- 프론트는 ejs 템플릿을 이용해 작성
스파르타에서 제공해주는 Node.js 기초 강의를 수강 후 개인 과제의 요구사항을 충족하는 결과물을 만들어 제출하는 주차였다. 기한을 넘겨서 제출하거나, 모든 요구사항을 충족하지 못한 결과물은 과락 처리가 되기 때문에 조금도 여유롭지 않은 마음으로 임하기 시작했다.
제공된 기본 강의의 난이도가 생각보다 높아 대부분 다 강의를 듣다 중간에 생활코딩이나 제로초님을 영접하러 가셨다. 아무리 굴러도 이건... 너무 구르는게 아닌가 했는데 결국 여차저차 완성은 했다. CRUD, REST api를 시도했다 하지만 이때는 시간 맞추기 급급하여 어떻게 완성했는지 기억도 잘 안 난다.
과제를 내고 코드 리뷰도 없어 내 코드가 어떤 코드인지 알지 못 하는 점이 제일 답답하다. 팀원끼리 리뷰를 하라고 권유하지만 다들 배우러 온 입장이라 쉽게 이렇다 저렇다 말하기 어려운 관계...
4. 주특기 숙련
회원가입, 로그인, 댓글 추가/수정/삭제 기능이 추가된 나만의 항해 블로그 만들기
- 회원 관련 기능 만들기
- 게시글에 댓글 작성하도록 만들기
- 다른 사람이 내가 보고 있는 게시글에 댓글을 작성한 경우, 댓글이 실시간으로 보이도록 만들기
- 단위 테스트 코드를 작성하여 내가 구현한 기능의 결함을 찾기
지급 받은 Node.js 심화반 강의는 정말 기초 보다는 괜찮았지만 호엥? 이런 느낌으로 강의를 듣다가 결국 이게 뭐람... 난 포기해야겠다 싶을 때 많은 분들이 도와주셔서 제출은 못 했지만 혼자 만족하는 결과물을 만들었다. 결과물을 만들긴 했지만 매번 시간에 쫓기듯 코드 치기 급급했기 때문에 생각이란 걸 한 번도 하지 않고 만든 코드이다. 그냥 복붙 그 자체... 그래도 처음 배운 것 치고는 나쁘지 않나 싶은 생각이 들다가도 지금 보면 깃허브를 폭파시키고 싶지만 내 과거이니 남기기로 했다. console의 중요성을 잘 몰랐던 나는 주특기 숙련차에 아 코드 한 줄에 console 한 줄이라는 뜻 깊은 깨달음을 얻었다.
5. 주특기 심화
Jest Test Code
- 추상화에 대해 직접적으로 경험하기
- 테스트 코드가 만족하도록 구현하므로 TDD의 장단점 느껴보기
Class에 대해 얼마나 이해하고 있는지가 제일 중요했다. 그렇기에 나는 절대 자바스크립트 관련 두꺼운 서적은 안 사야지 했다가 바로 구매했다. 요즘 잘 정리된 사이트도 있지만 옛날 사람이라 그런지 책 보고 공부하는 게 더 편하다. 최대한 강의를 보지 않고 혼자 해보자 라는 생각으로 생활코딩, 모던자바스크립트를 공부하고 모르는 부분은 다른 분들에게 물어가며 최종 제출까지 잘 마무리했다. 회고록이 아니라 후회록 같은 기분이지만 그냥 인프런이나 강의 찾아서 보고 이해했으면 더 빠르게 끝내서 시간을 아껴 다른 공부를 하지 않았을까 싶다. 그때는 과제 제출에 급급해 효율성 없는 공부를 하여 지금 다시하라면 처음부터 공부해야 통과하지 않을까...
6. 미니 프로젝트
첫 프론트와의 협업
과제로 블로그 만들기 급급했던 나이기에 api의 중요성을 몰랐다. 코드를 구현 시키기만 바빴지 그 과정은 전혀 돌이켜 볼 생각도 하지 않았다. 혼자만 하다 협업을 하니 신경 써야할 부분이 2배가 아닌 16배! 프론트와 친했다면 이 요청 가나요 이것저것 물어보면서 했을텐데 내 코드 구현도 힘들어 그런 친목도 하지 못 했다. 실전에 가서는 많이 물어보면서 대화했지만 이때는 내 밥 그릇 챙기기도 바쁠 시기라... 항해는 1주차만 섞여있지 주특기 선택 이후 프론트와의 접점이 없다보니 주가 지나면 지날수록 거리감이 느껴진다.
마지막 날에는 팀장을 맡으신 분이 사라져 다른 분이 팀장 대행을 하셨다. 국비지원을 끝내고 항해에 참여한 이유는 내 돈을 내고 하니 모두가 책임감을 갖고 하지 않을까란 생각으로 시작했는데 국비지원은 돈이라도 주지만 항해는 돈을 내는 입장이라 그런지 이탈율이 내가 생각한 이상으로 많아서 나도 이걸 계속하는 게 맞는 선택일까 매일 생각하고 생각했던 시기인 것 같다.
7. 클론 코딩
두번째 프론트와의 협업
저번주 미니프로젝트를 하기도 버거웠는데, 클론 코딩으로 CRUD 반복을 하니 전보다 부담이 적었다. scope는 일부러 적게 잡아 구현할 기능이 많지는 않았다. 실제 사이트를 하나하나 뜯어보며, 이런 기능들이 필요하고 이건 어떻게 해야할까? 생각이란 걸 하는 시간을 가져 그게 제일 좋았던 것 같다.
웹의 꽃은 프론트지~ 라고 생각했는데 중간 프론트 2분의 이탈로 결국 완성하지 못한채로 프로젝트는 종료했다. 백끼리의 소통은 문제가 없었으나, 프론트에서 일이 생겼던 것 같은데 사실 이렇게 연속 두번 이탈자가 생기니 마지막 남은 실전 프로젝트도 같은 경험을 할까 매우 두려웠다. 팀에 대해 큰 의미를 두지 않았지만, 두번을 겪어보니 팀원간의 소통이 팀을 만드는 요소 중 가장 큰 요소구나를 느꼈다.
8. 실전 프로젝트
할 말은 많지만 여기에 다 쓰면 24시간이 모자르기 때문에 짧게 기록할 예정이다. 기록을 시작한 이유도 내가 무엇을 느끼고 어떻게 변하는지를 알기 위해 기록을 항해99 후기를 기록하기로 했기 때문이다.
기능이 많지 않다. 괜찮다. 마지막 프로젝트긴 해도 협업에 의미를 두어 중간에 팀원이 이탈하지 않고 끝까지 같이 한다면 좋다고 생각했다. 의미 없는 CRUD를 많이 넣는 것 보다는 클러스터 모드를 사용하거나 로드 밸런서를 하거나 typescript를 적용하거나 오히려 구현할 기능이 없기 때문에 괜찮은 조건 아닌가 생각했다. 1주차 기획 회의가 끝나고 백엔드 2명이 나간다 하기 전에는...
실전 프로젝트는 백엔드 3, 프론트 3, 디자이너 2로 구성된 팀이다. 거기서 백엔드 2분이 나간다면 혼자 프로젝트를 감당 하는데 CRUD도 아직 어색한 나에게 너무 큰 부담으로 다가왔다. 항해측에서는 백엔드 한 분을 구해주는 쪽으로 해준다고 하셨지만 100% 구해준다는 말은 아니기 때문에 기능을 대폭 줄였다. 안 그래도 없는 기능이지만 더 줄이고 바꾸고 보니 백엔드 쪽에서 퍼포먼스 적으로 보여 줄 부분이 없다고 생각했지만 어쩔 수 없었다. 연속 3번 이탈... 아주 다시는 겪고 싶지 않은 기분이다.
기능을 줄이고 혼자 대부분을 하다보니 확실히 빠른 시간 성장이 가능했다. 물론 코드의 질이 좋아졌다거나 그런 드라마틱한 효과는 아니지만 코드 구현을 하기 전 생각으로 정리하기 시작하며 실수가 많이 줄었다. 또한 REST API에 대해 깊게 공부하지 않았지만 프론트측에서 질문할때마다 API 관련하여 설명을 하다보니 이전보다 API와 친해졌다. Node.js는 생각보다 라이브러리가 많았으며, 어느 라이브러리를 적용해볼까 쇼핑하는 기분으로 공식 사이트를 둘러보는 시간도 있었다.
중간점검 피드백 시간에 많은 피드백을 받지 않아 내가 지금 여기서 뭘 하고 있는걸까라는 생각도 했지만 시간이 지난 지금 돌아보니 퍼포먼스적으로 부족한 프로젝트지만 내가 왜 개발을 공부하는 이유부터 시작해 앞으로 어떻게 공부하여 어떤 개발자가 될지에 대한 의문은 찾았다.
항해 끝
'Bootcamp > WIL' 카테고리의 다른 글
항해99 13주차 WIL (0) | 2022.05.12 |
---|---|
항해99 11주차 WIL (0) | 2022.01.18 |
항해99 10주차 WIL (0) | 2022.01.09 |
항해99 9주차 WIL (0) | 2022.01.02 |
항해99 8주차 WIL (0) | 2021.12.26 |