2월 15일 두근거리는 마음으로 들어선 위워크 선릉 2호점의 낯선 느낌이 엊그제 같은데 벌써 수료란다. 3개월의 세월이 유수와 같이 흐를 것이라고는 예상하지 못한 바는 아니지만 막상 마주치니 마냥 익숙치 않다.
시간이 빨리 흐른 만큼 나 또한 빠르게 변했다. 지난 몇 개월 전까지만 해도 앞치마를 맨 것이 자연스러웠던 바리스타가 어느새 맥북 앞에 앉아 검은 화면을 보는 것이 익숙해졌다. 나도 모르게 소프트웨어 전문 용어를 쓰며 대화하는, 막연히 동경하던 그 모습을 완전하진 않지만 하고 있다. 물론 3개월의 시간이 나를 완전한 개발자로 만들어준 것은 아니지만 모든 면에서 봤을 때 어느덧 내 모습에 개발자스러움이 스며들어 있었다.
이번 후기에서는 앞선 후기보단 조금 더 포괄적으로 회고해보고자 한다. 개발자가 되기로 한 계기를 다시 생각해보고, 코스 별로 느낀 간단한 소감을 적어보려고 한다. 또한 협업을 하며 느낀점, 마지막으로 성장 포인트와 지향점에 대해 이야기해보고자 한다. 3개월 차가 되며 앞서 했던 일정들이 많이 '추억'이 되어 정확히 기억이 나지 않을 수도 있는데 혹시 다른 후기가 필요하다면 앞서 쓴 후기들을 참고하면 도움이 될 것이다.
최근에는 면접준비, 자기소개서, 포트폴리오를 쓰며 참 많이 생각한 내용이 아닌가 싶다. 나는 대체 왜 개발자가 되려고 멀쩡한 직장을 때리치고 나왔을까?
잠시 내 인생의 절반 정도를 살았던 때로 돌아가본다.
아마 초등학교 고학년 ~ 중학생 때? PC 보급이 이미 완전히 되었고(아마 최신?) 조립 PC도 유행하며 PC방이 놀이터를 대체하던 게임 초 유행 시기였고 난 그 때 컴퓨터에 눈을 떴다. 물론 게임이 재밌어서 빠져든 것도 있지만 프로그래밍 자체가 내게 공부 외의 성취감을 준 기간이었다. 동네 컴퓨터 학원을 다니며 공부했는데, 응시하는 모든 자격증 시험에서 합격을 따냈고, 마우스 몇 번에 내가 원하는 그림과 홈페이지가 나오는 경이로움을 맛본 나는 진학마저 공고를 생각할 정도였다. 물론 부모님의 설득으로 일반고-4년제 대학을 나오긴 했지만 어린 시절 경험한 컴퓨터에 대한 기분 좋은 성취는 항상 마음 속 언저리에 남아있었다.
그렇게 돌고 돌아 다른 일을 하고 있던 나는 업계와 회사의 비전, 전망이 나의 길과 다르단 것을 느꼈고 좋아해서 시작한 일이 싫어지기 전에 그 연을 끊을 타이밍을 재고 있던 찰나였다. 그 때 인터넷 배너 창에 '비전공 개발자' 라는 AD를 보게 되었다. (물론 위코드 광고는 아니었다.)
"비전공인데 공대생이 하는 개발자? 말이 될까?"
의심 반 믿음 반으로, 잠시 과거의 추억을 회상하며 홀린 듯 여러 부트캠프를 알아보기 시작했고 마침 '위코드'를 알게 되어 상담을 신청했다.
그렇다면 단순히 과거의 즐거운 기억만으로 내가 위코드를 선택해서 개발자가 되려 했던걸까? 생각해보면 그건 또 아니다. 물론 비전이 좋아서, 유망한 직업이라, 돈 많이 벌어서(??), 이건 그래도 서서 일 안도 되어서(???) 뭐 이런 저런 이유를 부르라면 부를 수 있다. 하지만 모든 차치 하더라도, 개발자가 되겠다고 결정한 아주 결정적인 계기는 "끊임없는 자기계발" 이었다. 아니 이게 무슨 소린가? 싶을 것이다. 그렇다. 그 이유 때문이다. 퇴사를 결심하게 된 것도 내가 더 이상 성장할 것이란 보장이 없어서였다.(물론 그 외의 다양한 이유가 있다.) 내가 처한 상황과 비교했을 때, 개발자는 끊임없이 공부를 하고 새로운 것을 받아들이고, 공유하는 개발자 문화가 너무 인상적이었기 때문에 나는 고민 없이 이 길을 택했다.
이제는 기억이 까마득해진 (불과 두 달 전인데..?) 프레 코스. 어색하게 인사하던 동기들과 적막 속에 노트북 키보드 소리만 레플잇을 푸느라 울렸던 그 순간들. 나도 마찬가지로 참 열심히 풀었다. 파이썬은 심지어 50개가 넘어 더 부지런히, 경쟁적으로 풀었다. 아직 줌이 어색했던 와중에 들은 세션들, 3인 1조로 밥을 먹고 경직된 표정을 풀며 찍은 사진을 슬랙에 공유하고.. 지금 생각하면 부끄럽지만 또 한 편으론 굉장히 즐거운 기억으로 남았다.
파운데이션 코스 때는 Django를 바로 들어가서 했던 것 같은데 평소 Django하면 뭔가 어렵다 라는 인식이 있어서 그렇고, 운좋게 레플잇을 열심히 풀어서 일찍 끝내서 들어간 1조라 진도도 빠르기도 해서 그런지 유난히 Django가 어렵게 느껴졌다. 그래도 이해가 되지 않는 부분이 하나씩 해결될 때마다 웹프레임워크를 익히고 즐긴다는 느낌을 받아 즐거웠다.
아 물론 익히는 순간에는 너무 괴롭게 힘들었다. 내 이해력...
Django에 대한 막연한 이해를 바탕으로 시작한 첫 프로젝트는 막연함과 어려움 그 자체였다. 정말 운이 좋게 1차 프로젝트 때 백엔드 파트너가 우리 기수 중 가장 잘 하시는 동기와 함께 했는데 그 분이 아니었음 제대로 해내지 못 했을 정도였으니 말이다. 1차 프로젝트 때 파운데이션 때 이해하지 못하고 넘어간 모든 것을 다 제대로 배웠다. 모델링부터 시작하여서 보안, 웹프레임워크 기능과 데이터베이스 간 관계까지 말이다. 아마 프로젝트를 시작하지 않았으면 Django shell도 제대로 쓰지 못했을 것이다. HTTP 통신, 쿼리를 날린다는 의미, 데이터베이스 읽어오기, CRUD... 정말 많이 배웠다. 다시금 같이 한 백엔드 파트너 동기에게 너무 감사하다. (동기의 소중함..) 결론적으로 1차 프로젝트 때는 파운데이션 기간 때 모자란 것들을 다시 제대로 배운 기본기를 다진 시간이었다.
2차 프로젝트가 시작되었다. 1차 프로젝트 때 많이 배웠다는 자신감이 차있었고 새로 편성된 팀도 나름대로 순항하고자 하는 의지가 강했다. 하지만 1차 프로젝트 때는 없던 각종 블로킹들이 진행을 가로막았다. 백엔드는 유닛테스트, 프론트엔드는 각종 새로운 함수들.. 서로 블로킹에 막혀 원하는만큼 진도가 나가지 못했고 그로 인해 불가피하게 유연한 스크럼을 진행할 수밖에 없었다.(뒤에 의사소통에서 자세히 다루기로..)
뭐 결론은 완성되었고 발표까지 무사히 마쳐 서로 웃으며 끝낼 수 있었지만 과정이 쉽지 않아 여러모로 아쉬웠던 프로젝트였다. 예전에 16기 선배님들이 왜 1차 프로젝트에 비해 2차 프로젝트가 말도 안 되게 힘들다고 표현했는지 알았다.
기업 협업 프로젝트 내용은 밝히기 어려운 점을 미리 염두해주세요.
2차 프로젝트가 한창일 2주차. 기업협업 팀과 갈 기업이 정해지고 뒤숭숭한 분위기 속에 하루를 보낸 기억이 있다. 바로 기업협업이 결정되는 날이었기 때문이다. 나 또한 두근거리는 마음으로 그 시간을 보냈고 한 편으로는 걱정도 들고 그랬다. 그래도 다행인 것은 조 편성이 괜찮았다는 것, 그리고 선정된 기업에서 사용하는 스택이 처음 사용해보는, 도전적인 곳을 갈 수 있어 나름대로 좋은 기회가 주어졌기에 오히려 걱정이 덜어졌고 도전적인 마음이 생겼다.
첫 출근한 사무실은 곧 이전할 사무실이라고 하여 일주일 간 공유오피스를 썼다. 첫 주는 NestJS와 Javascript 및 TypeScript 공부 기간으로 보냈는데 써보지 않은 스택을 쓰다 보니 여간 감이 잡히지 않았다. 담당자 분이 자료로 주신 내용을 자습 자료로 팀원과 함께 공부를 하곤 했는데 Django와 비슷한 면이 있으면서도 다른 부분이 조금 어려웠고 언어도 python을 쓰다가 javascript를 쓰려니 쉽지 않았다.
정말 다행히도 2주차부터는 어려움이 어느 정도 해소가 되었는데, 담당자께서 좋은 예시 자료를 만들어서 설명해주고, 프로젝트 전체에 대한 그림도 크게 설명해주셔서 따라할 수 있게 해주셨다. 그 덕에 적절한 아웃풋을 낼 수 있었고 3주차 안에 웬만한 것을 완성할 수 있었다. 주로 NestJS 를 이용해서 entity, dto, service, resolver의 연관 관계를 이용한 CRUD 작업을 했었다. 또한 만든 내용을 GraphQL이라고 MySQL과는 다른 데이터베이스를 이용해서 쿼리를 날려보기도 하면서 데이터베이스에 대한 지식을 넓혔다. 이 과정에서 새로운 스택을 배우는데에 어려움을 이겨내고 다른 스택에 대해서도 흥미를 느꼈다.
비록 결과물은 좋게 나오기는 했으나 다만 좀 아쉬웠던 점은 3주차 중반부터 기업 사정이 급격히 돌아가는 바람에 담당자와 자주 커뮤니케이션을 하지 못했다. 이로 인해 시간 활용 및 새로운 프로젝트 진행을 못 해본게 조금 아쉬웠다. 그리고 비개발자와의 협업을 기대하였지만 회사 사정상 그러지 못 해 현장감을 느끼기 어려웠던 점이 아쉬웠다.
파운데이션 기간까지는 정말 중요한지 전혀 모르고 있었다. 하지만 실제 프로젝트에 임하기 시작한 후부터 소통의 가치는 더욱 중요해졌다. 이는 다른 포지션끼리 뿐 아니라 같은 포지션끼리도 그랬다.
먼저 프론트엔드와는 기본적으로 객체의 키값부터 시작해서 모델링 구조, 화면 출력본까지 완벽하게 서로 소통이 되지 않으면 만족스러운 결과물을 얻기 쉽지 않았다. 물론 이 문제에 대해서도 대화 뿐 아니라 적절한 스택을 활용하여서 극복했다.(by 트렐로)
백엔드끼리의 소통은 작게는 변수명 컨플릭트부터 크게는 뷰, 모델까지, 함수 단위로 쪼개서 작업을 하기 때문에 더욱 중요했다. 마찬가지로 이 부분에 있어서는 큰 어려움 없이 포지션끼리 상의를 거쳤고 잘 해결해갔다. 그것보다 더 중요한 것은 내가 모르는 것에 대해 솔직하게 이야기하고 고민해보는 것이었다. 1, 2차 프로젝트 모두 내가 상대방보다 모르는 개념이 많았을 때가 종종 있었는데 이해가 안 되는 부분에 대해서 솔직하게 털어놓고 대화를 많이 했다. 그 덕에 서로 이해도를 맞추고 작업할 수 있었고 나 또한 잘 몰랐던 내용에 대해 공부가 많이 되어 성장할 수 있는 계기가 되었다.
기술적인 논의 뿐 아니라 프로젝트 전반에 대한 논의도 중요했는데 특히 2차 프로젝트 때 이 노력이 빛을 발했다. 아까 이야기 했다시피 블로킹 상황이 너무 많이 있었는데 그 때마다 서로 진솔하게 과정 및 결과를 공유하며 일정과 스크럼을 조율했고 덕분에 최종 결과물이 잘 나올 수 있었다. 만일 대화가 없이 양쪽 모두 코드 짜는 것만 집중했다면 결과물은 어려웠을지도 모른다.
나는 여기서 추가로 '정리'를 커뮤니케이션의 노력으로 더 했다. 매 스탠딩 미팅을 포함한 크고 작은 미팅들에서 서기 역할을 도맡아 내용을 정리했는데, 팀원들과 일정 및 과정을 이해하고 참고할 수 있게 도움을 주려했다. 잘 되었는지는 팀원들의 생각에 달렸겠지만 나는 이런 노하우를 통해 1, 2차 프로젝트를 모두 적극적으로 의사소통에 참여하려고 노력했다.
물론 개발자가 된 계기처럼 앞으로도 쭉 나는 성실하게 공부하는 우직한 개발자가 되고 싶다. 오죽하면 내가 제일 좋아하는 논어 구절 중 하나가 학이 1편에 '배우고 때때로 익히면 즐겁지 아니한가?'이겠는가. 하지만 앞서 계속 프로젝트도 그렇고, 프레~파운데이션 코스 모두 거치면서 참 당연하지만 중요한 가치를 지닌 개발자가 되어야겠다 하는 방향성도 같이 가져가야겠다.
바로 '함께 일하고 싶은 개발자.'
위코드 출신들 대부분이 이 이야기를 하는데에는 사실 다 각자의 이유가 있겠지만은, 나는 내 경험에서 나오는 진심으로 '함께 일하는' 것이 중요하다고 본다. 실제로 나는 동기들에게 도움을 꽤 많이 받은 편이다. 오히려 준 편은 아니라고 본다. 만일 그 분들이 함께 일하려는 마음이 없었으면? 나는 아마 지금도 프레코스 정도의 수준 밖에 되지 않았을 것이다. 그래서 내가 받은 만큼 다른 사람에게도 공유하고 도움을 주고 싶다. 열심히 공부해서 혼자 가지고 있어봤자 뭐하겠는가. 모쪼록, 한 번 발 담근 이상, 공부 좋아하고, 같이 일하고 싶은 개발자가 꼭 되어서 앞으로 개발 인생을 보람차게 살고 싶다.
3개월동안 고생하셨습니다 다민님!!
우리 모두 좋은 개발자가 되도록 같이 노력해요!! 응원합니다👏