개발자로성장하기 (23.04.06) 라는 제목으로 GDSC 데브톡에서 발표했습니다.
제 이름이 소개될때 뭐 두둥 프론트 리드 어쩌구 써있더군요. 창피해서 그거 빼달라고 했는데 결국 안빼준것 같습니다. 부끄. 제가 뭐 대단한걸 만들어서 창업한것도 아니고, 대단한 기업에 취업한거도 아니에요. 심지어 아직 취준이란걸 제대로 시작 안해봤습니다. 취준준생이에요. 말 그대로 취준을 준비하는..
그래서 주제에 대해서 고민을 좀 했어요. 어떨때는 새내기와 초심자분들이 많아서 기술적인 이야기를 했다간 쉽게 지루해질 수 가 있고요. 경험 많고 잘하시는 분들이 들으시기엔 별로 도움이 되지 않거나, 오히려 번데기 앞에서 주름 잡는 꼴이 될 수도 있겠죠.
어쨌든. 그러다가 대충 개발자로 성장하기 라는 제목을 들고왔습니다. 요즘 유튜브에서 흔히들 희화화 하는 ‘동기부여 강사’같은 이야기가 되지 않도록 주의를 많이 기울였어요. ‘여러분 할수있습니다!’ 같은 개쓸데없는 말을 듣고 싶어서 오신거 아니잖아요.

에타에서 이런 글을 봤어요.
취업을 하려면 프로젝트가 필요하대요. 그래서 프로젝트를 해보려고 개발 동아리에 지원하기 위해 리쿠르팅 사이트에 들어갑니다. 지원서를 쓰려고 딱 봤더니, 지금까지 했던 프로젝트 3개를 설명하래요. 이게 무슨말인가 싶습니다. 경력을 쌓기 위해서 동아리에 지원하는데, 동아리에 들어오려면 경력을 쌓아라! 뭐 이런거죠.
제 경우에는 제작년 10월쯤에 전역해서 개발 공부를 처음 시작했습니다. 1년 반정도 됐죠.
고스락 친구들끼리 모여서 시작한 프로젝트를 바탕으로 세오스 지원서를 썼고, 합격하게 되었습니다. 그 동아리에서 활동하면서 경험한것들, 배운것들을 바탕으로 고스락에서 두번째 프로젝트를 시작했어요. 또 그것들을 바탕으로 넥스터즈라는 동아리에 합격할 수 있었죠. 가장 최근에는 두둥이라는 공연 예매 플랫폼을 만들어서 실제 유저를 받고 있습니다.
한번 시작하면 방법을 대충은 알게 되거든요. 또 해둔게 많으니 동아리 지원서에 쓸 소스도 많아지고, 그렇게 합격하면 또 프로젝트를 하게 되고. 이런 순환이 계속 이어지게됩니다.

그럼 주변에서 보통은 이렇게 물어보더라구요. 맨 처음에 어떻게 했냐! 처음이 어려운데! 그러면 그때마다 제가 공부했던 것들, 뭐 스파르타니 라이징캠프니 하는 것들을 그대로 얘기해줬어요. 근데 전 되게 별로였거든요. 한달 몇십만원씩 주고 하는 부트캠프였어요. 여러분이라면 혼자해도 충분히 그 이상은 할 수 있을거거든요. 발표를 준비하면서 생각을 한번 해봤습니다. 처음 시작하는 사람들에게 무슨 말을 해주면 좋을까.
크게 세가지로 볼 수 있을것 같아요.
프로젝트를 위한 프로젝트 공부를 위한 공부 글을 위한 글
- 을 피하자!!
1 . 프로젝트를 위한 프로젝트?
역시 에타에서 많이 본 글들입니다. “포폴용 프로젝트 하나 하실 분 구해요! 인스타그램이나 간단한 투두리스트 클론코딩 생각하고 있습니다!” 그냥 뭐라도 프로젝트를 해야하니까 주제를 찾고.. 누구나 하는 게시판 만들고.. 인스타그램 클론하고.. 이런거보다 더 좋은 방법이 있을것같아요. 깃허브에 한글로 검색해봐도 몇백개가 뜨는걸요. 물론 저런걸 하지 말라는게 아닙니다. 처음엔 정말 좋은 방법이에요. 저도 맨처음 공부할때 당연히 sns 만들어봤구요, 투두리스트 당연히 해봤죠. 근데 재미없잖아요. 넥터 같이했던 현직자 형이, 제발 플젝좀 그만하래요. 그시간에 그냥 cs하라고.(뼈맞음)
주변에, 혹은 본인의 경험 중에서 불편한 점이 있으면 그걸 기술적으로 해결하기 위해 프로젝트를 진행해보는거에요. 그런게 아니라면 말 그대로 ‘프로젝트를 위한 프로젝트’가 되겠죠. 고스락에선 이전부터 세번의 프로젝트를 해왔어요. 저번주에 데브톡에 오셨다면 찬진이에게 짧게 들으셨을 얘기에요. 안오셨던 분들을 위해 한번 더 대충 썰을 풀어볼게요.

제가 군대가기전, 19년 9월에 고스락의 20번째 정기공연을 맞이하게됩니다. 선배들의 빠방한 지원으로 상상마당에서 몇백만원짜리 공연을 기획했습니다. 관객들도 갑자기 많이오구요. 그동안은 동기들에게 직접 종이티켓을 팔았는데, 회사를 다니시는 선배들에겐 그럴 수 없잖아요. 그래서 카카오톡 채널의 ‘쿠폰’을 이용한 티켓 판매를 구상하고 진행하게 됐습니다.

근데 여기서 문제가 발생합니다. 한사람이 친구거까지 티켓을 여러장 사면 어떡하지? 버거킹 플친에서 똑같은 쿠폰이 여러장 온걸 본적있나요? 실제로 안되거든요. 그래서 머리를 굴리다가 두개짜리 세개짜리 쿠폰을 따로 만듭니다. 추가로 또 예매하면 네개짜리 티켓으로 바꿔서 보내줘요. 이 외에도 문제가 엄청 많았습니다. 덕분에 임원진들이 엄청 고생했죠.

그러고 군대를 갔다왔고, 고스락 친구들과 고스락만을 위한 티켓 예매 서비스를 기획했어요. 사진은 피그마에서 직접 디자인한 초기 디자인과 플로우, 기능 명세서입니다. 처음으로 목표를 가지고 무언가를 만드는것이다 보니 정말 몰입해서 일했던것 같아요. 어쨌든, 이렇게 저희 첫번째 프로젝트를 시작했습니다.
2. 공부를 위한 공부?
주제를 정했다고 바로 프로젝트를 할 수 있나요? 그땐 저희 전부다 아무런 경험이 없었거든요. 미리 이러이런거 공부해오세요!! 하고 단톡방에 공고를 올렸어요. 3개월 뒤에 모였습니다. 저는 뭐 다른가요. 저도 감자였어요.

그동안 저는 뭐 흔히 듣는 노마드코더 강의도 들어보고. ‘리액트를 다루는 기술’이라는 두꺼운책도 완독했어요. 나름 실력에 자신감있는 상태로 프로젝트를 시작했습니다. 그런데 막상 실제로 프로젝트에 들어가보니, 이전에 공부했던것들로는 할 수 있는게 없더라구요. 매일매일 새로운 문제에 마주쳤습니다. 그렇게 되니 플젝을 시작하기 몇달동안 책보고 강의 듣고 한것보다, 겨우 한달동안 플젝하면서 직접 부딪혀본게 훨씬 더 실력이 많이 늘은거에요. 생각해보았습니다.
협업을 경험해보고, 기술을 경험해보고. 이 두가지 관점에서 봤을때 정말 좋았습니다.

GDSC에서 웹기초 스터디 들으시는분 여기 많이 계신가요?? 저번주에 깃과 깃허브에 대해서 배우신걸로 압니다. 여러명이 협업을 할때 브랜치를 파고, 각자 작업을 하고, 풀리퀘를 올리고, 병합을 합니다. 저흰 심지어 이런것도 몰랐어요. 웹 기초 스터디 2주차에 배우는 것들을요.
팀원 모두가 디스코드에 모여서요, 직접 부딪혀봤습니다. 내가 여기서 브랜치를 파서 풀 땡겨볼게. 한줄 수정했는데 푸쉬하고 한번 올려볼게. 저희때는 지뎃시 이런거 없었거든요. 직접 해보기전까진 전혀 몰랐을것들이죠

내가 짠 코드 나만 보면 그게 잘짠건지 못짠건지는 어떻게 아나요?? 그냥 돌아가면 장땡인가? 그래서 팀원들끼리 이렇게 코드리뷰를 해주면서 피드백을 주는 경험을 해봤어요. 넥스터즈에서 현업자들과 개발할땐 거의 멘토링 수준으로 받았어요. 피알을 올리면 코멘트만 거의 15개였어요. 정말 감사하죠. 어디가서 내 코드 피드백 받으려면 돈주고도 못해요.

협업 과정 외에도 단순히 기술적인 문제도 많았어요. 어디서 많이 본 분인가요?? 물론 저도 이분 강의 들었어요. 그거도 두개나. 책보고 따라치고 인강보고 따라 치고 하면 삽질할 기회 조차도 안주는거에요. 삽질만한 공부가 없거든요. 자기가 뭘 모르는지 모르고, 인강 따라서 다 만들면 내가 엄청 잘하는줄 착각해요. 정확히 제가 그랬습니다.
몇개 예를 들어볼게요

실시간으로 입장확인을 하기 위해 소켓통신을 도입했는데요, 이런건 인강에서 안가르쳐주거든요. 서비스에 필요하니까 그 때 공부를 하는거죠. 그냥 남들이 쓴다니까, 책에 나오니까 하는게 아니라 필요에 의해서 하는거에요. 첫번째 프로젝트에서만 그럴까요? 가장 최근에 했던 프로젝트도 모든게 문제였어요.
두둥에서 등록한 공연은 구글에 검색하면 나와야 해요. 그 외 다양한 이유로 서버사이드렌더링을 이용하기로 했고, nextjs로 마이그레이션했습니다. 리액트에서 하던 방식이랑은 많이 다르더군요. 서버에서 쿠키를 다루는 법도 몰랐고, 로그인 정보를 어떻게 관리해야될지도 많이 헤맸어요. 계속 구글 뒤져보고 문서나 블로그 읽고 공부하느라 3주정도는 코드에 손도 못댔던것 같습니다.
프로젝트의 볼륨이 커지고 코드의 양이 늘어나다보면, 단순히 구현 외의 것을 신경써야할 일이 생깁니다. 중복되는 코드를 줄이고, 컴포넌트를 재활용할 수 있도록 적당히 추상화해야 한다는 걸 알게 돼요. 그럼 또 막 찾아봐요. 토스나 네이버 같은데서 열리는 컨퍼런스 영상들을 보기도 하고, 여러 블로그 글들을 보면서 공부를 합니다. 그리고 제 코드에 적용해보는거에요.
그렇게 공부를 하다보면, 이전 코드에 문제점이 보이고, 기획도 더 나은 방향으로 수정할 수 있을 것 같아요. 그렇게 티켓 예매 서비스가 일년반 넘게 이어지고, 두둥이라는 플랫폼까지 올 수 있었습니다.
3. 글을 위한 글?

그리고 그 과정을 모두 기록했어요. 왜 이런 프로젝트를 했는지, 프로젝트를 하면서 어떤 고민을 했는지, 어떤 기술을 공부했는지, 어떤 어려움이 있었는지. 제가 발표를 시작하고 지금까지 말씀드렸던 내용들이 모두 제 블로그에 기록되어 있습니다. 방금 예시로 들었던 것들도 모두 이렇게 기록을 해두고 있습니다. 이제는 구글에 검색하면 제 글이 나와요. 조회수 효자입니다.
이렇게 하나하나씩 기록해온게 분명히 저한테 도움이 되었어요.
나름 잘짠 코드라고 생각해서 블로그에 정리를 하다보니, 왠지 더 깔끔하게 짤 수 있을것만 같아요. 글을 쓰기 위해서 공부를 하다보면 제 코드에 문제점이 보이기도 하구요. 그럼 그때 코드를 또 리팩하기도 합니다. 고치는거도 알아야 고치잖아요.세오스하고.. 지뎃시하고.. 넥터하고.. 매 분기.. 회고를 종종 써왔어요. 포트폴리오나 이력서를 작성할때, 대부분의 문장을 제 블로그에서 긁어옵니다. 그게 다 제 이야기니까요. 동아리나 회사 지원서를 쓸때도 마찬가지에요. 참 편합니다. 그리고 그 글들이 제 지원서에 대한 증거가 됩니다.
그러다보면 블로그를 어떻게 써야하는지, 대충 알것만 같습니다. 어느 블로그에서나 볼 수 있을 것 같은걸 복붙하라는게 아니에요. 그런건 책이나 문서에 전부 나와있죠. 그냥 제 이야기를 하는겁니다. 틀린 내용이 있어도 상관 없어요. 그럼 누군가가 알려주겠죠. 나중에 다시 읽으면 전에 틀린게 쓴걸 발견하기도 하구요. 수정은 어디에서든지 항상 중요합니다.

아시는분은 아시겠지만, GDSC 안에서 개발자 글쓰기 소모임을 하고 있습니다. 스무명 정도 되는 사람들이 격주로 자기 글을 올리고, 다른 사람들이 쓴 글을 읽어요. 끝까지 잘 돌아갈지는 모르지만 지금 당장은 다들 열심히 글을 쓰고 있습니다. 그냥 뭐 그렇다구요.
이후론 그냥 이 과정의 반복인것 같습니다. 정말로 필요한 프로젝트를 하고, 그 과정에서 필요한 공부를 하고, 그리고 그 과정에서 내 이야기를 기록하고. 그렇게 1년반을 바쁘게 살다보니까 어느새 정말 취준을 할때가 왔더라구요

저만 이렇게 했을까요? 고스락에서 같이 하던 친구들 모두 알아서 잘 하고 있습니다. 있어보이는 말로 동반 성장, 이렇게 말할 수 도 있겠죠. 처음부터 같이하던 18,19학번 친구들은 지금 현직자와 협업을 할 수 있는 동아리에서 경험을 쌓고있구요, 수익형 서비스를 런칭하는 동아리인 CMC를 했던 친구들은 외주하면서 돈벌고 있어요.
두번째, 세번째 프로젝트부터 새로 공부하며 참여했던 20,21학번 친구들은 우리와 함께 일한 경험으로 동아리에 들어갔고, 지금은 그 동아리에서 운영진을 하고 있습니다. 이제는 그 친구들이 고스락에서 후배들과 함께 하며 도움을 주는 선순환이 계속 이어지겠죠. 사실 무엇보다 제일 뿌듯한건 이부분이에요.

근데 말씀드리고 싶은건 , 남들이 1티어라고 말하는 동아리들, 넥터, 디프만.. 그런거에 그렇게까지 환상을 가질 필요는 없다는 것입니다. 다만 열심히 무언가를 하기 좋은 환경을 만들어주는것이지, 그 동아리들이 나에게 무언갈 주는건 아니거든요. 내가 열심히해야 그만큼 얻어가는게 있는거죠.
지디에스시도 마찬가지입니다. 이 커뮤니티에서 활동한다고 해서 내 머릿속에 뭐가 들어오고, 포폴이 생기는게 아닙니다. 들어와서 무언가를 해야죠. 그런 의미에서 이렇게 여러분들처럼 소중한 저녁시간을 데브톡을 들으러 오고, 매주 스터디를 수강하고 과제를 내고. 소모임이나 스터디에서 같이 개발을 공부하는 동료들을 만나고. 정말 좋다고 생각합니다. 실제로 학교 분위기가 많이 달라졌다고 느껴졌어요!! 라떼(ㅋ)는 이런게 하나도 없었거든요.
어쨌든. 여기 계신 2,3학년 친구들은 저보다 일찍 시작했고 열심히 하시니 필요하실진 모르지만.. 디코에선 한규진 실명전사로 떠들고 있으니 프론트엔드쪽에 관심이 있다거나 질문, 고민이 있을때 편하게 연락해주시면 언제든지 답변이든 이야기든,, 나눠보도록 하겠습니다.
감삼둥