8월이 눈 깜짝할 사이에 지나갔다.
1차 팀에서 2차 팀으로 바뀌고, Vue 와 React 를 조금 배웠다고 생각했는데 한달이 말 그대로 사라져버렸다. 다른 사람들에겐 어떤 시간이었을지 모르겠지만, 나에겐 근 몇년간 가장 빠르게 지나간 시간이었다.
분명 아무것도 안한 것은 아니었는데 9월이 되어보니 내가 뭘 배웠지? 하는 의문이 남는다. 분명 하루에 많으면 8시간씩 책상 앞에 앉아 공부를 했는데 무언가 허전한 느낌이 든다.
왜 이런 느낌이 드는 것인지 지난 8월을 검토해보고 9월을 더 알찬 시간들로 채우려면 어떻게 시간을 활용해야 할지 계획해보자.
JS 프레임워크인 뷰를 약 2주에 걸쳐 강의 + 실습의 콤보로 배웠다. Vue 강의를 접했을 때 굳이 왜 뷰를 배우지? 하며 의아했는데 실습을 하며 뷰에 대한 인식이 많이 바뀌어 있었다.
리액트만 사용해본 내게 뷰 문법은 그리 익숙하지 않았다. 왜 if 대신 v-if 를 쓰는 것인지, : 이런 기호는 왜 붙여서 사용해야 하는 건지, 태그에 기능은 왜 이렇게 많은 것인지... 기타 등등등 하나하나가 다 어색했다.
하지만 직접 과제를 구현하고 코드 리뷰를 작성하면서 프레임워크의 장점을 알게 되었다. 그리고 왜 뷰가 라이브러리가 아니라 프레임워크인지에 대해서도 감을 잡게 되었다.
언젠가 리액트 세미나를 통해 프레임워크인 뷰와 라이브러리인 리액트의 차이점에 대해 들은 적이 있었다. 프레임워크의 경우 개발자가 프레임워크의 규칙에 맞춰 개발을 하게 된다면, 라이브러리의 경우 개발자가 주도적으로 라이브러리의 기술들을 가져와서 사용해야 한다고 했다.
그때는 이 이론적인 비교가 어떤 의미인 줄 몰랐는데 그것을 몸소 느낄 수 있었다는 것이 가장 큰 의미라고 생각한다. 특히 Vue3 의 공식 상태 관리 라이브러리인 pinia 가 많은 도움이 됐다. 리액트의 상태 관리 라이브러리인 Redux 에서 action 이나 store 등등의 개념을 이해하지 못했는데 Vue 를 통해 개념을 잡고 나니 Redux 의 동작도 보다 쉽게 이해할 수 있었다. 더불어 뷰는 자신만의 규칙 내에서 여러 기능을 제공해주다 보니, 그 규칙을 이해하면 쉽게 어플리케이션을 작성할 수 있는 게 장점이었다.
여태 Vue 를 사용하는 것을 기피했는데 박영웅 강사님의 뷰 강의 & 실습덕에 내가 선택할 수 있는 기술의 종류가 한가지 늘어난 것 같다는 생각이 든다.
작년 3월에 처음 React 를 접하고, 나의 실력은 상수처럼 평행선을 그린 상태였다.
(= 늘지 않았다)
자바스크립트를 공부하면서 왜 리액트는 공부하지 않은지 모르겠다. 아무튼 덕분에(?) 그동안 나는 리액트 기능의 5% 정도만을 사용했다. 그렇게 느꼈던 가장 큰 이유가 바로 리액트 훅이다. 내가 그동안 쓴 리액트 훅은 단 두가지였다. useState 와 useEffect ... 심지어 useEffect 는 컴포넌트가 마운트 되고 난 처음의 세팅을 해주기 위해서만 사용했으니 한개 반의 리액트 훅을 썼다고 할 수 있다.
처음 리액트를 공부할 때 클론 코딩을 통해 공부했었는데 그 때 배운 개념들이 전부인 줄로만 알고 (??????) 해당 개념들로만 코드를 작성해왔었다.
그래도 지금 와서 생각해보면 나는 리액트를 배울 준비가 안 됐었던 것 같아서, 그때 useRef 니 useCallback 이니 하는 것들을 공부했었어도 좋지 못한 코드를 짤 확률이 높았을 거라는 생각이 든다. 자바스크립트의 기초도 안 된 상태에서, 어떻게 리액트의 동작원리를 이해하고 렌더링 최적화를 할 수 있었을까? 리액트를 한~참이나 몰랐다는 사실은 부끄럽지만 그만큼 데브코스의 강의를 통해 새로 배운 개념들의 의의가 컸다는 생각이 든다.
또 이번 강의가 재밌었던 이유 중 하나는 스토리북이었다. 1차 팀에서 스토리북을 사용하는 팀원을 보고 대단하다! 라고 생각은 했지만 막상 내가 그걸 직접 쓸 엄두는 나지 않았다. 다른 것들을 하기에도 바쁜데... 라는 안일한 생각이었다.
그런데 마침 강사님께서 스토리북을 사용하여 확장성이 좋은 컴포넌트를 설계하는 방법을 보여주셨다. 해당 강의를 클론 코딩하며 스토리북을 사용하는 방법과 좋은 컴포넌트 설계에 대해 배울 수 있었다.
타입스크립트는 7월에 있던 강의였지만 타입스크립트를 배우고 난 뒤로 과제에는 계속 타입스크립트를 적용하라는 요구사항이 있었다.
리액트나 뷰, 타입스크립트 중 하나라도 제대로 알고 있었다면 좋았을 텐데 아쉽게도 내가 가장 중요시 했던 것은 자바스크립트 뿐이어서 타입을 적용하자마자 빨간 밑줄들을 마주해야했다.
처음엔 울며 겨자먹기로 타입을 일일이 지정해주었는데, 이번 과제를 끝내고 보니 어디서 오류가 난 건지 몰라서 한참을 헤맨 기억이 없다. (!) 대게 잘못된 값을 넘겨준 지점을 찾기 위해 한참이나 코드를 뒤지고 console.log 를 작성했었는데 이번 과제에선 어떻게 구현할지에 대해서만 힘을 썼던 것 같아서 새삼 타입스크립트의 위대함을 깨닫게 된다.
또 과제를 통해 직접 타입스크립트를 사용해본 덕분에 이론상으로 타입스크립트를 배우는 것보다 더 빠른 학습을 할 수 있었다. 항상 새로운 개념을 배우면 적용을 주저하는데 막상 적용을 시켜보고 나면 별 것 아니라는 생각이 든다. 기술이야 배우면 되고, 프로젝트가 잘못되지 않게 하기 위해 github 를 사용하는 거니까 앞으론 새로운 기술을 배우게 되면 꼭 적용해보는 습관을 들여야겠다.
8월의 목표는 다음과 같았다.
여기서 완벽하게 한 게 하나라도 있냐! 고 하면 면목이 없다. 각 목표를 죄다 60% 정도만 완료했다.
학습하는 것을 100% 모두 나의 것으로 만들 수 있으면 좋겠지만 현재 내 상황은 그럴만한 여유가 되지 않는다. 그래서 목표를 세울 때 우선순위를 매겨 달성하려고 하는 게 좋겠다는 생각이 들었다.
8월의 나는 이렇게 생각했었다.
매주 아티클도 쓰고, 알고리즘도 풀고, 노션 업그레이드도 매일 하고, 강의도 꼬박꼬박 다 듣고 복습해서 내 것으로 만들고, 타입스크립트 책도 매일 읽고, 운동도 가고, 매일 청소하고, 요리도 틈틈히 해야지!
... 지금 와서 생각해보면 무슨 자신감으로 이렇게 많은 것들을 하려고 했나 싶다. 모든 걸 다 하려고 하다 보니 결국 모두 다 이도저도 아니게 한 것만 같다. 많이 배우고 바빴기에 시간이 빨리 지나갔지만, 우선순위를 정하지 못하고 우왕좌왕 하는 사이 시간이 훌쩍 지나간 것 같다는 생각도 든다.
그래서 9월에는, 좀 더 명확하게 우선순위와 규칙을 분류해볼 생각이다.
건강 상의 문제로 오전에 1시간씩이라도 운동을 하려고 하고, 주말에 애인과 함께 몇 시간씩 시간을 보내곤 했다. 그런데도 할 일이 많아 마음이 편치 않은 휴식이었다.
오전과 주말 전체 시간을 오롯이 공부에 투자할 수 없는 환경이고, 뒤처진다는 생각에 스트레스를 받았던 것 같다. 그리고 스트레스를 받는다는 사실에 제발 생각 좀 그만하라며 또 스트레스를 받았다.

ㅠㅠ... 나 같이 생각이 많은 사람은 생각을 하지 않는 것이 더 좋다고 하는데, 맞는 말이라고 생각한다. 괜히 복잡하게 생각하지 말고 노는 시간을 줄이고 자는 시간을 줄여서 깨 있는 시간을 효율적으로 사용하는 것이 답이라고 생각한다.
언제나 답은 간단하다! 다만 그 실천이 어려울 뿐...
8월의 회고를 통해 9월의 키워드는 다음으로 삼았다.
우선순위Just do it! (No xxxxx keep going)그래서 현재 내게 가장 중요하다고 생각하는 우선순위를 딱 3개 뽑고, 시간이 나는대로 무식하게 할 생각이다.
- 주 3회 운동
- 프론트 팀 프로젝트 무사히 완료하기
- 졸업작품 프로젝트 무사히 완료하기
7월보다 건강한 8월의 나를 기대했는데 별로 건강해진 것 같지 않다. 9월엔 보다 많이 먹고 많이 운동해서 공부를 위한 체력을 쑥쑥 키울 수 있었으면 한다.
그리고 그 체력으로 프로젝트도 무사히 마무리하길 바라는 마음이다.
수연님~ 9월은 건강하고 힘차게 프로젝트 합시다 !!!! 오프라인도 껴있으니까 햇빛도 많이 받아봐요 ☀️☀️