이 글을 읽으면 좋을 사람들 : 개발자를 준비하고 있거나, 개발자로 입사한 지 세 달이 안 된 뉴비들 😎
⚠️ NOTE 고수들은 알아서 지나가세요 ~
프론트엔드 개발자로서 일하면서 신입 개발자가 이런 걸 미리 알고 있다면 더 좋을 것 같다는 생각을 두서없이 정리한 글입니다.
프론트엔드에 한정된 내용일 수도 있지만, 다른 분야의 개발자분들도 충분히 공감할 수 있는 내용이라 생각합니다 : )
편의상 이제부터 반모로 진행합니다 ~
알고리즘 물론 중요하다. 그치만 "알고리즘만!" 공부하지는 말라는 얘기다.
3년 전, 개발자로 이직을 해야겠다고 마음을 먹었던 순간 딱히 주변에 도움을 받을 수 있던 상황도 아니었고 (컴퓨터과학 복전생이라서 주변 친한 친구들은 다 다른 업에 종사하는 사람들) 내가 믿을 건 인터넷 상에 올라와있는 수많은 개발 관련 블로그와 유튜브들, 그리고 직접 부딪히기 뿐이었다.
3년 전이면 다들 짐작하겠지만 코로나 대유행 시기와 맞물리던 때였고 소위 네카라쿠배라는 공룡 기업들에서도 적극적인 채용을 하던 시기였다. IT 스타트업도 때아닌 호황이었고 개발자의 몸값은 하늘 높은 줄 모르고 높아지는 때였다. 많은 채용 공고를 보면서 최소한 면접이라도 가려면 코딩 테스트는 어떻게든 통과를 해야겠구나 하고 그 때부터 약 4개월간 하루에 최소 2문제 이상 머리를 싸매며 문제 풀기에만 몰두했다. (너무 거기에만 집중을 하다보니 하다하다 꿈에서도 문제를 풀더라.)
그렇게 몇 개월을 보내니 운좋게 누구나 들으면 알만한 회사에서 인턴을 하게 되었다. (물론 정규직 전환은 실패했지만.)
정규직 전환 실패는 당연한 결과였다. 나는 알고리즘 문제만 풀 줄 알았지, 진짜 서비스를 만드는 방법은 하나도 몰랐기 때문이다. 자바스크립트 문법, 기본적인 알고리즘 지식 쌓기에만 몰두하다 서비스 회사에 와서 인턴 과제를 하려니 막막했다.
첫 번째 과제는 가볍게 TO-DO List를 만드는 거였다. (지금 생각하면 금방 만들 수 있을 것 같지만) 그 때는 정말 초보였고 어떠한 라이브러리도 사용할 수 없고 오직 바닐라 자바스크립트 + 번들링을 위한 웹팩을 쓰는 것만이 허용되었다. 정확히 요구사항이 기억나진 않지만, drag & drop 기능이 필수적으로 포함되어야 했고 새로고침 시에도 저장한 데이터가 유지되어야 했던 것 같다.
여튼 여기서 진짜 바보 같았던 건 (아마 당시 멘토님도 그렇고 팀원분들 황당했을 것 같은데) 지금 생각하면 당연하지만 웹팩을 먼저 설치하고 config 설정을 한 뒤에 번들러가 제공하는 개발 서버를 활용하고 빌드를 했어야 했는데 이전까지만 해도 그냥 VsCode에서 제공하는 라이브 서버를 쓰다가 아 배포를 어떻게 하지? 아 번들러라는 걸 쓰면 된대! 번들러를 설치해보자! 빌드 끝! ... 이라는 말도 안 되는 사고의 흐름을 갖고 있었기 때문에 이 인턴 과제를 하면서도 번들링 설정을 하지 않고 무턱대고 코드부터 짜버렸다. 옆에서 보면 정말 바보의 행진이 아닐 수 없지 않았을까? 나중에 팀장님께 피드백 받을 때서야 웹팩 설정을 먼저 해야 된다는 걸 알게 되었다. (부트캠프를 다녔다면 좀 달랐으려나?)
(나는 집에서 열심히 독학을 하다가 운좋게 인턴을 하게 된 케이스라서 사설 부트캠프나 우아한 테크코스 등과 같은 큰 회사에서 운영하는 아카데믹 코스를 하나도 거치지 않은 채 입사부터 하게 되었다. (내 운을 여기서 다 써버린 걸지도...? ㅎ))
만약 내가 서비스를 직접 만들고 배포까지 하는 그런 경험을 인턴 입사 전에 한 번이라도 제대로 해볼 수 있는 기회가 있었다면 더 수월하게 인턴 과정을 수료할 수 있었을 것 같다는 생각이 든다.
지금 이 글을 읽고 계신 준비생 분들이 계신다면 알고리즘 공부도 중요하고 병행해야 하지만 무엇보다 아주 작은 프로그램이라도 만들어보고 직접 호스팅해서 내 로컬호스트가 아닌 다른 도메인으로 접근할 수 있도록 빌드 결과물을 배포해보는 그런 경험을 해보시면 좋을 것 같다. 빌드는 왜 해야 되는지, 배포는 또 어떻게 하는지 등 직접 해보지 않으면 개발 서버와 실제 빌드 결과물이 브라우저에서 로드되고 동작하는 게 달라질 수 있다는 사실조차 입사하고 한참 뒤(!)에서나 알게 될 테니까 말이다.
이후 회사에 다니면서 많은 삽질과 맨땅의 헤딩으로 개발 실력을 쌓았지만 내가 좀 더 프로그램 서빙에 대해 잘 알고 더 많이 공부해 두었다면 3년이 지난 지금 이 시점에서 좀 더 나은 실력을 갖춘 개발자가 되진 않았을까, 더 기초가 탄탄한 개발자가 되지 않았을까 하는 쓸데없는 미련을 갖게 된다.
그러니 아직 시작단계에 있는 분들은 나와 같은 우를 범하지 말고 좀 더 잘 준비해서 1,2년이 지났을 때 더 빨리 일을 배우고 성장하는 그런 개발자가 되면 좋을 것 같다.
우여곡절 끝에 지금 회사에 합격하고 회사를 다니면서 초반 6개월~1년 간은 부족한 내 실력을 들키지 않기 위해서 부단히 노력하고 애쓰던 시기였다. 무엇보다 일정 맞추는 게 너무 어려웠고 주어진 업무를 어떻게든 해내기 위해서 내 체력, 에너지, 시간을 갈아넣던 시기였다.
기초가 부족하고 실력이 부족하니 시간을 갈아서라도 일정을 맞춰야 하는 것이 내게 할 수 있는 전부였다. 기능을 돌아가게 만드는 게 너무 중요해서 더 좋게 만드는 것에 대해서는 생각할 겨를도 없었다.
내가 버그를 만들어도 그 이유를 알아내지 못했다. 내가 짠 코드에 대해서만 겨우 알고 있는데 그 코드가 만들어낸 사이드 이펙트까지 파악하기엔 도메인 지식도 약했고 그 시기 처음으로 접했던 Next.js, Vue.js 와 같은 자바스크립트 프레임워크들에 대한 이해도도 너무 낮았다.
한 번은 내가 짠 코드가 운영 배포했는데 흰 화면으로 노출되도 뭐가 잘못된 건지 알 수가 없었다. 나는 그런 바보였다.
주말에도 일을 하던 시기가 지나 어느 정도 회사에 적응도 하고 내가 쓰는 프레임워크, 라이브러리들에 대한 이해도가 점차 높아져 갈 무렵이 되자 자연스럽게 공부를 하는 시간보다 노는 시간이 많아졌다. 이제는 충분히 일정도 잘 맞추고 어느 정도 코드도 그럴듯하게 짜는 나를 보며 많이 컸다고 스스로 오만해졌던 것 같다. 공부를 안하다 보니 자연스럽게 실력 역시 제자리걸음이 됐다.
다른 회사 기술 면접을 몇 번 볼 기회가 있었는데 전부 다 떨어졌다. 그 때 머리를 한 대 맞은 것 같았다. 따로 시간을 내서 공부같은 거 하지 않아도 내가 꽤 잘한다고 착각했었는데 시장의 평가는 냉정했다. 회사에서 React도 쓸 일이 많지 않아서(Vue.js로 된 프로젝트를 주로 담당) 잘 알지도 못하면서 나는 내가 왜 잘한다고 생각했을까.
그 때부터였던 거 같다. 공부를 다시 해야겠다고 마음을 먹은 게. 그 이후로는 사내 스터디 인증 모임도 참여하고 아침 출근 전 따로 공부하는 시간을 갖으면서 어느 정도 따로 시간을 내서 공부하려고 노력한다. 당장 눈에 보이는 가시적인 성과는 없고, 여전히 낙방하고 있지만 낙담은 안 하려고 한다.
따로 많은 시간을 내서 공부하면 더 좋겠지만 막상 취업을 하고 나면 따로 공부하는 게 얼마나 쉽지 않은 일인지 안다. 그래도 아침에 30분만 일찍 일어나서 회사 가기 전 워밍업 하는 기분으로 공부한다면, 그게 꾸준히 쌓인다면 언젠간 빛을 발하는 날이 오지 않을까?
이건 뭐 개인적인 생각이긴 하지만, 영어 공부해서 손해볼 건 1도 아니고 0도 없다고 생각한다. 개인적으로 영어를 좋아한다.
엄청 잘하는 실력은 아니지만, 그래도 전화 영어 5개월 차로서 (그 전에도 하다 말다 했지만 이렇게 연속으로 한 적은 처음인 것 같다) 어디가서 굶어죽지 않을 정도로는 하는 것 같다.
개인적인 목표는 진짜 외국에서 1,2년 간 일을 해보는 게 꿈이다. 그렇게 비즈니스 회화까지 잘하려면 캐쥬얼 영어는 무조건 잘해야 된다고 생각해서 귀찮지만(심지어 요즘은 열심히 하고 있지도 못하지만) 유튜브 채널로 영어 리스닝을 공부하고 전화영어로 스피킹 연습을 하고 있다.
한국 개발자들을 비하하고 싶은 생각은 없지만,(나도 한국인🇰🇷 사랑해요 한국...) 개인적인 생각으로 많은 유명한 외국 회사에 인도인 개발자는 많아도 한국인 개발자는 많이 없는 것 같다. 인도인보다 한국인이 못해서라고 생각하지 않는다. 다만 한국인들 중에 영어를 유창하게 잘하는 사람이 많이 없어서라고 생각한다. 물론 이외에도 많은 요인이 있겠지만 언어 장벽이 큰 이유 중 하나라 생각한다.
영어를 잘하면 더 많은 기회가 내게 생길 거라고 생각한다. 최소한 React conf 영상을 자막 없이 봐도 이해할 줄 아는 정도의 실력을 갖추고 싶다.
많은 라이브러리들의 공식문서나 스택 오버플로우의 내용을 구글 번역 없이 바로바로 이해하는 실력을 갖추고 싶다. 그러면 효율성도 더 올라가고 번역을 통하지 않은, 진짜 그 말의 의미도 더 잘 이해할 수 있을 것 같다.
쉽지는 않겠지만 꾸준히 노력하고 싶다.
우스갯소리로 요즘 너무 내가 안 풀리는 것 같아서 삼재인가 싶어서 찾아봤다. 2024가 날삼재인 해라는데, 내년부터는 그럼 좀 잘 풀리려나? 🙏 미신에라도 기대고 싶은 나약한 사람이다.
그래도 못 먹어도 고!다.
fin.
수빈님 넘 멋쪄요 항상 응원합니닷 💕