작년 11월 스마일게이트 STOVE DEV CAMP 합격글을 쓴 후, 3개월이 지났다.
이 3개월은 내 인생에서의 전환점이라고 얘기해도 될 만큼 값진 시간이었고, 내 스스로도 이 시간을 후회 없이 보내기 위해 많은 노력을 했다.
아침에 일어나 준비하기-개발하기-씻기-잠자기 말고는 무얼 했는지 기억나는 것이 없을 정도로 개발에만 몰두했고, 데브 캠프의 환경과 지원 덕인지 그 과정이 힘들다는 생각보다는 오히려 하루하루 개발에 대한 욕심으로 가득 찼던 것 같다. 특히 code fix 2주 전부터는 프로젝트 일정을 맞추기 위해 우리 팀, 다른 팀 분들과 서로 의지하며 새벽에 퇴근하고 아침에 출근하는 일을 반복했었는데, 그 당시에는 살인적인 스케줄 속에서도 이상할 정도로 힘든 것을 못 느꼈다.
..그래놓고 캠프종료 후 3일 내내 잠만 잤다.
지금 돌이켜 보면 캠프에 합격한 것이 신기할 정도로 캠프 전에 아무런 지식이 없었다. react와 node.js로 단순한 CRUD로 구성된 아주 자그마한 프로젝트들을 만들어본 것이 다였고 웹 프론트엔드 개발에 대한 이해도도 많이 떨어졌었다.
우물 안 개구리라는 말이 가장 적합하지 않을까 싶을 정도로 근거 없는 자신감이 가득 찬 상태로 잘 할 수 있다는 열정만을 내세워 자기소개를 작성했고 면접에 임했다.
[당시 면접 상황 재현]
캠프장님 : javascript 잘 하세요?
나 : 아니요.
캠프장님 : promise 잘 사용하세요?
나 : 아니요.
물론, 이렇게 말하고 끝내진 않았지만.. 이런 저를 받아주셔서 감사합니다 😭
나름대로 자신 있었던 react가 아닌, vue 프레임워크를 사용하여 프로젝트를 개발하기로 했다.
vue는 학교에서 팀 프로젝트를 했을 때 잠깐 사용했던 것이 다인데 그 프로젝트에서 프론트의 비중이 크지 않았으며 이해도가 거의 없었다.
그럼에도 왜 vue를 선택했냐?
react로 비슷한 느낌의 프로젝트만 여러 개 만들다 보니 더 이상 발전이 없었고, 어떻게 해야 전진할 수 있을지 명확히 감이 오지 않는 상태였다.
다른 프레임워크를 사용하면 시야가 넓어지지 않을까란 생각이 지배적이었고 동시에 새로운 도전도 하고 싶었다.
OT가 끝난 다음날부터 vue의 기초부터 팠고 동시에 상태 관리 라이브러리인 vuex도 공부했다. react에서는 context api라는 친구를 몇 번 썼던 게 다인데, 역시 이해도가 부족한 상태로 썼었기에 상태 관리 라이브러리는 처음 공부하는 것과 다름없었다.
개인 프로젝트 시작
팀 프로젝트를 시작하기 전 캠프 첫 주 동안 인증 서버 만들기 과제가 있었다. 프론트엔드 개발자는 백엔드 영역을, 백엔드 개발자는 프론트엔드 영역을 도전해 보는 그런 시간이었다.
그런데 난 첫 주부터 백엔드 영역이 아닌 프론트엔드 영역 때문에 굉장히 골머리를 앓았다.
로그인/회원가입 기능을 과거에 구현했었으나 당시 유명했던 블로그를 보고 그대로 따라 쓴 수준이라 머릿속에는 지식이 없었다. 심지어 내가 그 기능을 구현했었다는 사실도 나중에서야 기억했다.
vue와 vuex, 인증까지.. 모든 게 새로웠고 백엔드 부분까지 구현해야 했기에 너무 큰 산을 마주한 느낌이었다.
이번에 제대로 하지 않으면 지난날과 다를 게 없다며 내 스스로를 채찍질했고 전처럼 아무 생각 없이 복붙하는 게 아니라 정말로 '알고'하려 노력했다.
하늘이 무너져도 솟아날 구멍은 있다는 속담이 있듯이 어찌저찌 개인 프로젝트를 마감 시간에 맞춰 완성할 수 있었다.
팀 프로젝트 시작
무식하면 용감하다는 말처럼 처음 프로젝트 기능을 정할 때 정말 터무니없이 기능을 계획했다. 우리 팀은 디스코드 클론을 목표했었는데, 욕심만 가득해 커뮤니티, 채팅, 음성/영상 통화뿐 아니라 디스코드 봇, 공개 서버 등 다양한 기능을 다 넣자고 계획했었다.
PMP 문서를 쓰고 캠프장님과의 멘토링을 받으며 기능이 많이 정돈됐지만, 그럼에도 주요 기능인 실시간 채팅과 음성/영상 통화 기능은 끌고 가기로 했다.
팀 프로젝트를 진행하고, 중반까지도 프로젝트 기능을 계획했던 과거의 나를 뜯어말리고 싶은 마음이 강했다.
개발하는 것이 힘들어서가 아니라 이 많은 기능을 기간 안에 다 구현할 수 있을지에 대해 나 자신을 믿을 수 없었기 때문이다. 지금 생각해 보면 웹페이지 개발을 처음부터 배운 게 아닐까란 생각이 들 정도로 거의 모든 곳에서 문제가 발생했고 공부해야 했다.
거기에 webRTC와 webSocket을 처음 마주했기에 엄청난 부담의 연속이었다.
인터넷의 위대함, 그리고 우리 팀원과 다른 팀원분들의 도움 덕에 결국 수많은 문제들을 헤쳐나갈 수 있었고 결과적으로 디스코드 클론을 위해 계획한 모든 기능을 구현할 수 있었다.
그렇게 최종 발표까지도 팀원들의 도움으로 성공적으로 마칠 수 있었다.
개발자 동료
캠프를 하며 다른 팀원들과 소통하며 똑같은 프로젝트에 대해 얘기하고 기능을 구현하는 과정이 너무 즐거웠다.
백엔드 개발자와의 협업은 난생처음이었는데 모두가 잘 해주셔서 그런지 특별하고 재밌었다 😊
같은 목표를 향해 서로를 의지하며 달려오니 정이 많이 들었다.
물론, 많은 일이 있었고 다투기도 했지만 모두 다 좋게 해결했으니 문제 해결능력 짱 👍🏻 인 걸로!
캠프를 통해서 개발자 동료를 얻을 수 있었다는 점은 내게 굉장히 큰 선물이다.
웹 서비스 개발에 대한 시야
계속해서 언급했던 것처럼 나는 거의 백지상태에서 많은 기술을 새롭게 공부해야 했다. 정말 많은 성장과 발전이 있었는데, 이러한 여러 가지 기술을 공부한 것보다도 프론트엔드란 영역에 대해 시야가 넓어진 점이 가장 큰 발전이지 않을까 싶다. 예전에는 다른 사람의 글을 보며 따라 쓰기에만 급급하고 근본적인 것을 이해하지 못했다면 이제는 화면이 어떻게 렌더링되고 웹페이지가 어떻게 동작하는지 전체적인 과정부터 이해할 수 있게 되었다.
앞으로의 성장의 방향
캠프 합격 소식을 받고 캠프에 가면 공부 많이 해야지!라는 해맑은 생각을 갖고 있었는데, 캠프가 끝나니 오히려 공부할게 더 늘었다. 내가 알아야 할 부분의 부재를 프로젝트를 진행하며 많이 체감했고 그 부분에 대해 집중적으로 공부하며 성장해나갈 것이다.
캠프 수료식 날 아침부터 '이제 진짜 끝이야..? 벌써?'라는 생각이 내 머리를 뒤덮었다. 잠을 줄여가며 개발만 했던 시간이었을 뿐인데 너무나 아쉬웠다. 섭섭하고 오래된 친구가 전학 가는 그런 느낌이랄까? 그만큼 이 생활에 너무 많은 정이 들었던 것 같다. 캠프 수료식 날 하루 종일 우울했다. 🤕
캠프 운영진분들과 모든 캠프 참가자분들이 너무 그리울 것 같다.
나에게 특별한 기회를 준 스토브 데브 캠프와 우리 팀에게 너무 감사하고 만약 최종 전환이 실패하더라도 나는 개발자로서 성장하기 위해 끊임없이 노력할 것이다.
누군가 망설인다면 스토브 데브 캠프 꼭 지원하길 바랍니다 :)
잘 봤습니다!! 고생많으셨어요~~