2018년 회고

2018-12-25

2018년을 되돌아보면서 한 마디 끄적여봅니다.

작년에는 필요에 의해서 OpenGL을 잠시 공부한 적도 있지만, 거의 대부분의 시간을 자바와 안드로이드에 투자했습니다.

그래서 올해에는 웹이나 머신 러닝처럼 다른 분야로 스펙트럼을 넓혀보자는 생각으로 여러 분야를 탐험해보는 시간을 가졌습니다.


Web

봄부터 HTML과 CSS, Javascript를 공부하기 시작했고, MEAN Stack 기반의 예제 어플리케이션을 만들어보기도 했습니다.

가을에는 리액트를 집중적으로 공부했습니다. 이제와서 드는 생각이지만, 초보 수준의 실력으로 이렇게 구조적으로 미리 정해져있는 프레임워크를 가지고 접근하면 안됬다는 생각을 해봅니다.

리액트는 프레임워크가 아니라 라이브러리라고 이야기할 수 있지만, 사실상 JSX, React DOM같은 개념은 웹의 기본적인 것들을 추상화한 것이고..

솔직히 리액트를 열심히 공부했다고 해서 프론트엔드 개발을 잘 하게 되었다는 생각은 별로 안들더군요. 오히려 자바스크립트 관련 코딩을 더 잘하게 되었습니다..

최근에는 그런 생각을 반영해서, 이번에 만드는 웹앱의 프론트쪽은 Vanilla JS를 사용해서 만들어보고 있습니다.


Functional Paradigm

올해 들어서 특히 함수형 프로그래밍에 대해서 관심이 많아졌습니다.

저는 간결한 선언적 표현 방식과 마치 여러 개념을 하나로 통합하는 듯한 함수형 패러다임이 마음에 들더군요. 함수를 데이터와 같은 방식으로 생각하는 이 사고 방식이 개발을 하는데 있어서 이제는 너무 당연할정도로 없어서는 안될 개념이 되었습니다.

이 때 읽은 책은 러닝 스칼라, 함수형 사고, 그리고 다양한 패러다임의 언어를 배울 것을 이야기하는 폴리글랏 프로그래밍 등이 있었습니다.


Blockchain

비트코인과 같은 Crytocurrency의 영향으로 엄청나게 떠버린 블록체인 분야입니다.

이쪽 분야를 공부하게 된 계기는 아버지가 권한 책 한 권이었습니다. 블록체인 무엇인가?라는 책이었는데, 기술적인 관점에서 처음 시작하는 사람에게 좋은 것 같습니다.

이후 실질적으로 어떻게 구현하고, 어떤 것들을 만들 수 있는지를 찾아보기 위해서 처음 배우는 블록체인, 이더리움과 솔리디티 입문 등의 책을 찾아보았습니다.

그러면서 생애 첫 해커톤을 참가해보기도 했죠. 회사에서 몇 번 운영한 적은 있지만, 실제로 참가하는 경험은 처음이었습니다.


블록체인 관련 개발은 기존의 일반적인 어플리케이션과는 궤를 달리하는 관점의 전환을 요구합니다.

가령 함수형 패러다임은 기존의 프로그램과 동일한 플랫폼과 환경 위에서 데이터, 함수를 어떻게 다룰 것인지에 대한 생각의 전환이 필요하지만, 블록체인 개발은 플랫폼에 대한 생각 자체를 달리 해야 합니다.

우리가 알고 있던 메모리 체계에 대한 생각을 재고해야하고, 프로그램을 출시하고 업데이트하는 것 역시 매우 신중하게 해야합니다. 대부분은 블록체인의 영구 보존성과 투명성 등으로 인해서 생기는 것이라고 볼 수 있습니다.


또 블록체인 분야는 인공지능 분야와는 다르게 학문적인 연구가 다소 적은 반면, 굉장히 넓은 분야에 대한 실용적이고 실험적인 적용 예가 굉장히 많습니다.

아직 분야 자체가 충분히 성숙하지 않았다는 생각이 들기는 하지만, 블록체인 역시 인공지능과 비슷하게 100년 전의 전기와 같이 기존의 모든 분야에 적용될 수 있는 기술이기에 충분히 매력적인 기술인 것 같습니다.


Machine Learning

5월에 처음으로 Tensorflow를 배워보았는데, 실질적으로 뭔가를 만들어보지는 않았고, 한 번 살펴보기만 했던 것 같습니다.

이후 구글 머신러닝 잼에 참가하게 되면서 MLCC를 전체적으로 훑고, Coursera에서 Google Cloud Platform을 이용한 머신러닝 엔지니어링을 배우기도 했습니다. (굉장히 지루했습니다만…)


Misc

기타로는 따로 카테고리를 만들기 어려운, 잡다한 것들을 모아봤습니다.

  • Go를 배웠습니다. 그냥 재미있어보여서 배워봤습니다. 근데 생각보다 그렇게 마음에 들지는 않더라구요. 저는 함수형 패러다임이 좋습니다.
  • 코틀린을 배우면서 그간 안드로이드에서 작업했던 것들을 조금 정리해보는 시간을 가졌습니다. 일을 하면서 모듈화를 할 수 있을만한 것들을 따로 모아놓은 repository도 있습니다.
  • 디자인을 배웠습니다.
  • 영어, 특히 회화를 스터디서치를 통해서 배우고 있습니다. 새로운 사람을 만나려는 목적도 있습니다. 어쨌든 반쯤 성공한 것 같습니다.


2019년을 바라보며

가장 아쉬움이 남는 건 배우기만 하고 써먹어보지 못한 것들이 너무 많다는 것입니다.

실제 행동으로 발현되지 않는 지식은 죽은 것이라는 말처럼, “그래서 1년동안 너는 무얼 했냐”고 묻는다면 막상 머릿속에 떠오르는 것들은 별로 없습니다.

제가 배운 것들이 감정과 연결되지 않고, 그저 기록된 채로 존재하는 지식들 뿐이라는 뜻이겠죠.

그래서 새해에는 배운것들을 실제로 써먹을 수 있도록 가능한 많은 것들을 만들어보고 싶습니다.


다가오는 새해의 목표는 “매일 하루가 끝날 때 후회가 없도록 살기” 입니다.

그런 하루 하루가 모여서 큰 변화를 만들고 2020년을 맞이할 때는 지금보다 조금 더 지식적으로, 정신적으로 성장해있을 것이라고 기대합니다.