지난가을 단풍 구경 겸 체력단련 겸 북한산 등산을 다녀왔다. 5시간의 산행 동안 돌길을 걸으니, 개발도 등산과 같다는 생각이 들었다. 2022년이 지나기 전, 부트캠프 수료 이후 나의 개발 (취준) 생활 및 리팩토링 프로젝트 회고록을 작성해보기로 했다.
백엔드 개발자가 되겠다고 결심한 뒤, 퇴사 후 2주 만에 800만원 가량 부트캠프(3개월 커리큘럼)에 입소했다. (퇴사 전 인수인계로 인해 4주간 진행되는 사전 스터디에 참가하지 못했고, 퇴사 후 일주일 동안 퇴사 통에 시달려... 남은 일주일은 몸과 마음의 체력단련을 하고 입소했다.)
개발에 관련된 선행 지식 없이 HTML, CSS, Python, Django를 4주 안에 습득해야 했고, 5,6주 차에는 1차 프로젝트, 7,8주 차에는 2차 프로젝트를 해냈다. 9~12주 차에는 기업협업으로 인턴 생활을 끝내고 수료식을 마쳤다.
3개월 동안 최선을 다해 공부도 했고 동기 중에 가장 많이 성장한 1인으로 선정되었지만, 앞으로 나의 땅을 어떤 방향성을 갖고 비옥하게 만들어야 할지 감이 오지 않았다.
씨앗을 심기는 심은 것 같은데, 이 씨앗이 꽃을 피우는 식물인지 꽃이 피지않는 식물인지 알 수 없었고 (꽃이 피는 식물은 열매로 번식, 꽃이 피지 않는 식물은 포자로 번식한다.) 무엇보다 내가 키우고 싶은 식물이 맞는지 알 수 없었다.
식물마다 씨앗 발아법, 물의 주기, 비료, 햇빛의 양 등 모든 방법이 천차만별일 텐데 내가 키우고 싶은 식물이 정확히 어떤 식물인지도 모른채로 땅을 일굴 수 없다고 판단했고, 내가 키우고 싶은 식물에 대해 깊게 생각하는 시간을 갖기로 했다.
처음에는 개발과 관련된 궁금했던 모든 단어들을 검색했다.
유닉스와 리눅스, 맥과 윈도우의 차이, SQL은 무엇인지, 웹의 탄생, HTTP 란? 등등. Python 으로 코딩테스트 문제도 풀어보았고 SQL 문법 문제도 풀어보았다.
나의 템포로 개발의 세계에 다가가니 내가 키우고 싶은 식물, 내가 심고 싶은 씨앗들이 보였다.
최종적으로 부트캠프에서 배웠던 Python, Django가 아닌 JavaScript, Node.js 공부를 하기로 결심했다.
JavaSript 와 Node.js 로 개발을 해본 적이 없으니 언어와 웹 프레임워크에 대해 공부해야했다. 해당 언어와 웹 프레임워크에 대한 기초 공부 및 프로젝트를 진행한 뒤, 본격적으로 취업 준비를 해야겠다고 결정했다.
생애 첫 개발공부를 Python 과 Django로 진행해보았으니, JavaScript와 Node.js 도 동일하게 공부하면 될 것이라고 생각했다. (과거의 지수야,, 정신차려)
Django 는 Python 문법을 세세하게 공부 하지 않아도 Django 의 문법을 알고 있다면 충분히 개발할 수 있었다. (깊게 개발하려면 당연히 Python 문법을 알아야 합니다.. 당시에는 아무것도 알지 못해도 일단 만들어보면서 공부하는게 최선이라고 생각했습니다.)
JavaScript 는 매우매우 기본적인 것만 공부를 하고, (지금 생각해보면 기본 공부도 안 했던 것 같습니다.) 바로 Node.js 에 대해 공부하기 시작했다. JavaScript 에 대한 이해도가 전혀 없었으니, Node.js 에 대해 아무리 공부해도 머릿속에 들어오는 것이 없었다. 단순히 Node.js 에 대해 많이 공부하면 해결 될 것 이라고 생각하고 책과 인터넷 강의를 보고, 또 보면서 공부했지만 여전히 머릿속에 들어오는 것이 없었다.
"아.. 이거 뭔가 잘 못 되었다. " 라는 생각이 들었고, JavaScript 부터 차근차근히 공부하기 시작했다. 단순히 문법뿐만 아니라 JavaScript 엔진 처리 과정, 싱글스레드란 무엇인지, 정적 환경은 무엇인지, ES6 이후에 달라진 점은 무엇인지 등등 기초부터 하나씩 공부하기 시작했고, JavaScript 에 대한 지식이 쌓여가기 시작하자 Node.js 문법도 조금씩 보이기 시작했다.
JavaScript 와 Node.js(Express) 도 Python과 Django 와 같이 백엔드가 사용하는 개발 언어, 웹 프레임워크니까 공부방법도 모두 같을 것이라고 생각했다. 결론적으로 처음부터 JavaScript를 공부하고 난 후에 Node.js 를 공부하는 방법보다 오랜 시간이 걸렸다. 앞으로는 어떤 공부 방법도, 개발 로직도 당연하다는 것은 없다는 것을 상기하고 내가 내린 결정에 정기적으로 의심하고 질문을 갖는 시간을 가져야 겠다고 생각했다.
돌이켜 생각해보면 조급한 마음에 JavaScript 기초 공부가 아닌 Node.js 부터 공부를 했던 것 같다.
빨리 프로젝트를 만들어야 한다는 생각, 실제로 내가 이해하고 있는 지식보다는 깃헙에 올라가는 코드가 중요하다고 생각했던 것 같다.
개발도 다른 분야와 똑같이 땅을 비옥하게 만들어 뿌리를 깊게 만드는 것이 중요한데, 식물 뿌리의 깊이와 기둥의 두께는 생각하지 않고 무조건 키가 큰 식물을 키우려고 했던 것 같다.
돌아가는 길이 가장 빠른 길이라는 것을 다시 한 번 느꼈고, 앞으로는 속도보다는 옳은 방향성에 더 힘을 써야겠다고 느꼈다.
조금 돌아왔지만, 혼자 Node.js 로 만든 프로젝트의 기본적인 기능 구현은 해냈고, 지금도 계속 추가로 수정 중이다. 속도는 느리지만 계속 꾸준히 하다보면 언젠가 원하는 목표에 도달할 수 있음을 깨달았다. 개발은 묵묵히 꾸준히 행하는 것도 중요한 자질이라고 생각한다. 꾸준함의 힘! 계속 믿어보려 한다!
혼자 공부하다보니 공부 방법이 틀린지 옳은지 판단할 수 없었고, 판단해야겠다는 생각조차 하지 못했던 것 같다. 곁에서 함께하는 이들이 있었다면 조금 더 빨리 알아차릴 수 있었을 것 같다. 새해에는 다양한 친구들과 함께 공부하려고 한다!!! 함께 더 멀리, 더 오래 뛰어보아야겠다!
평탄한 줄 알았던 길에 갑자기 돌길이 등장 할 수도 있고, 가파른 산길에 입이 마르고 숨이 턱턱 막힐 수도 있다. 내가 걷는 길이 옳다고 100% 확신해버린다면 길을 잃을 수도 있고, 평소에 꾸준히 산행을 다니며 체력 단련을 하지 않으면 첫 등산 후 탈진해버릴 수도 있다.
하지만 묵묵히 꾸준히 하다보면 정상에 오를 수 있다는 것! 함께 걷는 이들이 있다면 더 오래 더 멀리 갈 수 있다는 것! 끊임 없이 새로운 길이 등장하고 헤쳐 나가는 힘을 기를 수 있다는 점이 참 매력적이다. 이런 개발이 참 좋다!!!!!! (등산도 좋다!)
저도 비슷한 경험을 했어서 그런지 글이 술술 읽히네요. 멋진 개발자가 되길 바래요 파이팅!