2018년 회고
시작하기 전에, 작년 회고를 한번 훑어봤다. 왠지 작년보다 변화가 더 큰 한해라고 느꼈다. 정신적으로 환기가 되는 한 해였다.
Annotator 프로젝트 일단락
작년부터 시작했던 프로젝트. 연초에 조용히 끝날 줄 알았는데, 꾸준히 요청사항이 스멀스멀 들어오더니 2분기까지 끊임없이 개발이 이어졌다. 작은 기능들 뿐이었지만, 기능이 세분화될 수록 신경써야 할 부분들이 많았다. 내가 가장 신경 썼던 것들을 순서대로 나열해보면,
- 안정성
- 자동화
- 편의성
이었는데, 개발자 입장에서만 봤을 때는 편의성(UI/UX)쪽에 조금 더 집중했던 것 같다.
초기에는 기능개발은 기능개발대로 집중했지만, 처음 시도하는 영역인 CI/CD쪽에 관심을 좀 더 두었다. 아무래도 편한게 편한것인 만큼, 손이 덜 가는게 좋은거라고, 버전태그와 릴리즈까지 해주는 젠킨스를 꿈꾸고 있었다. 여러가지 편법들을 동원해서 결국은 만들어넣었고, 아주 가끔 유용하게 사용하고 있다. 시간적인 측면으로 보았을 때에는 큰 이득이 없다고 생각했는데, 반복기간이 꽤 긴 편이라 매번 작업 전에 기억을 다시 떠올리기 어려웠던 걸로 기억한다. ‘조금 자세한 문서를 만들어두었으면, 이런 자동화같은거 하지 않아도 됐을텐데…’ 라는 생각이 잠깐 들었다. 하지만 새로운 것을 시도해보았고, 잘 동작하니 괜찮은 것 같다.(에라 모르겠다)
FrontEnd는 그렇게 하기 싫어했는데, 막상 하려니 열심히 하려는 내 모습을 볼 수 있었다. 그쪽 기술이 재미있어서가 아니라, UX적으로 더 좋은 방법을 찾다보니 그랬던 것이다. Javascript쪽은 여전히 제멋대로이고 여전히 가까이하기 조금 거부감이 든다. Python이 날뛰는 언어이면, Javascript는 발전속도가 미쳐 날뛰는 것 같다.
실무로 웹을 다루기 시작하니, 많은 사례에 자연스럽게 눈이 갔다. Pycon이 가뭄의 단비 같았고, 여기저기 작게 열리는 파이썬 세미나들이 나에게 큰 자극이 되었고, 큰 도움이 되었다.
한참 열심히 하다보니, C++이 가볍게 다루기는 굉장히 다루기 어려운 언어였다는 생각이 들었다. 부분적인 include도 안되고, 플랫폼별로 빌드차이 잡아주는것도 그렇고.
좋았던 것
- Django를 마음껏 다루어볼 수 있었다.
- 요구사항을 구현해냈을 때의 쾌감
아쉬웠던 것
- TDD를 처음 시도해서, 익숙해지는데 시간이 오래걸림
- 웹에 대한 깊은 지식이 없어서, 설계에 자신감이 모자랐음
서머너즈워 팀(가제) 개발
웹 개발 프로젝트좀 익숙해지자고 한 것이었는데, 막상 게임 데이터 모으는데 한창 바빴을 뿐이고. 대충 모아져서 윤곽좀 만들려고 했더니 회사가 너무 바빠져서 손을 놓아버렸다. 2019년에 다시 재개하자!
좋았던 것
- 새로운 주제에 대해 열정이 타오름
- 모바일 게임의 소스 구성에 대해 공부하게 됨
아쉬웠던 것
- 진행을 못했음
임베디드 개발 시작
언젠가는 한번 발을 담그겠지, 라며 막연히 생각했는데, 이번에 너무 거하게 다이브를 했다. 다니엘이 던진 작은 돌이 이렇게 큰 파장을 일으킬 줄은 상상도 못했다. 그 작은 돌이 핵심문제였을 줄은 더더욱 몰랐고. 화두는 임베디드지만, 겪은 시간에서 임베디드적인 문제는 거의 없었다. 이미지처리, 광학 같은 여러 지식이 종합적으로 필요했다.
형상이 없는(?)것들만 다루다가, 손에 잡히는 걸 만지니 신기함을 감출 수가 없었다. 결과가 바로바로 보이니, 신나서 이것저것 시도해보며 문제를 풀어나가는 시도를 해보았다. 많은 시간과 체력을 갈아넣은 결과, 약 절반쯤의 성공을 거둔 것 같다.
하지만 지금 돌이켜보면, 너무 무모한 접근이었다. 문제에 대한 원인을 발견하고 해결해 낼 지식이 거의 없는 상태에서, 넘치는 실험정신만으로 현상을 개선하려던 시간은 매우 비효율적이었다. 왜 그때에는 이론과 책을 찾아볼 생각을 하지 못했을까? 수 많은 오픈코스 강의들이 있는데, 찾아볼 생각도 안했을까? 달려들어서 조금만 부딪히면 해결될 것이라 믿었던건가?
얻었던 지식도 좋았지만, 행동이 생각보다 먼저 움직일 때의 부작용을 느낄 수 있는 좋은 기회였다.
좋았던 것
- 새로운 영역에 대한 도전과 성취의 기쁨
- 여러 분야의 팀원들과 협업
아쉬웠던 것
- 관련 지식의 태부족
- 무거운 책임감
아프리카 임상실험
나의 결과물이 기기에 들어갔고, 다룰 수 있는 사람이 나밖에 없는 상황이라 당연히 가야 할 일이었다. 이미 프로젝트 초반부터 마음의 준비를 하고 있었다. 출장이든 여행이든, 개발자로서 아프리카를 갈 수 있는 기회가 또 있을까 하며, 군에서 울릉도에 배치신청했던 기억을 떠올렸다.
임상실험 내내 코드를 만질 수 있는 시간 또는 체력이 없었다. 그만큼 바빴다. 심지어 역대 최대 인원이 투입된 임상실험이었는데도 인원이 더 필요할 정도였다. 시간이 모자라고, 사람도 모자라니 빠르고 효율적으로 일을 처리해야 했다. 게다가 각종 상황들이 발생하니, 정신도 없었다. 내 역할은 임상 데이터들을 정리하는 것이었다. 누가 시킨 일이 아닌, 이전 개발과 실험에서 얻은 습관이었다. 2주 간의 임상 동안 수많은 데이터가 쌓일 것이고, 세세한 부분까지 기억할 수는 없기 때문에, 최대한 데이터를 잘 정리하는데에 노력했다. 스프레드시트에 필요한 기준을 잡고 정리하다보니, 몇개의 시트가 생겼고, 어느정도 보기 좋은 테이블 모양이 갖춰졌다. 다 만들고 보니, DB테이블 몇개 만든 것과 유사했다. 임상 팀원 중에서 이런 데이터 정규화를 다루는건 내가 가장 익숙하지 않을까, 하면서 혼자 만들어낸 나의 일거리에 내심 뿌듯했다 ㅋㅋ
팀원이 각자 맡은 역할이 달랐고, 문제가 많은 상황에서도 유연하게 잘 대처하는 모습들을 보면서 많은 생각이 들었다. 그 중 하나는, 나는 참 직업을 잘 선택했다는 것이었다. 특히, 사람과 사람 사이에서 일하는 매니저의 모습이 정말 멋있었다. 임상과 관련한 긴급상황이 발생해도 침착하게 다음 대안을 찾아내는 모습을 보면서, 나라면 저렇게 못할 것 같다는 생각이 들었다. 역시 사람은 각자 잘 할 수 있는 일들이 있는가보다.
많은 인원이 한번에 같이가는 출장은 처음이었던 것 같다. 게다가 다들 유쾌한 사람들이라, 임상실험 자체는 굉장히 힘들었지만, 그 곳에서 생활 자체는 매우 재미있었다. 어쩌다보니, 나는 사진과 동영상을 찍는 것에 맛들려서 핸드폰 사진첩을 가득 채워왔다. 짤방도 만들고, 영상도 만들면서, 스스로 재미를 찾아 헤메었다.
어떤 것에 영향을 받았는지는 모르겠지만, 정서적으로 안정되고 개운해진 것 같은 느낌이었다. 넓은 자연에서 나무와 벽돌로 지어진 집에서 사는 사람들을 보았다. 도심에서는 한국과 다름없이 여유로운 생활을 즐기는 사람들도 보았다. 낮에는 인정 넘치고 생기 넘치는 거리를 보았다. 밤에는 외출을 금할정도로 위험한 거리를 보았다. 모두가 여유로운 사람들이었다. 하지만, 먹고 사는 문제에 민감했다. 다들 미소를 쉽게 띄지만, 그 안에는 너무나 힘든 삶들이 숨어있었다.
어쨌든, 다녀오고 나니 여러가지 걱정이 슬며시 떠나간 느낌이었다. 그만큼 마음이 가벼웠다. 이게 바람직한 변화인지는 모르겠지만, 내가 그리고 있는 생각의 지도가 조금 넓어진 것 같다.
좋았던 것
- 팀원들과의 유대감
- 현지 사정에 대한 이해
- 정서적 안정감을 되찾음
아쉬웠던 것
- 소프트웨어 엔지니어로서의 활약을 못함