삼바의 2019 회고록
2019 회고록
철학과 출신 개발자인 삼바에게 개발 2년차인 2019년이 얼마나 빛나는 해였는지 그리고 스스로 얼마나 노력했던 한해였는지 회고록을 적어봅니다.
철학과
아마 철학과 출신이라는 타이틀이 개발 실력을 떠나서 이력서만 봤을 때, 가장 눈에띄는 글자일 것이고, 이에따라 이력서를 쳐다보지도 않고 우리는 철학과사람은 뽑을 생각이 없다는 답변까지 받아봤었습니다. 철학과 출신이라는 것이 개발을 하는데 큰 강점이 된다는 것을 증명해보이려 했습니다.
뭐가 차이일까?
2년차 개발자가 되면서 잘한다는 칭찬을 받기도 하고, 새로운 기술에 대한 관심또한 많아졌지만, 가슴아프게도 저에게 각인된 이야기는 "너는 당장은 잘할지 몰라도 안돼"라는 이야기였습니다.
저는 이러한 편견을 지금까지 공부한 것을 바탕으로 이겨내보려 했습니다.
철학과에서 어느 학파 혹은 어느 학문을 배우던 시작점은 History 였습니다. 개발 또한 마찬가지여야 했는데, 당장의 구현이 재미있다보니 이를 등한시한 부분이 있었습니다, 따라서 개발을 할 때, 제가 사용하는 도구들(언어 혹은 프레임워크, 라이브러리)이 어떻게 생겨나게 됐는지 이와 같은 도구들을 왜 사용하는지에 대해 학습하는데 많은 시간을 보냈습니다.
회사
음... 정직원이 된지 4개월밖에 되지 않았지만! 코리아방식에따라 2년차 개발자가 되었습니다. 2년차가 된만큼 책임이 따르는 일도 많았고, 개발에 있어서 더 넓은 세계를 볼 수 있었습니다.
사수 그리고 새동료
우선 작년과의 가장큰 차이점은 아주아주 좋아하는 사수가 떠나갔습니다...😂
사수분은 더 이상 회사에서는 볼 수 없었지만, 지난 1년 사수를 보면서 정말정말 멋있다고 느낀만큼 스스로 멋있는 개발자가 되도록 노력을 시작했습니다. 이에따라 일일커밋, 토이프로젝트, 인강 등등을 시작하였는데, 이 내용에 대해서는 아래 적어두도록 하겠습니다.
그리고 기존 역삼각형 모양의 우리팀에 신입개발자가 2명이 더 들어왔습니다! 따라서 또래(?)개발자를 두 명 두게되었는데, 이들에게 제 지식을 전달하면서 제가 얼마나 부족한지 새삼 느끼게 되었습니다. 알고 있는것과 이를 말로 표현하는 것은 또다른 문제였습니다. 제가 지식을 전달할 때, 상대방이 얼마나 그 지식에 대해 알고있는지 아는 것과 그를 기반으로 이해할 수 있도록 설명을 해야함을 느꼈고 이를 위해 제가 알고있는 것을 정확하게 이해하고, 정확한 명칭으로 설명할 수 있도록 노력했습니다.
공부 그리고 공부
팀의 특성상 동시에 프로젝트를 4개를 진행하게 되었는데, 각각 프로젝트에 대해서 이야기하기보다는 JAVA, Javascript, Network 로 나누어 어떠한 공부를 했는지 이야기해보려합니다.
JAVA
사실 JAVA가 어떤언어인지 JAVA Application은 무엇인지, Spring은 어떤 프레임워크인지 올해가 시작될때 까지만 해도 개념에 대해 질문했을 때, 대답할정도로만 알았습니다. 선임분들께서 토비의 스프링을 추천해주셔서 읽기 시작할때까지만 해도 JAVA가 컴파일이 필요하고 실행하기 위해서는 JVM이 필요하다는 것도 몰랐습니다...
하지만 에러들을 핸들링하다보니 제가 JAVA에 대해서 아무것도 모르다는 것을 알게되고 집안에 먼지만 쌓여가던 Java의 정석
을 읽고 생활코딩! 자바 프로그래밍 입문
을 톻해 JAVA의 기본적인 문법과 Collection class
에 대해 학습하게 됐고, 현재 지자체에 배포중인 서비스를 관리하다보니 자연스럽게 GC
와 JVM
에 대해 관심이 가서 학습하게 됐습니다.
자연스럽게 회사에서 다루고있는 Spring Framework에 대한 궁금증이 늘어나게 됐고, 토비의 스프링3.1
을 보게됐고 이 책내에서 이야기하는 디자인 패턴에 대해서 이해하고자 인프런의 자바 디자인 패턴의 이해 - Gof Design Pattern
강의를 수강하고 있습니다.
Javascript
앞서 이야기했던 사수가 떠나가면서 코드속에 저에게 남겨둔 선물(?)은 2가지 였습니다.
- Vue.js
- 모듈패턴
2019년 전반기에는 당장 Task가 웹앱을 통해 어플리케이션을 혼자 두달안에 하나 만들어야했고, 이를 위해 Vue.js를 학습하는데 많은 시간을 보냈었습니다.
앞서 사수가 진행하던 프로젝트를 이어받아 마무리지었어야하는데, 이를 하며 느낀 것은 "정말 자바스크립트를 조금도 모르는구나..."였습니다. 제 나름은 사이드 이펙트가 일어나지 않도록 수정했을 때도 다른 코드에 영향이 가기도하고, 원하는 동작을 구현했음에도 정말 이유를 알 수 없이 동작하지 않기도 했었습니다. 따라서 자바스크립트를 공부하기 시작했습니다. 주로 개념들에 대해서는 커뮤니티의 고수분들의 블로그 혹은 답변을 통해 공부를 했고, 나중에 이를 정리하는데는 정재남님의 코어 자바스크립트
라는 책이 큰 몫을 했습니다. 이후 3D 가시화를 위해 Cesium.js
와 Three.js
를 사용하여 간단히 서비스를 만들어야 했는데, 이때부터 관심사의 분리를 위해 모듈패턴에 대해 관심을 갖게되고 사용하였습니다.
Network
제가 정말 삽질을 할때마다 들었던 이야기가 "OSI 7 Layers를 알아야한다. CORS를 이해하기 위해서는 못해도 HTTP에 대한 이해가 필요하다."였지만, 당장 눈에 보이지 않는 내용들이라 관심을 덜 가졌었습니다. 하지만 지자체에 서비스를 배포하며 지자체의 망을 알아야했으며, 사내의 네트워크에 뭔가 문제가 있을때 자연스럽게(?) 막내를 찾아오시는 분들덕에 네트워크를 공부하게됐습니다. 사내교육으로 네트워크 수업을 수강했던 것을 바탕으로 공부하였고, 일을하다가 마주치는 이슈에 대해서는 주로 블로그에 검색하여 공부하고 그래도 이해가 안가면 네트워크 마스터인 선임에게 물어보았습니다. 그림으로 배우는 HTTP & Network Basic
이라는 책과 모두의 네트워크
라는 책 또한 큰 힘이 되어주었습니다.
사내교육
올해 초에 정말 아는거 하나도 없던 저에게 사내교육의 강사가 될 수 있는 기회가 사수분을 통해 생겼습니다.
생활성을 높이는 기술활용의 기초
라는 제목으로 하루(8시간)동안 진행하였고, 정말 제가 그 당시에 알거나 공부하고 있던 모든 것에 대하여 강의를 하였습니다. 사람들 앞에서 발표라고는 학부생시절 조별과제 발표밖에 없던 저에게는 아주아주 떨리기도 했지만 멋진 기회였습니다. 정말 부족했겠지만 열심히 들어주신 수강생분들게도 감사를 표합니다.
2020년초에는 사내교육으로 GIS 오픈소스 프로그래밍 전반에 대한 내용과 Spring Framework에 대한 내용을 강의할 수 있는 기회를 얻어 준비중입니다!
재미있는 개발
정말정말 일년동안 개발이 이 개발의 생태계가 너무 재밌었습니다. 앗 물론 계속계속 재밌을 예정입니다. 이러한 것을 바탕으로 회사에서 하는 개발외의 다른 학습을 진행한 것을 적어보려합니다.
학습을 진행중인 서적에 대해서는 (진행중)
이라고 적어두었습니다.
기술서적
Java
- Java의 정석 - 남궁 성, 도우출판
- 생활코딩! 자바 프로그래밍 입문 - 이고잉, 위키북스
- Do it! 안드로이드 앱 프로그래밍 - 정재곤, 이지스 퍼블리싱
- 토비의 스프링 3.1 - 이일민, 에이콘 (진행중)
Javascript
- 자바스크립트 + 제이쿼리 입문 - 정인용, 이지스 퍼블리싱
- 코어 자바스크립트 - 정재남, 위키북스
- 자바스크립트 닌자 비급 - 존 레식 외1, 인사이트 (진행중)
- 쉽고 빠르게 배우는 Vue.js2 프로그래밍 - 알렉스 키리아키디스 외1, 위키북스
- Vue.js Quick Start - 원형섭, 루비페이퍼
Network
- 그림으로 배우는 HTTP & Network Basic - 우에노 센, 영진닷컴
- 모두의 네트워크 - 미즈구치 카츠야, 길벗
ETC
- CSS 완벽가이드 - 에릭마이어, 위키북스
인터넷 강의
Java
- [인프런] 자바: 클래스의 이해와 객체지향 프로그래밍
- [인프런] 자바 디자인 패턴의 이해 - Gof Design Pattern (진행중)
Javascript
- [The net ninja] Vuetify Tutorial
- [인프런] 견고한 JS 소프트웨어 만들기
- [The net ninja] Complete React Tutorial (with Redux)
- [인프런] Javascript ES6+ 제대로 알아보기 (진행중)
- [인프런] React로 Nodebird 만들기 (진행중)
사외교육
- 2019.02.27 [KITRI] IoT 드론 제작과정
- 2019.05.01 [Google] 머신러닝 스터디잼 입문반
- 2019.05.16 [NHN Toast] 골치아픈 설정없이 가볍게 시작하는 Vue 기초
- 2019.07.11 [NHN Toast] 하루에 정리하는 Spring Framework Core
세미나 || 컨퍼런스
- 2019.03.30 [FESTAR] 프론트엔드 세미나
- 2019.04.05 [DroidKnights] 안드로이드 컨퍼런스
- 2019.06.15 [GDG-Extended] 안드로이드 컨퍼런스
- 2019.06.29 [Flutter] 만들면서 배우는 Flutter 코드랩
- 2019.08.31 [GDG-Android] 안드로이드 탐구영역 (테스팅)
- 2019.10.05 [GDG-Songdo] Flutter Meetup
- 2019.10.20 [GDG-Seoul] DevFest Seoul
- 2019.11.13 [Mozilla] Mozilla Developer RoadShow
- 2019.11.23 [GDG-WebTech] DevFest WebTech
- 2019.11.28 [GDG-Cloud] 골목클라우드
- 2019.12.03 [한국정보화진흥원] 전자정부 표준프레임워크 신규버전 발표 및 우수사례 설명회
전시회
- 2019.04.27 World IT Show
- 2019.05.29 국토기술대전
- 2019.06.01 Seoul VRAR Expo
- 2019.08.08 스마트국토엑스포
- 2019.10.25 IoT 사물인터넷
마무리
프로젝트를 진행한 후에는 항상 자신의 부족함을 느꼈고 이 부족함을 체우려는 노력이 1년동안의 저를 성장시켜주었습니다. 내년에도 수많은 도전들이 저를 기다리고 있고 그 도전이 제가 정말정말 재밌어하는 개발 분야의 도전이라면 재미있게 그리고 멋있게 해나갈 수 있을거라 스스로 응원해봅니다.