비전공 저연차 개발자가 할 수 있는 실수

인사이트 by 제로베이스

| 학교에서 공부를 한 것과 독학을 한 것은 무엇이 다를까?

빠르면 고등학교에서, 늦으면 대학교 혹은 그 이후에 우리는 진로를 결정한다. 전공을 업으로 삼는다는 것은 현명한 선택이다. 학교는 지식만을 가르치는 곳이 아니라는 말은 사실이다. 그 분야에서 일을 하는 사람들을 직간접적으로 만나볼 수도 있고 미래의 동료 혹은 경쟁자가 될 사람들도 주변에 넘쳐난다. 그리고 커리큘럼대로 따라가다 보면 이 분야를 공부하는 방법론을 터득할 수 있다. 주변 환경이 온통 내게 자극을 줄 수 있는 요소들로 가득 차 있다는 건 엄청난 자산이다. 인간은 환경에 지배 당하는 법이다.

비전공자가 독학으로 개발을 배우면 어떻게 되는지 설명해 주겠다. 운이 좋아서 공부 초반에 이해력이 빠르거나, 타고난 재능이 있다면 커다란 흥미를 느끼고 시작할 것이다. 그렇지 않다면 시작부터 포기하겠지만, 운이 좋거나 타고난 재능이 있는 비전공자 신입 개발자는 우물쭈물 이 직업 세계에 발을 들여놓게 된다.

하지만 여기서 이 사람의 앞에 펼쳐진 길은 굽이굽이 이어진 산길이 아니라, 끝이 정해져있는 단거리 경주 트랙과도 같다. 보고 배울 동료, 시간을 들여서 평가해 주실 선생님, 주기적인 테스트가 없기 때문에 자신이 잘하고 있는지 알 길이 없어서 하나의 길이 끝날 때 그다음 길을 찾지 못하기 때문에 길이 끊겨버리는 것이다. 그리고 공부하는 방법론을 모르기 때문에, 어떤 걸 모를 때 어디를 어떻게 찾아봐야 할지 갈피를 잡지 못하고 헤매다 지친다.

동료들은 너무 뛰어나서 나랑은 상관없어 보이기 때문에 자극이 되지 못한다. 학교를 다니지 않은 신입 개발자의 환경에는 자극이 될 만한 요소가 하나도 없다. 그의 잘못이 아니다. 그는 열심히 했고, 직장에서 만난 선배와 동료들에게 도움도 구해보려고 했으며, 실례를 무릅쓰고 질문도 많이 했다. 하지만 그 순간 이해를 하고 돌아와서 응용을 하려고 하면 긴 시간이 걸린다. 학교라면 하루, 이틀, 일주일을 들여 쉬운 것부터 어려운 것까지 하나씩 과제를 완성하면서 성장을 할 수 있을 것이다.

하지만 회사는 일을 하는 곳이니까 이렇게 틈틈이 알아낸 지식에 대해 개인 시간을 쪼개어 공부를 해야만 하는데 (똑같은 걸 또 물어볼 순 없으니까), 분명 아까 선배가 이해를 시켜줬는데도 스스로 복습하면 가로막히는 당황스러운 장벽 앞에서 슬그머니 포기라는 단어가 뇌리를 스친다. 그렇다. 이건 내 이야기다.

| “학교에서는 꽤 유능한 인재였던 나, 회사에서는 고문관에 사고뭉치.. ?! ㅠ”

고문관이라는 단어가 부정적인 뉘앙스가 있어서 쓸까 말까 고민했지만 이 단어가 가장 적합한 것 같아서 사용했다. "훈련되지 않는 아군은 적군보다 위험하다"라는 말이 있다. 나는 내가 '훈련되지 않은 아군'의 역할을 맡는 일이 있을 줄은 상상도 못했다. 진짜 죽을 맛이다. 차라리 대학교를 다녀오고 싶은 심정이다. 어떤 커리큘럼이 있는지, 어떻게 공부를 하면 되는지 도무지 알 수 없다. 이런 고민에 대해 나눌 수 있는 동료나 선생님도 없다. 내가 할 수 있는 건, 되든 안 되든 그냥 계속 복습을 하는 것이다. 언젠가 이해하는 날이 올 거라는 희망을 품고.

프로그래밍을 처음 시작했을 때는 자바스크립트 라이브러리인 리액트로 MVC 패턴을 만들어서 사이트를 만드는 연습을 했었다. 언어의 규칙을 이해하니 활용할 수 있었다. 그렇게 배운 걸로 앱과 웹을 제작하는 에이전시에 들어가서 일을 했다. 만들 수는 있지만 설명할 수는 없는, 구글링 실력은 늘지만 내 것이 되지 않는, 디버깅 실력은 제자리걸음인 나날이 신입이라는 미명 하에 이어졌다.

에이전시에서 앱의 기초 모양새를 갖추면 외주를 맡긴 업체에 보내고 손을 털어야 하는 것이 아쉬웠다. 서비스 기획에 대해 고민도 하고 논의도 많이 하고 싶었다. 그러려면 자사 서비스가 있는 회사를 들어가는 게 맞았다. 그렇게 전동 킥보드 회사, K사에 들어갔다. 그리고 두 달 뒤, 어마어마한 사고를 치고 말았다.

| 자기 몫을 충실히 해내는 사람

기획서가 있었고, 다음 배포일이 이틀 뒤로 정해져 있었고, 간단한 플로우를 수정할 부분이 있었다. 내가 할 수 있다고 생각했다. 이미 정해진 기획서와 플로우 차트가 있기 때문에 그대로 따르면 된다고 생각했다. 하지만 간단하다고 생각했던 플로우 수정은 또 다른 버그를 일으켰고, 그걸 고치면 또 다른 버그, 또 다른 버그... 긴장감에 파묻힌 나머지, 나는 거기에서 두 가지 참담한 실수를 저질렀다.

첫째, 플로우 차트와 코드를 정확하게 이해하지 못한 채로 작업을 했다. 둘째, 내 스스로 할 수 있는 일인지 아닌지, 기한이 얼마나 걸릴지, 배포를 늦추는 게 필요할지 논의를 하지 않고 정해진 기한을 무조건 맞춰야 한다는 바보 같은 오해를 했다. 나 때문에 팀장님과 팀원들은 몇 날 며칠 야근을 했고, 코드는 결국 이해를 못 해서 팀장님의 도움을 받아 다 뜯어고쳤다. 빈대 잡으려다 초가삼간을 다 태운 격이었다 ... 팀원 혹은 팀장의 입장이 되어서 이 글을 읽는다면, 상상만 해도 억장이 무너지지 않는가?

후회라면 끝도 없다.
기획서를 더 꼼꼼히 보고 필요한 요소들이 다 반영되어 있는지 살펴봤어야 했는데. 플로우 차트에 빠진 부분이 없는지 논의하고 보완했어야 했는데. 이해가 잘 가지 않는 코드라서 내가 맡기에 어려운 일이라고 말했어야 했는데. 내가 맡아야 하는 일이라면 시간을 들여서 천천히 리팩토링을 하고 다음 배포에 반영하자고 했어야 했는데. 나는 1인분을 해내지 못했고, 훈련되지 않은 아군이 되어 우리 팀을 피로와 위기에 빠트렸다.

| 절대 포기하지 말라는 글입니다

전동킥보드와 도로교통 안전에 대한 논의가 활발하게 이루어지고 있다. 우리 회사는 앱과 킥보드 기기를 모두 서비스하는 회사라서, 책임감이 더 막중하다. 기기의 안전과 앱의 사용성이 유기적으로 개선되도록 최선을 다한다.

그토록 꿈꾸던, 자체 서비스를 위해 활발하게 논의하는 회사에 들어와서 일을 하고 있는데, 그새 초심을 잃고 정해진 대로만 일을 하려고 했던 것 같다. 어차피 여기 있는 사람들은 다들 나보다 뛰어나니까 나는 지금 당장 1 인분을 할 수 없을 거라고 생각했던 것 같다. 비겁했다. 회사에서 나에게 기대하는 것은 높은 기술적인 역량이 아니라 활발하게 소통하고, 사소한 일이라도 버그를 내지 않고 완벽을 기하는 섬세함이었는데 그걸 이제야 알아버렸다. 한번만 더 기회가 왔으면 좋겠다. 아, 잘리지 않았으니 팀원들과 회사는 나에게 기회를 한 번 더 준 셈이다.

잘하고 싶다. 앱 서비스를 만드는 일이 얼마나 어려운지 이제 알았다. 하지만 정말로, 잘하고 싶다. 내가 만든 앱이 쓰임새가 있다는 것은 엄청난 희열이다. 그 희열을 계속 느끼고 싶다면 사용자들의 눈치를 잘 살펴야 한다. 누구나 편안하게 쓸 수 있도록 고민하고, 버그를 만들지 않도록 노력하고, 그러지 못했을 때의 비판과 비난을 감수할 각오는 되어 있어야 한다.

컴퓨터공학을 전공하지 않은 비전공자가 개발자를 한다고 말할 때, 주변에서 걱정과 우려의 목소리가 쏟아지는 것을 알고 있다. 내가 겪은 이런 고민과 성장통들을 직간접적으로 보고 들은 많은 사람들이 해주는 조언일 것이다. 나와 비슷한 고민을 하고 있는 사람들이 있다면, 누구도 포기하지 않았으면 좋겠다. 할 수 있다. 못할 게 뭐가 있겠는가? 틀리면 바로잡고, 실수하면 반성하고, 도움이 필요하면 도움을 요청하면서 끝까지 포기하지 않고 길을 만들어 나가면 된다.

TMI. 정제된 투로 쓰였지만 이 글을 쓰기까지 며칠 동안 마음이 지옥이었다. 서비스를 만든다는 건 엄청난 일이다.

TMI2. 너무 잘하려고 하면 더 망한다는 걸 알았다. 특히 나같이 걱정 많은 완벽주의자는 금방 시야가 좁아지고 패닉이 된다. 이번에 반성했다고 이번 주말에 또 너무 무리하지 말고, 구현 연습은 주말에 두세 시간씩만 꾸준히 하는 게 좋겠다. 더 신경을 쏟을 부분은 정해진 시간에 일어나서 밥을 먹고, 정해진 시간에 운동을 하는 것이다.

  • *이 콘텐츠의 원문은 zwoo 님의 브런치입니다. 제로베이스 미디어에서 더욱 다양한 필진의 인사이트 콘텐츠를 만나보세요.

    *해당 콘텐츠의 저작권은 원문 작성자에게 있으며, 무단 전재, 복사 및 배포 등을 금지합니다.


추천 컨텐츠