부스트캠프 멤버십 7-8주차 회고

조성현·2021년 10월 24일
2

부스트캠프

목록 보기
8/10
post-custom-banner

이번 2주간의 미션은 지난 미션과 큰 차이점이 있었다. 첫 번째는 두 명이 함께 진행한다는 점이고, 두 번째는 바닐라 JS에서 벗어났다는 점이었다.

🐾 프로그래밍은 협업

지금까지는 사실 혼자 프로그래밍하는 것에 매우 익숙해져 있었다. 하지만, 1인 개발자로 일하지 않는 이상, 결국 누군가와 함께 일하게 될 것이다. 혼자 아무리 멋진 프로그램을 만들더라도, 그 코드를 그 사람만 이해할 수 있다면, 가치가 있다고 할 수 있을까? 우리는 다른 사람도 쉽게 이해하고 재사용할 수 있는 멋진 코드를 만들어야한다.

함께 프로그래밍을 할 때는 원칙이 필요하다. 우리 조는 함께 페어 코딩을 하면서 기초적인 틀을 작성했다. ERD를 설계하고, 폴더 구조를 정하여 코드들이 정리되도록 하였다. 기초 단계는 함께 작성하면서 후에 기능별로 분담할 때 편리하도록 설계하였다.

확실히 함께 페어코딩은 시간이 들고 괴로운 일이다. 서로 간의 배려가 필요하다. 이런 과정이 없었더라면 후에 분업이 순탄치 않았을 것이다. 탄탄한 설계는 좋은 결과물을 위한 지름길이다.

🧙‍♂️ 타입스크립트 + 리액트

그래도 예전에 이어봐 프로젝트에서 한달간 리액트를 다루고, 타입스크립트를 잠깐 써본 것이 도움이 됐다.

리액트는 그 때도 가상돔으로 SPA 빠르게 해주는 정도로 이해하고 있었는데, 바닐라JS로 SPA 열심히 구현한 뒤로는 정확히 리액트가 어떤 역할을 해주고 있는지 상상이 간다. 오히려 이제는 리액트가 너무 많은 렌더링을 일으키지 않도록 관리해야 되었는데, 의존성 관리가 특히 헷갈려서, 공부할 필요성을 느꼈다.

Redux는 만들어봤으니 Recoil을 써봤는데, 느껴 본 큰 장점은 hook과 매우 어울린다는 점이고 렌더링 최적화에 유리하다는 점이었다. 하지만 프로젝트 규모가 크지 않아, 제대로 써본 느낌은 아니다. MVC 패턴이라면 상태들을 분리하는게 맞겠지만, 컴포넌트다 보니 공유되는 것이 아니라면 컴포넌트에 둬야하고... 그러다보니 컴포넌트가 방대해지고... 그걸 또 커스텀 훅으로 분리하고... 그러다보니 의존성 관리에 신경써야하고... 쉽지않다...

타입스크립트는 솔직히 말해서 귀찮았다. 지금까지 바닐라JS에 익숙해져 있어서 암묵적인 타입변환을 인지하고 있으면서 그러려니하고 만들었다면, 타입스크립트는 'null 일 수 도 있다'고 찡찡거리니... 타입도 익숙치가 않아 이벤트, dom 관련 타입들 헷갈리고... 경고도 계속 뜨고... 열심히 구글링해가면서 any 안쓰려고 노력했다. 현업에서는 이제 거의 필수라고 하니, 익숙해지려고 노력할 것이다.

🥕 학습 스프린트를 마치며

8주간의 학습 스프린트가 끝났다. 스프린트라기에는 다소 긴(?) 호흡이었고, 막판에 체력이 떨어지면서 몸져 눕고 2차 접종에 몸져 누었다. 하지만 강해졌냐는 질문에는 100% YES이다.

좋았던 점은 바닐라JS로 많은 것을 해봤다는 것이다. 리액트는 물론 redux 왜 쓰냐는 질문에 할 말이 정말 많아졌다... 또한, 코드리뷰 받았던 것이 정말 도움이 많이 됐다. 리뷰어분들이 내 질문이 많음에도 불구하고 다들 정성스런 리뷰를 해주셔서 많이 배웠다🙏 이런 분들 사수로 만나면 얼마나 좋을까!

아쉬운 점은 블로그 정리할 시간이 없었다... redux도 만들고, redux saga도 만들고, 라우터도 만들고... 부족하지만 꼭 정리를 하고싶은데 못했다. (시간이 나면 꼭 해야겠다.) 자바스크립트, 타입스크립트, 리액트 기초 구현은 하는 것 같은데, 고급 기술에서 부족함이 느껴진다... (예를 들어 generator, 커링, useCallback, useMemo 등등)

다음은 파이날 프로젝트다. 현업 레벨의 코드를 짤 수 있도록 공부하고 구현하는게 목표다! 화이팅!

profile
Jazzing👨‍💻
post-custom-banner

0개의 댓글