개발을 독학으로 공부하면서 가장 어려운 점은 물어볼 곳이 없고 비교대상이 없어 내가 옳은 방향으로 가고 있는지 알 수 없다는 것이다. 자신감이 생기다가도 모르는 기술을 마주하면 이것도 모르는 내가 정말 할 수 있을까 하는 생각이 든다. 검색하면 쏟아지는 강의들의 커리큘럼이나 기술 스택들을 보면 막막함은 더 커진다. 이 모든 것을 쫓아가다가는 정말 가랑이가 찢어질 것 같았다.
처음 웹개발을 접하면 자바스크립트 문법을 한 바퀴 돌아 서비스를 하나 만들어 본 뒤에 리액트로 넘어가고, 리액트로 실습 프로젝트를 완성하게 되면 타입스크립트도 할 줄 알아야 한다는 압박감이 생긴다. 이때 나의 첫 번째 실수는 깊이보다 속도를 택한 것이다. 이전에도 필요한 것들은 독학으로 배워 왔기 때문에 이해하고 넘어가면 다음에 필요할 때 이를 활용하여 적용하면 될 것이라 생각했다. 하지만 개발 공부에는 이 방식이 통하지 않았다.
강의를 들으면 작고 소박한 서비스가 완성되는데 그것이 온전히 나의 코드가 되었다고 착각했다. 정확히는 강사님의 코딩 스타일이 녹여진 코드이고, 나는 그 방식을 이해했을 뿐이다. 그래서 스스로 직접 구현해 보는 것은 중요하다. 부족한 부분을 확실히 짚어보고 나만의 정리노트를 만들면서 쌓이는 내용만큼 뿌듯함도 커진다.
문제는 그 내용 또한 나의 이해를 도와줄 뿐이라는 것이다. 타입스크립트 강의를 들으면서 개념이 머릿속에 자리잡지 못하고 겉돌았다. 노션에 정리하고, 복습을 계속해도 어딘가 모르게 찜찜했다. 그저 낯설어서 그런 거겠지 했는데 개인 프로젝트에 접목해 보면서 지금까지 했던 것들은 정답이 있기 때문에 할만했다는 것을 깨달았다.
지금까지 해왔던 작업물에 나의 생각이 얼마큼 들어있을까? 어떻게 구현할까는 수도 없이 고민해 봤지만 어떻게 구현된 건 지에 대해서는 되돌아 고민해 본 적이 없었다. 어떻게 코드를 짜던 굴러가기만 하면 된다는 말이 있다. 틀린 말은 아니지만, 대충 넘어가기 위한 좋은 핑곗거리이기도 하다.
결국엔 원점으로 돌아왔다. 깊이와 속도, 그 어느 중간을 찾아야 한다. 나에겐 시간이 많지 않지만, 이전의 선택으로 후회를 했다면 이번엔 다른 선택을 하는 게 좋을 것이라는 단순한 생각으로 글로 정리하며 되돌아 보는 시간을 갖기로 했다.
고민 끝에 나만의 연습 예제가 될 수 있는 TO DO LIST를 만들어 보기로 했다. 익숙한 느낌은 도움이 되지 않을 것 같아 카테고리가 있는 CHECK LIST로 재구성했다. 같은 기능도 여러 방법으로 구현해 보고, 단계별로 업그레이드해 보면서 쉴 새 없이 마주치는 기술들을 빠르게 흡수하고 효율적으로 활용할 수 있는 사고력을 키워보자.