들어가며

힘들거나 의욕이 없을때 내가 걸어온 길을 돌아보며, 마음을 다잡아보자.

"내 처지를 바꾸고 싶어 누구보다 치열하게 살아온 삶"

나는 원래 개발자가 아니었다. 부동산 건물 영업, 단순 사무보조, AMD, MD등의 일을 했다. 물론 그 일들을 엄청 못하진 않았지만 그렇다고 두각을 나타내지도 않았다. 그냥 문과를 나왔으니 어떤 일이든 전문적인 일을 해보자는 의미해서 시작한 일이었다. 내가 잘하지도, 그렇다고 좋아하지도 않는 일을 하다보니 열심히 했지만 크게 결과가 나지 않았다. 매일 잠들기 전에 과거에 대한 후회만하며 남는 여가 시간에는 게임만 했었다(더 우울한 사실은 게임 플레 시간이 많아서 레벨은 엄청 높았지만 게임에서조차 실력이 없었다...).

또한 내가 했던 대부분의 일이 공채나 경력직이 아닌 계약직이나 파견직었고, 당연히 금전적인 보상 또한 아주 적었다. 가족이 서울에 없어 자취를 해야했었기 때문에 돈도 많이 필요했고 그러다 보니 편의점 주말 야간 알바를 하며 투잡을 뛰었다. 월~금까지는 사무직 업무를 한뒤, 금요일 밤과 토요일 밤 편의점 야간 아르바이트를 했었다. 편의점 폐기를 먹으며 주말에는 나름 돈을 아낄 수 있었지만, 사는게 사는게 아니었으며 삶의 의욕 또한 떨어져 갔다.

왜 나만 이렇게 살까. 삶을 살아야 하는 이유가 뭘까.

우울감과 의욕이 점점 더 사라질때쯤 큰 기업에 AMD로 취직을 했다. 물론 파견직이었지만, 외국계 회사이기도 하고 여기에서 MD를 하시는 분들의 대부분은 좋은 대학과 정말 공부를 많이하고 노력한 사람들이 많아 하나라도 배워서 전문성있는 경력직 MD가 되보자는 생각이었다.

"이때는 개발자가 될줄은 꿈에도 몰랐지만..."

사무직 일을 하다보면 자연스레 엑셀(Excel)을 많이 사용하게 된다. 물론 이 회사 또한 그랬다. 그 당시 나는 나이도 어리고 경력도 거의 없는 신입이면서 파견직이었기 때문에 엑셀을 기반으로 대부분의 자료 취합, 조사 등의 사무 보조일을 많이 했다. 구체적으로 어떤 내용의 일을 했었냐면, 매주 각 카테고리 MD님들에게 아래와 같은 표를 엑셀 공유 파일로 만들어 경로를 알려드리고, 정보를 받아 형식에 맞춘 다음 타부서 담팀에 취합 내용을 겨야 했었다.

이제 예시 1)과 같이 취합이 되었을 경우에는 일단 날짜가 겹치면 안됐다. 그럼 각 MD님들을 찾아가 겹치지 않는 날짜로 옮겨야 한다고 수정을 요청드린다. 또한 날짜 형식은 맞으나, 전체 문서의 날짜 포맷이랑 다를 경우에 그 날짜 포맷을 바꿔줘야 했다. 이 일들을 처음에는 그냥 인수인계 받은대로 그대로 했다. 그런데 엑셀을 일을 하기 위해 계속 배우며, vlookup 같은 함수나 피벗 테이블 같은 고급 기능을 배우고 사용하다보니 문뜩 어느 순간 생각이 들었다.

이렇게 기능이 많은 엑셀인데 저걸 내가 왜 전달하고 수정해야 하지? 기능으로 어떻게 안될까? 피벗 테이블 데이버 범위를 내가 왜 맨날 지정해줘야되나, 데이터를 입력하면 입력 범위를 자동으로 추가할 수는 없을까?

그리고 저 생각을 실현하기 위해 방법을 찾다보니, 나의 첫 개발 언어인 VBA를 배우게 되었다.

"나의 첫 언어, VBA"

이때 나의 검색 실력이 부족해서 그랬을 수도 있었겠지만, VBA에 관한 자료가 많이 없었다. 그래서 서점에서 가장 두꺼운 VBA책과 함수 관련 공식 문서를 찾아내서 공부를 시작했다. 다행히 이 당시에는 급여가 조금 올라 편의점 야간 아르바이트를 그만 뒀을때여서 공부시간이 조금 생겼다. 지하철 출퇴근 시간과 퇴근 시간 이후에 꾸준히 공부를 했다. 몇 달잡고 공부를 하면 포기할거 같아 최대한 빠르게 기능을 만들려고 노력을 정말 많이 했고, 이때 자료를 찾기위해 의도치 않게 구글 검색 실력 또한 늘어갔다. 그리고 내가 공부한 내용들이 아까워 내가 VBA를 다 까먹고 10년 뒤에 봐도 글만 보고 적용할 수 있도록 쉽게 메모해 놓자는 마음으로 네이버 블로그에 공부한 것들을 정리했다.

열심히 공부를 하면서 정리도 하고, 회사 업무에 필요한 기능은 만들어 쓰다보니 업무 능률이 몇 배로 늘었다. 위 예시 1) 같은 경우에서는 캘린더를 통해 날짜를 입력 받게 했으며, 중복된 날짜는 입력을 막았다. 이렇게 바꾸니 내가 가서 바꿔달라고 하지 않아도 해당 날짜를 선택하고 싶다면 MD 분들이 알아서 이야기를 나눴고, 캘린더를 이용해 날짜를 입력 받다보니 내가 미리 정한 포맷으로 동일하게 날짜를 입력 받을 수도 있었다. 여기에 자신감을 얻고 더 많은 부분에 VBA와 매크로를 통한 일명 사무 자동화를 했었고 처음으로 보람과 재미를 느껴봤다.

"나도 좋아하고 잘하는게 있었다!"

정말 약속을 제외한 나머지 여가시간에 평일, 주말 상관없이 밤새 공부하고, 다음날 적용하는게 너무 재밌었다. 네이버 블로그에서 오는 반응도 정말 힘이됐다. 그리고 어느 순간 나보고 주위에서 엑셀을 잘한다고 말하기 시작했고, 관련 일이 필요할 때는 나한테 물어보거나 만들어 달라는 사람이 생겼다. 거짓말 조금보태 정말 태어나서 처음 있는 일이었다.

누군가가 나에게 도움을 요청하다니...

"VBA로는 너무 하기 어려운데... python이라는게 있다고?"

개인적으로 AMD업무 중에 가장 비효율적이었던게 최저가 조사였다. 우리 카테고리 매출이 떨어질때 가장 먼저 조사하라고 시킨게 우리 카테고리의 상품의 최저가를 조사하라고 했던 것이었다. 물론 합리적인 판단이라고는 생각이 들지만, 여기서 말하는 우리 MD님이 담당하는 카테고리의 범위가 매우 크다. 예를 들어 가구 카테고리라고만 해도 연동 상품을 제외하고도 순수 우리 상품이 몇 십만개는 있다. 그 중에서 중요하거나 큰 업체의 제품만 추려내도 최소 몇 천개의 상품에서 몇 만개의 상품이 있었다. 그것들의 네이버 쇼핑의 최저가를 조사하고 엑셀로 정리하는 업무다.

물론 이 업무는 하루에 다하라고 하진 않지만, 그래도 언젠가 다 해야하는 업무이다. 한번 자동화에 맛을 봐서 그런지(?) 최대한 다른 방법을 고민해 봤다. VBA로는 네이버 최저가를 가져오는 매크로를 작성하는건 상상도 안됐다. 그럼 어떻게 하지 했을때 우연히 크롤링이라는 방법을 알게되었고, 비전공자도 쉽게 익힐 수 있는 언어라고 홍보되던 python을 통해 크롤링을 구현하기로 했다.

"뭘해도 언젠간 도움이 된다."

사실 내가 VBA로 구현하는 것중 대부분은 python으로도 구현할 수 있었다. 물론 그게 더 쉽거나 어렵거나 하는 문제는 나중이야기다. 그런데 VBA를 통해 반복문, 조건문, 함수, 변수 등의 개념을 이미 한번씩 봐서 그런지 python을 공부할때도 정말 큰 도움이 되었다. 내가 알던 지식과 새로운 지식의 공통점과 차이점을 찾아내면서 자칫 지루하고 어렵게만 느껴질 법한 공부가 재밌게 변했다.

이 당시 또 돈이 부족해져서 주말 야간 아르바이트를 시작했었을 때다. 그래서 평일 회사 퇴근 시간으로만 공부하는 걸로는 부족해, 점심시간에 점심을 먹지않고 주변 카페를 가서 1시간이라도 더 공부하고 프로그램을 만들며 오류를 잡았다. 공부하기 위해 새벽까지 잠을 안자고 어떻게든 버틸려는 습관이 이때 생겼다.

1달이 조금 넘었을 때 첫 프로토 타입 웹 어플리케이션을 만들었던거 같다. 물론 완벽한 프로그램은 아니어서 1달 정도 더 수정 및 기능 추가를 했었다.

python을 공부하며 장고라는 프레임워크와 아나콘다, 파이참이라는 에디터, 크롤링이라는 작업을 통해 DOMCSS, Selector, Excel 내보내기 , 윈도우 애플리케이션을 만들면서 build, icon 넣기, 파일 형식, 환경에 대해 알게 되었다. 또한, 하루 종일 하나의 오류를 해결하며 밤새는 경험도 해보게 되었다. 무엇을 깊게 알았거나 전공자처럼 깊은 지식이 생긴건 아니다. 하지만 개발에 대해 아무것도 모르는 나에게 개발자가 될 수 있는 계기가 되어주었고, 1달만에 어떤 제품을 만들어본, 세상에서 가장 값진 경험을 가지게 해주었다.

"운이 좋아서 만들 수 있던게 아니야. 또 만들어 보자."

이 직장에서 AMD로 1년이 몇달 안남았을 무렵, 우리 카테고리에서 인스타그램 이벤트를 진행하게 되었다. 내가 AMD로 같이 일하기 전에 다른 AMD랑 이미 진행해봤었던 프로모션이었다. 인플로언서나 집꾸미기에 관심이 있는 인스타 유저를 대상으로 집을 꾸밀수 있는 상품을 제공하고, 그 상품이 포함된 사진을 인스타그램에 특정 태그와 함께 올려주면 되던 이벤트다. 여기서 AMD인 나의 가장 중요 업무 아래와 같았다.

  1. 50명의 체험단에게 한 사람당 4개의 상품을 보내주면, 그 사람이 4개의 사진을 올렸는지 확인하고 그 주소를 모두 수집해야한다.

  2. 사진마다 필수 태그를 넣었는지 확인한다.

이전에 진행했을 때는 모두 직접 확인했다고 한다. 그때는 이벤트 참여 인원 수도 훨씬 적었고 한 가지 상품만 보내줘서 그나마 노가다(?)로 할 수 있었다. 하지만 지금은 게시물 수로만 따져도 200개의 게시물이 있었고, 태그를 작성했는지 확인하는 것도 여간 번거로운 일이 아닐 수 없었다. 그래서 python과 크로미움을 이용한 크롤러를 만들어 크롤링을 하기로 했고, 1달간의 이벤트 진행일 동안 또 다시 밤을 새고, 점심 시간에 개발을 하면서 크롤링 애플리케이션을 만들 수 있었다. 그리고 이벤트 종료와 동시에 바로 인스타 아이디별 게시물 수와 태그까지 모두 확인할 수 있어, 매우 빠르게 일을 해냈었다.

"이제는 하고 싶은 일이 생겼다!"

이벤트까지 끝나고 일을 마무리할 때쯤 파견 계약 기간 1년이 거의 끝났다. 팀장님께서는 1년 연장을 제시했었지만, 이미 나의 마음의 결론은 정해져 있었다.

"하고 싶은 일을 하자."

비전공자에 CS 지식이 거의 없어서 어려울 것은 이미 알고 있었다. 하지만 지금 돈을 조금 더 버는 것보다 이 시기를 놓치면 다시는 개발 일을 시작 못할 것만 같은 느낌이 들었다. 그래서 나의 마음이 이끄는 대로 하기로 했다. 그때 내 생각은 딱 하나였다.

돈 없고 시간도 없다. 미친듯이 노력해야 한다.

"국비지원학원?"

팀장님한테 개발자를 하고 싶다고 말한뒤 계약 기간 연장을 안한다고 했다. 물론 팀장님은 전혀 믿지도 않는 눈치였다. 그럴 수밖에 없던 것이 이 회사 개발자만 하더라도 정말 너무 똑똑하고 유능하신 분들이 많았고 누가 20대 후반에 개발자를 갑자기 한다고 나간다면 응원해 주거나 믿었겠나 싶다.

하여튼 나는 퇴사 의사를 밝혔었고, 바로 국비지원학원을 알아봤다. 국비지원학원에 대해 좋은 평과 안좋은 평들이 많았지만, 사설 부트캠프를 다니기에는 돈이 하나도 없었고, 혼자 하려고 하니, 학원들에서 걸어놓은 팀프로젝트를 만들어볼 기회를 놓치고 싶지 않았다. 작은 앱이 아니라 큰 사이트를 만든다는 경험도 있어야 한다는 생각이었다. 그리고 강사님을 잘 골라야 한다고 글에는 많이 써있었지만, 그것을 고민을 시간과 돈이 없어 그냥 제일 빠른 과정으로 상담받고 신청했다. 운이 좋았는지 강사님은 아주 잘 가르쳐 주셨다.

하지만 제일 큰 문제는 학원도 퇴사도 아니었다.

돈이 없다...

내가 가진 것이라곤 1년치 퇴직금 + 실업 수당이었다. 하지만 학원을 다녀야 하는 기간은 6개월이었고, 국비지원교육 정책상 중간에 아르바이트를 해서도 안됐다. 원룸 월세와 관리비만 한달에 60만원 후반이 나왔다. 집에서는 나를 지원해줄 형편이 되지 않았다. 그래서 퇴사 전에 신용대출을 최대 한도로 받았다. 1200만원이었던... 정말 미친짓이었다. 무슨 자신감이었는지, 어떤 계산을 해서 그렇게 했는지 지금은 잘 기억나지 않는다. 정말 무모했지만 필요한 돈이긴 했다.

"너무 힘들었던 6개월"

퇴사 후 학원 개강 전까지 몇 주정도의 시간이 남았었다. 그때 서점에 가서 얇은 자바책을 산뒤 한번 처음부터 끝까지 봤다. 모르면 그냥 넘어갔다. 내 목적은 내가 배울 것에 대한 그냥 맛보기와 맨 뒤에 가면 앞에 어디가 부족할 경우 많이 막힐까에 대한 생각을 미리 학습하는 것이었다.

학원이 개강하고 정말 열심히 공부했다. 앞에 4개월은 자바와 자바스크립트, CSS, HTML, DB 등을 익히는 시간이었다. 남들은 몇 년 개발을 해야 손목이 아프다는데, 나는 2개월만에 손목이 아프고 저렸다. 평일에는 잠을 안자고 코딩을 하다가 다음날 학원에 가는 경우도 많았고(쉬는 시간 쪽잠과 점심시간에 잔다), 주말에는 아침에 일어나서 잠들때까지 계속 코딩만 했다. 구구단을 찍고 싶어 밤을 새고, 데이터를 영구적으로 저장하고 싶은데 DB를 배우지 않았을 때는 이를 해결하기 위해 엑셀에 테이블을 만들어서 혼자 이클립스에 excel 관련 라이브러리를 추가해보고 사용했다.

학원에서 알려준 것만 했으면 이렇게까지 안했을거 같다. 하지만 내 목표는 학원 수료가 아니라 서비스 기업에 들어가서 잘하는 개발자들과 같이 일하며 늦었지만 빠르게 성장하고 싶었기 때문에 하나라도 혼자 더 해볼려고 했다. 그래서 다른 사람들에 몇 배로 힘들었다.

또한 주변 학원 사람들의 시선도 곱지 않았다. 왜 맨날 배우지 않는 거를 미리하냐는 식이었다. 그들이 게임하고 술 마시고 친구 만나고 유튜브 볼때, 나는 내 삶을 바꾸고 싶어 열심히 한건데... 참 서러웠다. 이때 당시만 해도 국비지원학원에 자격증도 없으면 2000만원 초반을 받고 경력 뻥튀기한 파견 업체를 가야한다고들 했다. 내가 직 학원을 다니며 든 생각은 딱 하나였다.

이렇게 남들처럼하면, 정말 그렇게 되겠다.

그래서 서러워도 아무렇지 않은척, 나를 향한 소리가 안들리는 척 더 열심히 했다. 나도 인스트그램의 친구들처럼 당당한 직업도 갖고 부모님의 자랑도 되보자.

경제적으로는 통장 잔고도 나를 압박했다. 실업 급여와 얼마되지 않는 퇴직금은 순식간에 사라졌다. 신용대출에 대한 원리금 상환도 대출 금액이 크다보니 월세 이상으로 한달에 빠져나갔고, 월세 또한 엄청난 부담이었다. 국비지원교육이라면 특정 조건에서 40만원 정도 지원 받을 수 있는 사람도 있던데 해당이 될줄 알았으나, 그또한 되지 않아 더 손해가 심했다.

"학원에서의 마지막 프로젝트"

코딩을 하는 것은 즐거웠지만, 환경이 너무 즐겁지 않았다. 돈에 대한 압박이 제일 컸다. 오로지 서비스 기업을 한번에 가자라는 마음과, 자격증 없고 학벌 없는 비전공자는 2200부터 시작이다라는 말이 있었는데, 그런걸 깨부시고 싶다와 그리고 옆에서 여유롭게 노는 같은 반 사람들과 절대 같은 회사 안가겠다라는 마음을 가지고 정말 악착같이 마지막까지 버텼다. 특히 마지막 프로젝트에서는 내가 6명 조에 팀장을 했었는데, 디자인으로 승부를 보는 사이트가 아닌, 정말 열심히 한 티가 나는 기술로 승부를 보겠다는 마음으로 했다.

프론트는 그때 당시 뷰와 앵귤러, 리액트가 가장 인기가 많았는데, 서비스 기업을 찾아봤을때 리액트가 가장 많이 나와 리액트를 별도로 조원들과 스터디해서 리액트로 만들었다. 하지만 학원에서 배운 jsp와 제이쿼리도 할 수 있다는 것을 보여주고 싶어, 일부 페이지에서는 jsp와 제이쿼리로 페이지를 만들었다.

백엔드의 경우 제일 욕심을 낸 부분이다. 먼저 학원에서 DB로 쓰라고 빈자리의 컴퓨터를 한 개씩 배정해 주었다. 그 컴퓨터는 끄지 않고 ip로 접속해서 다들 DB로 사용했다. 하지만 그것이 효율적인가라는 의문을 품게 되었고, 클라우딩 컴퓨팅에 대한 내용을 찾아봤다. 그러다가 AWS의 라이트쉐일이라는 서비스를 알게되어 개발 서버로 사용했고 최종 웹에는 프리티어 자격으로 RDS를 사용했다. 또한 스프링 부트와 스프링 시큐리티를 적용했다. 그 역시 두개다 학원에서 배우지 않는 내용이다.

디자인은 이상하지 않을 정도로 구현하되 대신 일반적인 사이트를 만들어보자.

일반적인 사이트를 만드는데 집중했다. 이때 당시 내가 어떤 사이트에 회원 가입을 하면, 해당 가입 이메일로 인증 메일을 보냈다. 나 또한 그런걸 구현하기 위해 알아봤고, AWSSES을 이용하여 회사 이메일을 만든 후 인증 토큰을 서버에 업데이트 하여 롤을 부여하는 방식으로 개발했다. 그리고 새벽마다 RDS 상에 스케줄러를 돌려(이건 라이트쉐일이 아닌 AWS RDS로 한다, 미지원) 미인증 이메일을 토큰을 삭제했고, 그 내용을 시스템 로그 디비를 만들어 데이터를 기록했다. 이 외에도 정말 많을 것을 했으나, 그건 해당 프로젝트의 리드미 문서에 남겼다.

"학원에서 배우지 않는 것들을 공부한 방법"

학원에서 배우는 것만해도 4개월동안 정말 말도 안되게 많이 배운다. 자바를 2달만에 다 배우는 것부터가 일단 말이 안되고 DB를 몇주만에 끝내는 것도 마찮가지다. 그러다 보니 내용이 깊지도 않고, 일부러 사용하지 않으면 사용조차 거의 안하게 되는 기술도 있다.

그래서 내가 선택한 첫번째 방법은 학원에서 배운내용은 최대한 학원에서 빨리 끝내고, 못 끝내면 밤을 새서라도 본다. 그리고 내가 하고 싶은 공부나 필요한 기술이 있으면 관련 서적을 모두 구입하여 필요한 부분만 본다였다. 정말 돈을 아꼈지만 책은 그냥 샀다. 생각없이 무조건 다 샀다. 왜냐하면 밤을 세도 시간이 없었기 때문에 관련 내용을 인터넷에서 찾으면 현실적으로 시간이 너무 부족해서 이다. 그럴바에는 차라리 정제된 예제를 사용한 책을 구매하여 한 단원 보더라도 사는게 낫다고 판단했다. 6개월 학원 과정이 끝났을때 확인해 보니 최근 2년동안 나온 AWS, React, Javascript 한글 서적은 모두 구매했었다. 물론 책은 구매한게 중요한건 아니라, 그 중에서 내가 원하는 내용을 빠르게 보고 습득하는게 더 중요하다.

두번째 방법은 개발자들이 꼭 하는거 같은건 저거 못하면 개발자 못한다는 생각으로 공부하고 강제로 사용하는 것이다. 여기에 가장 대표적인 예가 Git이다. 학원에서 배우긴 하나, 시간이 없기 때문에 대충 배우고 넘어간다. 프로젝트마다 필수도 아니고, 필수더라도 그냥 zip 파일을 주고 받는 거를 심심치 않게 볼 수 있다. 그래서 나는

"이거 못하면 서비스 기업가서 협업을 할 수 없기 때문에 나를 안뽑을꺼야. "

라는 생각으로 CLI로 명령어 하나하나 배우며 깃을 공부했고 사용했다. 그리고 CLI로 하다보니 자연스레 BASH에 대해 공부도 하면서 쉘 기본 명령어들도 익히게 되었다. 이런 경험이 없었으면 비개발자인 내가 4달만에 AWS 콘솔을 만지지도 못하지 않았을까 하는 생각도 든다. 집에 와서는 학원에서 배운 모든 내용은 git 명령어를 통해 깃허브에 올리고 집 컴퓨터에서 받아서 또 작업하는 식으로 혼자 익숙해질려고 맨날 사용했다(현업에서 무슨 운영체제를 쓸지 몰라, 학원에서는 mac os, 집에서는 pull 받아서 window에서 개발했다).

"그래서 나는 서비스 기업에 갔는가."

그렇다. 이름 있는 기업은 아니지만 서비스 기업에 갔다. 나름 공부를 다 하고 갔다고 생각했지만, 실무에 가보니 거의 다 새로 또 배웠다. 매일 혼나고 PR에 코맨트가 100개 이상 달렸다. 그래도 너무 감사했고 그 내용을 토대로 더 많이 공부했다. 취직해서도 나는 매일 공부했던거 같다. 전공자나 잘하는 개발자들이 봤을때는 공부 6개월 했다고 밤샘했다고 다르게 보이지 않았을 것라고 생각했고 진짜로 잘해지기 위해 퇴근 후 매일 집 근처 카페를 가서 공부하고 주말에도 카페를 가서 공부했다. 신림 카페에서 공부했던 사람이라면 나를 나름 많이 봤을 수도 있겠다.

계속 공부해도 계속 부족하고 모르는 것 투성이었다. 그래도 공부하고 공부하여 조금씩 더 큰 서비스 기업에 이직하였다.

"왜 큰 기업에 가야하는가"

물론 큰 기업에 가면 돈을 많이 주고 복지도 좋지만 그게 가장 큰 이유는 아니다. 나의 개인적인 생각으로는 세 가지가 있다. 물론 이 답이 정답은 아니니, 아니라고 생각한다면 이 내용을 살포시 넘어가주면 좋겠다.

  1. 좋은 사람, 잘하는 시니어 개발자가 있을 많이 있을 확률이 크다 - 아무리 공부를 해도 잘하는 시니어 개발자가 직접 체득한 경험을 따라가는 것은 쉽지 않다. 수많은 요구사항과 열악한 환경에서 많은 사람들이 사용하는 멋진 서비스를 만든 사람이다. 그런 사람의 생각을 듣고 즉각적으로 피드백을 받을 수 있는 확률이 크다. 작은 기업일수록 내가 많은 것을 경험해볼 수는 있겠지만, 그것을 깊게 공부 배울 수는 없다.

  2. 좋은 코드를 작성하게될 확률이 높다 - 좋은 코드란 무엇일까. 여기에 대한 답은 물론 성능이 좋은 코드를 작성하는 것도 포함은 될 수 있겠지만, 개인적인 생각은 사람이 읽기 쉬운 코드를 작성하는 것이라고 생각한다. 뜬금없겠지만, 혹시 연금술에 대해 알고 있을지 모르겠다. 과거에 인류는 한때 연금술이라는 것에 빠져 어떤 금속을 금으로 바꾸기 위해 노력했다. 사실 계속 실패했지만, 현대 과학에서는 푸른 납(창연, pb(82)가 아니다)을 금으로 바꾸는데 성공했다. 이걸 보면 엄청난 성과라고 생각이 들 수 있겠지만, 사실은 그렇지 않았다. 이 성공을 위해 입자 가속기를 동원하여 천문학적인 비용이 들었으며, 결과물은 금은 맞았지만 방사능 범벅이 되있었다. 연금술의 목적은 단순히 금을 만드는게 아니다. 금보다 싼 비용으로 금을 만드는 것이다. 우리가 제품을 완성해 가는 것도 위 예랑 똑같다고 생각한다. 기능이건 페이지이건 개발 공부를 하고 몇 주, 몇 개월, 몇 년을 삽질을 하면 누구나 만들 수 있다. 하지만 결과물 코드를 읽기가 어렵고 유지 보수도 당연히 쉽지 않으며, 오류나 버그를 예측할 수가 없는 코드를 만들었다면 내가 작성한 코드는 훗날 더 많은 비용과 문제를 일으킬 확률이 크다. 큰 기업은 이미 위의 비용을 지불해서 고치거나 고칠수 있는 동료가 있을 확률이 크다. 그런 사람과 꼭 새로운 서비스를 처음부터 만들지 않더라도 고민하며, 코드를 하나하나 리펙토링하고 PR을 주고 받다보면 어디가서든 좋은 코드를 작성할 수 있는 개발자가 될 수 있을 것이다.

  3. 사용자가 많고 제품을 만드는데 있어 더 많은 것들을 고민해야한다 - 스타트업의 경우 완벽하게 완성된 제품을 내기보다는 프로토 타입의 제품을 먼저 만들어 시장의 상황을 지켜보고 더 나은 방향으로 제품을 만들어 가야한다. 물론 이것도 너무 의미있고 가치있는 일이다. 하지만 나와 같이 경험이 적고 시야가 아직 좁을 경우에는 내 성장을 더디게 만들 수 있다. 실제로 내가 유저가 별로 없는 작은 기업에 있었을 때는 성능 최적화에 대한 고민은 한적이 없었다. 오히려 그런 고민들을 왜 해야하는지에 대한 반문만 나한테 돌아올 뿐이었다. 그 말도 그 상황에서는 맞는 말이긴 하다. 그래서 나는 큰 기업에 가서 다양한 케이스와 요구 사항을 맞닥들이며 고민하고 공부해서 시야를 먼저 넓여야 한다고 생각했다. 단순히 필요가 없어서 안하는 것과 할 필요가 없다고 느껴서 안하는 경우는 다르며, 코드를 작성할 때도 좀 더 유연한 코드를 작성할 수 있게 해준다.

"이 글을 적는 이유"

나 또한 공부하기 싫을 때가 많다. 또는 슬럼프가 왔거나 의욕이 사라지기도 한다. 사실 오늘도 그러하다. 그래서 이 글을 적었다. 그때를 되돌아보고, 다시 초심으로 돌아가 공부를 하자는 의미이다.

주변에 정말 잘하는 개발자분들을 많이 알게 되었다. 그분들은 잘하지만 늘 공부하며 더 성장해 나간다. 나 또한 그런 분들과 더 오래 같이 일하고 싶다. 그래서 계속 공부를 하고 성장해야 한다. 공부하기 싫다면 위에 써놓은 맞춤법 다틀린 내 과거를 다시 되돌아 보자.

그리고 다시 열심히 공부하자!

Last updated