Adios 2019
머리말
작년 12월 31일에 적었던 2018년 회고록 이후 일 년이 지났다. 일 년 동안 정말 많은 일이 있었다. 지금 시점에서 작년 말에 썼던 글을 다시 읽어보니 너무 부족한 모습이 많이 보인다.(내년 말에도 지금 이 글을 보면서 비슷한 생각을 하겠지…? 부디 하길 바란다) 작년 말에는 한참 열심히 스타트업에서 코딩을 하면서 연말을 보냈던 것 같다. 지난 한 해 개인적으로 느끼는건 참 많이 성장했다는 점이다. 물론 아직 나는 실력이 부족하다는 걸 매일매일 느끼면서 살아가는 1년차 소프트웨어 개발자이다. 그동안 내가 해왔던 기록을 적으며 자아성찰을 하는 데에 가장 큰 의의를 두고, 부가적으로 이 글이 미래에 개발을 공부하는 분들에게 조금이나마 도움이 되기를 바라는 마음을 담아서 2019년 회고록을 작성해 본다.
2019년 키워드 5개
- 프로그라피
- 소프트웨어 마에스트로
- 오픈소스 해커톤 오픈핵 및 중국 해커톤
- 라이너 인턴
- 토스
아쉬운 점
- 무언가를 만드는 과정을 즐기면서 학습을 했지만, 깊이와 끈기가 부족했던 느낌이 든다.
- 코딩을 하는 시간이 부족했다.
- 블로그에 글을 꾸준하게 쓰지 못했다. Tech 관련 글을 더더욱
2020년 목표
- 다양한 오픈소스를 넓고 깊게 파 볼 것
- 실질적인 코딩을 하는데 시간을 아낌없이 투자할 것
- 블로그에 Tech 관련 글을 꾸준하게 업로드 할 것(주 1회 이상)
- 끝내주는 풀스택 사이드 프로젝트 하나 해 볼 것
- 토스에서 살아남기 ㅋㅋ
Scene #1 (1월 - 2월)
첫 개발자 인턴 경험
나는 약 2월까지 투모런스라는 스타트업에서 웹 프론트엔드 개발 인턴으로 일을 했었다. 그리고 3월에 복학을 했는데, 3월까지 학교를 다니면서 자잘한 업무들을 처리했던 것 같다. 나는 학교에서 소프트웨어벤처라는 융합전공을 신청했는데, 컴퓨터학과와 경영학과 전공을 들어야 하고 그 중에 현장실습이 6학점 있어서 투모런스에서 인턴을 하면서 그 학점을 채웠다.
당시에는 5명 정도의 팀원들로 이루어져 있었는데, 웹 프론트엔드 개발은 나 혼자 했었다. 부끄럽게도, 당시에 나는 기본적인 HTML, CSS, JS에 jQuery, Bootstrap 정도 쓸 수 있는 수준이었다.(진짜… 웹 프론트엔드는 변화가 빠르다. 그래서 항상 긴장을 늦출 수 없다 ㅠㅠ) 그리고 주변에 바로바로 물어볼 수 있는 웹 프론트엔드 개발자가 없다 보니 많이 고생을 하면서 배워나갔던 것 같다. 우리 팀은 사이즈 측정표 기반으로 옷 사이즈를 추천해 주는 서비스 만들었고, 나는 우리의 앱에서 사용자의 옷 사이즈 정보를 가져와서 Cafe24 내의 온라인 쇼핑몰에 해당 사용자가 어떠한 옷 사이즈가 맞는지를 알려주는 기능을 만들었었다.
API라는 걸 가져와서 어플리케이션을 만들어 보는 걸 이 때 제대로 처음 해 보았지 않았나 싶다.(놀랍게도ㅋㅋ) 나는 정말 단순하게 생각해서 비동기로 그냥 url 주소 따서 가져오면 되는거 아닌가? 라고 안일하게 생각했지만… 생각보다 고려해야 할 요소가 너무 많았다. CORS 에러는 거의 매일 터졌던 것 같고, OAUTH2.0 방식의 사용자 인증 절차도 PHP로 짜여진 레거시 코드를 이해하는 것이 너무 어려웠던 기억이 난다. 처음으로 Postman을 써봤고 토큰값을 가져오는 작업을 이 때 해봤던 것 같다.
스타트업을 하면서 배웠던 것들에 대해서는 여기에 더 자세하게 써 놓았다. 아무튼 이 때 되게 값진 경험을 했던 시기라고 지금도 생각하고 있다. 그러면서 2월 말즈음에 프로그라피 라는 대학생 연합 프로그래밍 동아리에 지원을 해서 합격을 하게 되었다. 이 이야기는 Scene #2에서 이어서 하려고 한다.
Scene #2 (3월 - 4월)
4학년 2학기
복학을 했다. 2018년 2학기 국비교육과정을 듣는다고 처음이자 마지막 휴학을 했는데 이전 글에서도 적어놓았지만, 아쉬움이 많은 선택이었었고 학원 안보다 밖에서 배운 개발이 훠어어어어얼씬 많았다고 확신할 수 있다. 맘 같아서는 회사에서 일을 하면서 더 개발 실력을 쌓고 싶었지만, 졸업도 하긴 해야했기에 4학년 2학기 막학기로 복학을 해서 19학점(?)을 들었다. 막학기에 19학점이라… (막학기 하얗게 불태웠다) 부디 이 글을 읽는 후배들은 나 같은 길을 걷지 않길 바란다.
융합전공에서 들어야 하는 전공 필수 3개(9학점), 전공 선택 2개(6학점), 본전공인 신소재 관련 전공 2개(4학점) 이 중에서 내 개발 역량을 키우는데 도움이 되었던 수업은 운영체제 및 데이터베이스 두 개 였던 것 같다. 나머지는.. 개발 역량에는 1도 도움이 안 되었다. 학교 수업은 나름 열심히 듣기는 했지만, 내가 학점을 빡세게 관리하던 타입의 학생은 아니었어서… (졸업학점은 3점대 초반) 학점이 좋게 나오지는 않았다.
올 해 학교를 다니면서 느꼈던 점은, 이제 졸업을 할 때가 되었다는 걸 직감으로 느꼈다. 나는 26살이고 지금 대학에 들어온 친구들은 20살인데 조금씩 세대차이(?)가 느껴지가 시작했다. 그럴 일은 별로 없었지만, 새내기 친구들에게 다가가기가 살짝 힘들었고 그래서 입학 할 때부터 가졌던 목표인 ’20학번 안보기!’를 이루기 위해 다행히 2019년 1학기로 막학기를 끝낼 수 있었다. (그래도 다시 한 번 말하지만 막학기 19학점은 아닌것 같아)
운영체제 수업이 해당 학기에서 들었던 수업들 중 가장 인상적이었던 것 같아서 이야기를 좀 해보려고 한다. 교수님은 수업시간에 학생들에게 무작위로 질문을 참 많이 하셨다. (내 기준으로) 대답하기 쉽지 않은 수준의 질문이 많았고 솔직하게 말하면 부담스럽고 힘들었다. 또한 교수님은 ‘스케줄링에는 ... 방식이 있고, 이 방식의 특성은 … 이고’ 이런 식으로 정보를 전달하는 방식의 수업을 지양하셨고, ‘…와 같은 상황에서는 어떤 스케줄링을 사용해야 할까? 그 이유는 뭘까?’와 같이 우리가 계속해서 고민을 해야 하는 방향으로 수업을 진행하셔서 비전공자인 내 입장에서는 많이 어려웠던 기억이 난다.
그럼에도 불구하고 이 수업이 인상적이었던 이유는 교수님은 수업을 모두 영상으로 남겨서 학생들이 복습할 수 있게 도와주셨고, 나는 이러한 질문이 의미가 있다는 걸 올 해 하반기 취준할 때 절실히 느꼈기 때문이다. 많은 IT 회사는 기본기가 튼튼한 신입을 원하고 그러한 기본기는 학원에서 보다는 학교에서 배울 수 있는 부분이라고 생각한다. 또한 어떠한 상황이 주어졌을 때 그 상황을 해결할 수 있는 최선의 선택을 내리는 결정은 회사에서 매일매일 일어나고 그 역량이 굉장히 중요하다는 것을 입사하고 나서 깨달았다. OS는 내년에도 책과 관련 자료, 및 강의 영상들을 통해 꾸준하게 계속 공부해 나아갈 예정이다.
프로그라피
이젠 프로그라피 이야기를 좀 해보려고 한다. 프로그래밍 실력을 키우기 위해서 이 동아리에 들어갔고, 많은 뛰어난 사람들을 만나서 자극을 받았다. 개발을 좋아하는 사람들이 모여서 개발 관련된 주제로 이야기 할 수 있는 기회가 입사 전에는 많지 않았는데 그러한 분위기가 자연스럽게 형성이 되는 것 같아서 좋았고, 서로 가르쳐 주고 배우는 문화가 잘 정착이 되어 있는 것 같아 바람직했다고 느꼈다. 팀은 자동으로 짜여져서 나왔고 웹 프론트엔드 둘, 장고 백엔드 둘, 딥러닝 둘 이렇게 6명이 팀이 되었다. 우리팀은 팀빌딩 당시 전부 2-4학년 학부생이었다. 3-4월에는 기획 및 개발 초기 작업 정도 했던 것 같고 나도 이후에 소마 일정 + 학교 일정 등이 겹치면서 시간을 온전하게 쏟지 못한 부분도 있었다. 지금 생각해 보면 너무 아쉽다.
프로그라피에서 멘토로부터 Vue.js를 처음 배웠다. 빠르게 배울 수 있는 웹 프론트엔드 프레임워크였고, 가벼워서 좋았다. React와 비교해 보았을 때 여러 모로 밀리는 점은 있지만, 내가 필요한 기능을 구현하고 쓰는데에 아직까지는 크게 불편함을 못 느꼈다. 우리 Honeybee 팀은 Vue.js + Django 스택으로 딥러닝 기반 사진 필터 어플리케이션을 만들었다. 여기에서 나는 웹 페이지 갤러리 부분을 담당했었다. Vue.js를 처음 배워서 써 본 점은 정말 좋았지만, 프로젝트의 완성도 측면에서 아쉬운 점이 조금 있었다. 배포도 결국 못 했고, Responsive 하지도 못했다. 조금 더 욕심냈다면 충분히 할 수 있는 부분이었다. 프로그라피 honeybee 포트폴리오
Scene #3 (5월 - 6월)
소프트웨어 마에스트로
4월 말 경에 소프트웨어 마에스트로 합격 소식을 들었다. 큰 기대 안 하고(붙을 거라고 생각을 안 했기 때문) 지원했는데 정말 운이 좋았다. 그래서 5월, 6월은 소마와 학교 생활에 많은 시간을 쏟았던 것 같다. 소마는 여러모로 올해 내가 했던 활동 중에 가장 의미 있지 않았나 싶다. 정말 훌륭한 멘토와 멘티들, 그리고 전폭적인 지원까지. 그 안에서 많이 힘들었지만, 그 이상으로 성장하고 배웠던 것 같다. 소마는 5월에 워크샵과 팀빌딩을 진행했었고, 6월에 기획 심의를 해서 6월 까지는 개발을 거의 하지 않았던 것 같다. 소마에서 했던 프로젝트 관련된 포스팅은 빠른 시일 내에 업로드 할 예정이다. 소마 관련 글들은 이전 포스팅에서 많이 올려두었으므로 여기서는 생략한다.
오픈소스 해커톤 오픈핵
6월까지 열심히 학교 과제 및 기말고사를 마무리 하고, 6월 말 며칠 쉬다가 해커톤에 참가하러 전북 익산을 다녀왔다. 소프트웨어 중심대학의 35개 대학이 모여서 팀을 당일날 짜고 해커톤을 하는데 오픈소스를 반드시 사용해야 해서 해커톤 이름은 오픈핵(Openhack)이다. 이 역시 이전 포스팅에서 자세하게 다루어 놓았다. 오픈핵에서 감사하게도 좋은 결과를 얻긴 했지만, 당시에 다른 부스가 개발한 결과물을 보면서 우리보다 실력 있는 팀들이 워낙 많았음을 느꼈다. 스스로 발전할 수 있는 좋은 계기가 상반기에 한 번 있었다면 바로 이 해커톤 대회가 아니었을까 싶다. ㅋㅋ
Scene #4 (7월 - 8월)
프랖 마무리 및 소마 개발 시작!
3월부터 시작했던 프로그라피 프로젝트를 7월 말에 마무리 했다. 앞서 언급한 것처럼 많이 배움과 동시에 아쉬움이 많이 남은 경험이었다. 프랖 사람들이 정말 좋았어서 계속 이어서 하고 싶었지만, 소마도 있고 하반기 취준도 해야 하는 상황이어서 한 학기만 활동하고 마무리하게 되었다. 나중에 스스로 실력도 쌓고, 기회가 된다면 멘토로 활동해 보고 싶은 마음도 있다. (일단 그 전에 개발 역량을 끌어올리자) 그만큼 좋은 경험이었고 2020년 2월 즈음에 6기를 모집하는 것으로 알고 있는데 개발에 관심있는 대학생이나 직장인들에게 추천한다
프랖을 마무리 하면서 본격적으로 소마 프로젝트 개발을 시작했다. 이 시기에는 프라이빗 블록체인인 Hyperledger Fabric을 학습하면서 도커 컨테이너 기반 블록체인 네트워크 구축 및 체인코드 개발을 위한 Golang 학습을 주로 했던 것 같다. 학부에서 네트워크 수업도 안 들었고, Docker도 Golang도 처음 써 보는 상황이라 대환장파티(?) 였지만 ㅋㅋㅋㅋㅋㅋ 소마 팀원들의 도움과 멘토님들의 가르침으로 하나하나 이슈들을 뿌러트리며 나아갔다. 소마 연수생들 중 블록체인에 관심이 있는 다른 분들과 스터디를 하면서 외부 블록체인 밋업들도 몇 번 참석했다. 실무에서 계신 분들을 만나니까 한 없이 작아지는 기분이었다.
중국 해커톤
6월 오픈핵 대회에서 좋은 결과를 얻어 8월에 중국으로 해커톤을 다녀왔다. 이 역시 이전 포스팅에 자세하게 적어놓았다. 프로젝트 기획은 그대로 가져갔으나, 머신러닝 기반 문제 추천 기능을 추가하였고 사실상 새로운 프로젝트를 진행하였다. 중국에서 VPN을 설치해서 구글 접속을 해야 했는데 중간중간 끊겼던 적을 제외하면 전반적으로 만족스러웠다. 다음번에는 중국이 되었든 다른 나라가 되었든, 정말 잘 하는 개발자들과 해커톤을 해보고 싶다. 시야가 많이 넓어지는 경험이었다.
Scene #5 (9월 - 11월)
취업 준비
하반기 취업 준비를 했다. 첫 취준이었고, 정말 많은 실패와 좌절에 많이 힘들었다. 두 세달 정도 했었는데 이정도면 더 오래 하시는 분들은 얼마나 힘들지 감이 잘 안온다. 공채도 넣고 상시 채용도 넣고 취준을 하면서 알고리즘 공부 및 CS 공부, github 관리, 이력서 정리 등등 많은 일을 했었는데 연말연초 중으로 한 번 싹 정리해서 포스팅을 해 보려고 한다.
라이너 웹 개발자 인턴
2년 전에 고대-연대 연합 실전창업학회 인사이더스를 했었다. 학회를 하면서 많은 스타트업을 알게 되었고, 그 중에서 정말 멋있다고 생각했던 스타트업 중 한 곳에서 감사하게도 짧게 인턴을 할 기회가 주어졌다. 두 달이었지만, 내가 꿈꿔왔던 스타트업에서 인턴을 하는 경험은 의미있었다. 나는 웹 PDF 하이라이팅 뷰어 개발을 하는 업무를 진행했었다. 원래는 레거시 코드에 Vue.js를 도입해 보려고 했지만 역량 미달 및 여러가지 한계로 접고, 바닐라 자바스크립트(ES6)로 페이지를 개발했다. 이 역시 이전 포스팅에 자세하게 적어놓았다.
소마 최종 발표
소마 프로젝트 최종 발표가 11월 말에 있었다. 우리는 처음 6월에 기획했던 프로젝트에서 두 세차례 피봇을 했으며, 중간중간 여러가지 한계로 프로젝트가 축소되었다. 분산 ID(Distributed ID)에 대한 관심은 늘어나고 있지만, 실질적인 사례나 개발이 그만큼 이루어지지 않는다는 점이 다소 아쉬웠다. 프로젝트는 끝이 났지만, 나는 이번 프로젝트에서 처음 써본 기술이나 인프라, 언어 등이 생겼고 새로운 것들을 접하고 학습하는데 두려움이 조금 사라졌다. 소마 연수 과정동안 얻었던 수확들 중 가장 값진 것 중 하나가 아닐까 싶다. 프로젝트 최종 발표 slide
소마에서도 멘토님과 팀원들의 도움을 정말 많이 받았다. 비전공자에 개발 경험도 적은 나에게 답답하고 짜증도 났을 순간들이 참 많았을텐데, 우리 팀은 6개월동안 크게 싸운 적이 없었다. 멘토링도 가끔 분위기가 과열 된 적이 몇 차례 있었지만, 돌이켜보면 멘토님이 그만큼 우리들에게 많은 것을 쏟아 주신 것이 아닐까 생각이 든다. 같은 팀으로 만나지 못한 멘토님, 연수생들과 많은 시간을 보내지 못한 점은 살짝 아쉽다.
Scene #6 (12월)
토스에서 새로운 시작
12월 부터 토스에서 소프트웨어 개발자로 일을 시작했다. 주요 업무는 웹 스크레이핑 및 관련 모듈 라이브러리 개발 업무이다. 총만 없을 뿐 매일매일 전쟁터와 같다. 이제 한 달 정도 되어서 조금씩 적응이 되어 가기는 하지만 아직 실수도 많이 하고 실력을 빨리 키워야 겠다는 생각을 매일 한다. 자율출퇴근이긴 하지만 출근 조금씩 일찍 하면서 TypeScript 및 ES6 공부를 조금씩 시작해야겠다.
맺음말
아직 뭐 제대로 이룬 것도 없고, 부족한 것 투성이인 신입 개발자의 2019년 회고록을 끝까지 읽어 주셔서 감사드립니다. 서두에서 언급한 것처럼 이 글은 제가 한 해동안 어떠한 일들을 했는지 기록을 함과 동시에 자아성찰을 하는 데에 가장 큰 의의가 있습니다. 그 다음으로 혹시나 저와 비슷한 길을 가시려는 분들이 비슷한 시행착오를 덜 하시기를 바라는 마음을 담았습니다. 자유롭게 피드백 주세요. 댓글, 페메, 또는 이메일(jgyuity1289@gmail.com) 모두 환영합니다. 따끔한 충고는 더 환영합니다. 다시 한 번 긴 글 읽어주셔서 감사드립니다. 내용이 도움 되었다면 추천 부탁드릴께요 ㅎㅎ
원종 github : https://github.com/dev-owen
원종 linkedIn : https://www.linkedin.com/in/wonjongoh/