내배캠 React 3기 4주차 회고
WIL 23. 10. 28
내배캠 React 3기 4주차 회고
- 한 달 동안 한 일
- 4주차 팀 과제를 수행하며
- 느낀점
들어가며
어느덧 내배캠 부트캠프 4주차 과정이 끝나가고 있다. 한 달을 돌아보며 기록으로 남긴다.
한 달 동안 무엇을 했지
1주차는 늦게 합류한 탓에 팀 프로젝트를 진행하진 못하고 강의를 우선으로 들었다. HTML, CSS, JS(+ jQuery), firebase, 배포를 배우며 웹 개발을 경험해본다는 강의였다. 웹 개발 독학을 하며 이미 한 사이클 돌려봤기 때문에 수월하게 수강했다.
2주차는 JavaScript 문법 강의를 제공받고 본격적인 학습이 시작되었다. TIL 작성을 강조하셔서 블로그도 생성했다. Chapter 5까지 있었는데 사실 Chapter 3까지 밖에 학습하지 못했다. 강의와 함께 「모던 자바스크립트 Deep Dive」를 병행하며 학습했는데 꽤 시간이 오래 걸렸다. 강의를 듣고 해당 내용을 책으로 보충했었는데 보통 하나의 개념을 이해하기 위해서는 다른 개념들을 알고 있어야 하는 경우가 많다. 걷잡을 수 없이 확장되는 개념들을 붙잡으려 하니 당연한 결과였다. 물론 깊은 이해로 이어지긴 했으나 이후 해당 개념을 다룰 때 연결해서 이해하는 것이 훨씬 수월했을 것이다. (Deep Dive는 산소가 부족해진다..)
3주차는 JavaScript 문법 학습을 바탕으로 개인 프로젝트를 진행했다. 바닐라 자바스크립트로 오픈 API를 사용해 영화 검색 사이트 구현하기. 강의를 모두 듣고 수행한 게 아니라 알고 있던 지식과 구글링으로 구현했다. 강의를 먼저 들어야 한다는 매니저님의 압박이 있었으나 주말 시간이 없어서 과제부터 수행했다. 중점으로 뒀던 것은 다음 주차부터는 팀 프로젝트를 진행하기 때문에 github을 사용한 협업 방법을 체계화하고 적용할 수 있도록 신경 썼다. 기능 개발이야 어렵지 않아서 UI에 신경 썼고, 리팩토링을 해야지 하고 다음 주차로 넘어갔다.
4주차는 팀 과제가 주어졌다. 팀원의 개인 과제 중 하나를 선택해 발전시키는 과제였다. 사실 내가 생각하기에 기능 개발은 어렵지 않을 것이라 생각했고 github을 사용한 팀 협업을 공유하고 적용해보고 싶었다. 과제가 주어진 날 팀 프로젝트 협업을 위한 세팅과 글 작성, git 전략 수립을 마치고 다음날 팀원들과 공유했다. 팀원들이 개발을 경험해보지 않으셔서 기능 개발도 어려운데 무리한 요구가 아닐까 염려하며 나눴다. 그럼에도 긍정적으로 채택 해주시고 개발 프로세스를 적용해 과제를 수행 해주신 것에 감사하다🙇♂️. 심지어 당일 git 테스트 repo를 생성해 git-flow에 따른 연습도 했는데 저녁 특강으로 심지어 같은 부분을 다뤘었다. 덕분에 git을 사용한 개발이 익숙해지고 자신감이 생겼다.
4주차 팀 과제를 수행하며
가장 큰 수확이 두 가지가 있었다.
첫 번째는 관심사를 분리하여 코드 작성하기. 팀원 분의 프로젝트를 선택해 협업을 위한 리팩토링을 진행하고 github에 푸시하고자 했다. 그 과정에서 튜터님의 개인 과제 해설 영상을 올려주셨는데 많은 자극이 되었다. 관심사를 분리하여 코드를 작성해야 한다는 이야기는 많이 들었다. 실제로 받아들이지는 못했는데 적용된 코드를 보니 확실히 이해가 되었다. 동작과 기능 구현을 담당하는 파일을 분리하고 main에서는 동작(실행)만 담당하고 기능 구현은 분리하여 작성해서 해당 함수만 호출한다. 개인 과제를 수행할 때 하나의 JS 파일에서 모든 것을 담당하고 있었는데 실행부와 선언부를 분리한 코드는 훨씬 유지 보수가 쉽고 가독성도 좋았다.
두 번째는 github을 사용한 팀 협업 프로세스 경험이다. 사실 혼자 개발을 할 때는 경험해 볼 수 없어 그래프도 항상 단순했고 충돌이 일어날 일이 거의 없었다. 팀으로 git을 활용해 개발을 하면서 왜 git을 사용해야 하는지, github을 이용해 프로젝트를 관리할 때의 이점 등을 체득할 수 있었다. 개발 프로세스에 따라 개발하며 효율적이고 팀원 간의 원활한 소통, 업무 지정과 작업 내용, 프로젝트 진행도 확인 이외에도 엄청난 경험치를 쌓을 수 있었다.
추가로 적용하고 싶었던 부분은 develop 브랜치에 병합하는 과정에서 테스트를 거치는 것이 어려웠다. 기능이 동작을 하지 않거나 버그가 생겨 다시 커밋을 하는 경우가 비일비재했다. 물론 이러한 과정이 없을 수 없으나 기본 브랜치인 develop에 병합했을 때의 결과를 예측하지 못하기 때문이다. 혼자 개발할 때는 CI/CD를 위해 netlify를 자주 사용했었는데 다음 프로젝트에서는 사용을 고려해봐야겠다.
느낀점
모든 과정이 순탄했던 것은 아니다. 개발 환경이 다르고 개발 방식이 모두 달랐다. 팀에서 정의한 규칙으로 익숙해지기란 어려웠다. 하지만 규칙을 지키려고 애쓰고 모두가 알고 있는, 이해할 수 있는 방식으로 개발을 한다는 것은 충분히 가치 있는 일이었다. 팀 프로젝트의 핵심은 ‘함께’ 문제를 ‘해결’ 함에 있다고 생각한다. 시간은 한정되어 있고 자원도 충분하지 않다. 가장 효율적으로 개발할 수 있는 방법을 적용해 초기 목적을 달성해야 한다.
협업을 잘 하는 개발자, 함께 일하고 싶은 개발자가 되고 싶다. 개인의 성장 뿐 아니라 팀원 모두가 같이 성장하고, 갈등을 조율하고 동일한 방향으로 이끌어 나가는 역할을 담당하고 싶다.
글을 쓰고 문서화하는 것도 소통과 설득을 위함이다. 사실 이러한 가치를 실현하고 싶다는 열망이 글쓰기 시간을 늘리는 요인일지도 모르겠다. 하지만 누군가에게 도움을 줄 수 있는 글이 될 수 있음이 그 자체로 충분한 시간을 사용할 수 있는 동기부여가 된다. 그리고, 글을 작성하며 정리가 되고 오류를 포함하지 않도록 검색도 해보고 여러 과정을 거쳐 온전히 내 것이 된다. 시각화 하는 것이 굉장히 도움이 되는 것 같다.
한 주간 쉽지 않았다. 이렇게까지 몰두해본 경험이 거의 없었다. 뿌듯하기도 하고 지치기도 하고 만감이 교차한다. 다만 페이스 조절은 필요하겠다. 이번 주는 운동을 못 갔다..
댓글남기기