-
✨ [비전공자의 SW개발자 성장기록] 비전공자의 당근마켓 인턴 합격까지의 회고록| 성장 기록 2021. 10. 19. 14:41
조회수를 위한 포스팅이 아닌, 평소 적고 싶었던대로 짧은 수필형 일대기를 적어보려 한다. 끝까지 읽어볼 사람이 있을지는 잘 모르겠다.
고등학교 7학년 졸업자
대학교 입학 전공은 건축공학이었다.
큰 이유는 없었다. 여느 사람들과 같이 대입 수능을 망쳤고, 갈만한 대학의 공과대학 중 입결이 낮은 학과를 골랐다.
20대 초반 당시, 소심하고 (지금도 그렇지만)술도 싫어했기에 대학생활을 즐기지 못하고 그저 고등학생처럼 짜여진대로 공부만 했다.
괜찮은 성적을 얻을 수 있었고, 그로써 2학년 때 전기공학과로 전과를 했다.
큰 이유는 여전히 없었다. 소위 전화기(전기·전자 화공 기계)가 취업률이 가장 좋았고, 화학이랑 기계공학은 안 땡겨서 전기공학을 골랐다.
이후 졸업까지 그저 짜여진 커리큘럼대로 공부했다. 전공 공부는 치가 떨리게 재미가 없었지만, 나쁘지 않은 성적으로 졸업할 수 있었다. 이렇게 보면 대졸자가 아니라 7년제 고등학교를 졸업한 셈이다.
남들이 선망하는 공기업 전기직을 똑같이 선망했고, 컴활 오픽을 따고 전기기사를 준비했다.
책에서 세상으로, 세상에서 내면으로. 눈 돌아가는 소리
전기기사 필기를 합격하고, 실기를 공부하다가 잠시 쉬는 시간에 어떤 유튜브 영상을 보게 됐다.
누구의 영상인지, 제목이 뭐였는지는 잘 기억나지 않는다. 대충 "놀면서 1년에 1억 버는 방법" 대충 이런 내용이었고, 처음으로 "짜여진 인생 커리큘럼"이 아닌 다른 분야에 대해 생각해보게 되었다.
SNS마케팅에 관심을 갖게 되고, 네이버 블로그나 인스타그램을 운영해보고 쿠팡 파트너스 활동을 해보며 세상에 대한 시야가 확 트였다. (여전히 전공 공부는 치가 떨리게 재미없었고, 이때쯤 전기기사를 때려쳤던 것 같다.)
그러던 중 유튜브 알고리즘의 추천으로 "자청"이라는 유튜버의 영상을 보게되었다. 심리학 기반 마케팅으로 스타트업의 대표가 되고 "자수성가 청년"이 된 히스토리에 대한 이야기였다. 깊이 매료되어 그 사람처럼 되고싶었고, 그 사람이 시키는대로 독서를 많이 하기 시작했다. 1개월동안 독서스터디를 모집해서, "밥먹고 독서만" 했던 것 같다. 아, 자기계발서에서 하라는대로 명상도 매일 했다.
하지만 독서를 거듭할수록, "앞으로 내가 어떻게 살고 싶은지"에 대해 깊이 생각해보게 되었다. 더 이상 "놀면서 1년에 1억 버는 방법"같은건 중요하지 않았다.(현실적이지도 않았다.)
나는 남을 돕기를 좋아하고, 소통을 좋아하고, 일상에서 잡다한 아이디어가 많았다.(실현할 능력이 없는게 늘 아쉬웠다. 코로나 사태가 터지자마자 메타버스 아이디어도 떠올렸으나...) 무엇보다, 지금까지 공부하고 경험해본 것 중 가장 재밌었던 건 다름아닌 "컴퓨터 프로그래밍"이었다.
향후 내 수십년 간의 인생인 "직업"만큼은 내가 가장 재미있어 하는 것을 해야겠다고 생각했다. 그래서 사람들에게 도움을 주는 서비스를 제공하는 SW개발자가 되어야겠다고 결심했다. 자청이라는 유튜버가 직접 내 인생에 영향을 준 건 아니지만, '독서'라는 인생을 바꿀 방법을 제시해 준 셈이다.
이 때가 작년 11월이니, 1년도 안 되었다.
비전공자가 SW개발자로 성장하기까지
계획수립
당시 할 줄 알았던 건 대학 교양과정으로 배운 C와 C++의 기초문법 뿐이었다. 수업을 들은 지는 몇 년 되었지만, 워낙 재밌게 공부했던 탓인지 이 때에도 C++로 간단한 계산기 프로그램정도는 만들 수 있었던 것 같다.
지금은 P형에 가까워졌지만 당시에는 극한의 계획형 인간이었다. 때문에, 12월 중순까지 한 달 정도는 각종 매체(주로 유튜브)를 통해 SW산업에 대해 알아보며 "어떤 언어로 어떤 분야를 어떻게" 공부할 것인지 계획을 세웠다. 수백개의 영상과 글을 읽었다. 이 때 SW인재 양성기관인 42서울(42Seoul)과 삼성청년SW아카데미(SSAFY)에 대해서도 알게 됐다.
SW 개발자가 되기로 결심한 이유인 "많은 사람들에게 도움을 주는 서비스 제공"에 "모바일 앱 개발자"가 가장 적합하다고 생각해서 앱 개발자가 되기로 결심했다. 전공자도 되기 어려울 만큼 공부해야 할 분야의 폭이 넓은 직무이지만, "된다 안 된다"를 생각하지는 않았던 것 같다.
독학
이후 두 달간 Java와 Python을 독학했다. 프로그래머스/백준 사이트를 통해 알고리즘 문제를 풀기 시작했다.
한 달간 Android를 독학했다. 책을 사서 무작정 따라했고, 제반 지식의 부족함을 실감하며 통탄했다.
42Seoul
21` 3월에 42Seoul 4기의 선발 과정이자 훈련생 과정인 라 피신(La Piscine)에 참여했다. 한 달간의 선발과정 끝에 42Seoul의 본과정에 입과하게 되었다.
Mac OS CLI에서 C Programming을 학습하기 때문에 앱개발과는 관련이 없다.(사실 깊게 파고들어가서 이야기하자면 관련이 없지는 않다만... 여기서는 생략) 하지만 low level programming을 학습하고, 네트워크/알고리즘/자료구조를 학습하며 컴퓨터 자체에 대한 이해도가 굉장히 높아지는 기간이었다.
컴퓨터에 대한 이해는 높아졌지만 "아키텍처"나 "프레임워크" 등에 대해 학습하기는 어려웠다. 때마침 SSAFY의 이번 기수(6기)부터 모바일반이 신설된다는 소식을 듣고, 서류 - 테스트 - 면접 과정 - (합격 후)반배정 테스트를 통해 SSAFY 모바일반의 교육생으로 선발되었다.
SSAFY
모바일반은 구미캠퍼스에만 신설됐기 때문에 구미캠퍼스로 지원했다. 구미로 내려가서 살아야 한다고 생각하고
여자친구와 떨어져 지낼 생각에합격하고도 슬펐는데, 코로나19의 심화로 인해 전면 비대면으로 수업이 진행되어서 집에서 온라인으로 학습할 수 있었다.예상 외로 바로 앱개발을 학습하지는 않았다. Java를 학습하고, 알고리즘을 학습하고, HTML/CSS/JS와 Vue.js로 웹 프론트엔드를, MySQL로 DB를, Spring/Spring boot Framework로 웹 백엔드를 학습했다. 그 뒤에 Kotlin을 학습하고 안드로이드를 학습했다.
모바일반에서 웹개발이 웬말이냐고 할 수도 있지만, 나는 꽤나 만족스러웠다. 웹개발을 학습하고 프로젝트를 진행해보며 MVC 등의 디자인 아키텍처에 관한 지식, 프론트/백엔드 입장에서의 시야, 협업 경험 등 얻을 수 있는 점이 많았다. 비록 나는 네이티브 앱을 공부하다가 취업으로 중도퇴소했지만, 이후 웹앱까지 공부했더라면 웹 지식도 결국 필요했을 것이다.
무엇보다, SSAFY에서 학습한 백엔드 지식을 통해 🥕당근마켓의 서버 개발 직무 채용형 인턴에 합격할 수 있었다. 물론 그것만으로 합격한 건 아니고, 알고리즘 스터디를 운영하고 CS스터디에 참여했다. 스터디들 또한 많은 도움이 되었다. 그럼에도 모자란 점이 많았는데, 면접관분들이 좋게 잘 봐주신 것 같다(?).
사실 떨어질 줄 알았다근황
9월부터 공채 시즌이 되면서 수업들으랴, 과제하랴, 스터디하랴, 채용공고 검토하고 기업분석하고 포폴만들고 이력서내랴 정신이 없었다. 심할 때는 사흘 연속 2시간밖에 못 자기도..
그래도 이 과정 또한 재미있었다. 진로를 바꾸기 전, 전기직으로 이력서를 낼 때에는 자격요건, 우대사항에 나온 내용을 '잘 모르는 것도 얕게 찾아보고 아는 척' 적어서 내는 것이 많았고, 면접까지 가는 경우도 거의 없었다. 반면 SW를 공부하고 나서는 자격요건이나 우대사항에 나온 내용이 거의 아는 내용이었기 때문에 신기했고, 면접도 볼 기회가 꽤나 주어졌다.
갑자기 서버 개발자로 취업한 것에 대해 의아할 수도 있겠다. 앱개발자를 꿈꿨지만, 백엔드 공부도 해보니까 적성에 잘 맞고 재미있었다. 그리고 내가 목표로 하는 "직접 서비스 어플리케이션 만들어서 수백만 MAU 유치하기"를 위해서는 안드로이드 지식 이상으로 서버에 대한 지식이 요구된다. 그 지식을 내가 꿈에 그리던, 그리고 내 목표의 롤모델과도 같은 당근마켓의 서버 개발 인턴을 통해 공부할 수 있게 되어 매우 기쁘다.
만약 앱개발이 아쉽다면 취미로 할 수도 있을 것이다. 혹은 당근마켓에서 역량을 인정받아 정규로 전환된 뒤, 먼 미래에 기회가 된다면 직무이동을 노려볼 수도 있을 것이고...
어차피 내 목표는 최강 풀스택 개발자다 웹 앱 데이터 서버 OS 임베디드까지 씹어먹는일단 지금 눈앞의 1차 목표는 정규직 전환을 위한 서버 역량 개발이다.이뤄온 것
- C/C++/Java/Python/Kotlin/Vue.js
- Spring/Spring Boot
- MySQL
- Android
이뤄낼 것
- GoLang 기본문법 학습 - 기존에 Kotlin으로 알고리즘 문제풀이 하던거 Go로도 할 수 있을 만큼 익숙해지기
- CS공부 및 정리
- 고민 - 스타트업에서 함께 일하고 싶은 신입 서버 개발자란?