2019년 개발로서 회고
다사다난한 2019년이었다. 덕분에 평년과 비교하여 가정과 건강을 돌보는데 많은 시간을 쏟았다. 그래도 회고를 쓰고자 돌이켜보니 개발 쪽으로도 한 일이 제법 없지는 않았다. 잊기 전에 하나씩 짚어보자.
iOS - Swift
2019년에 새로 익힌 기술 중 가장 큰 진전을 보였다. 이전까지 iOS와 Swift는 패스트캠퍼스의 인강을 듣고 실습을 따라해본 정도, 그리고 남이 만든 코드를 조금씩 수정하는 정도가 고작이었다. 한마디로 나는 iOS앱을 개발할 준비가 되어 있지 않았다. 하지만 이런 나의 사정이야 어쨌건 급히 iOS 개발을 해야했다. 정부의 지시사항 때문이니 미룰 수도, 피할 수도 없었다. 아무튼 간만에 당일 출근, 당일 퇴근이 안되는 날들이 이어졌다. XCode의 괴이함과 개발자를 믿지 못하는 Swift의 특성 때문에 고생을 꽤나 했다. 그리고 마침내 원하던 기능을 그럭저럭 잘 만들어 넣을 수 있었다. 역시 기술은 실무에 써먹어야 빨리 는다. 하지만 예전에 iOS를 공부할 때 좀 내게 좀 더 의지가 있었다면 1인 앱개발이라도 했으면 좋았을 뻔 했다는 아쉬움은 남는다.
웹 크롤링
개발자 몇이 모여 시작한 토이 프로젝트가 시작도 하기 전에 엎어져버렸다. 거기서 내가 제안받은 역할이 웹 크롤링 봇을 만드는 것이었는데, 해본 적이 없는 일이라 책 한 권부터 읽었다. 웹 크롤링은 이미 많은 발전이 이뤄진 분야이기에 라이브러리를 가져다 쓰면 개발은 손쉬웠다. 오히려 크롤링보다는 웹개발 쪽으로 큰 자극을 받았다. 여태 내가 제대로 웹페이지를 개발하고 있었는가? 제대로 만든 웹페이지라면 크롤링은 쉽다. 하지만 그렇지 않을 때가 문제다. 회사에서의 업무 특성상 웹개발을 많이 하고 있는 요즘, 보다 빨리 접했으면 좋았을뻔한 분야다. 어쨌거나 이렇게 배운 크롤링 기술은 회사 웹서비스의 헬스 체크와, 여자친구의 업무 자동화에서 유용하게 써먹고 있다. 웹어플리케이션으로 많은 업무를 처리하는 요즘, 비개발자도 익혀두면 좋은 기술인듯 싶다.
Vue.js
2019년에 가장 큰 도움을 받은 기술이다. 올해 회사에서 새로 개발하는 모든 앱은 vue.js로 만들었다. 편리하고, 지속적으로 발전하는 기술이다. 물론 React에 비하면 여전히 그 입지가 미미하기는 하다. 하지만 벌써 2년째 Vue.js를 잡고 있으니 아무래도 매너리즘에 빠지는 느낌도 든다. 2020년에는 React를 써봐야하나 싶기도 하다. 개인 프로젝트 개발에 있어서도 프론트엔드는 역시 Vue.js를 주력으로 사용했다. 가을 즈음에는 존경하는 개발자 주성식님의 제안을 받아 AWS의 Serverless framework 강의에 쓰이는 샘플 앱의 프론트엔드를 Vue.js로 개발했다. 비록 샘플 앱이기는 포토 앨범으로서 필요한 모든 기능은 다 갖추고 있다! 이 앱의 백엔드는 주성식님과 AWS의 개발자들이 개발했는데, 간만에 마음이 맞는 뛰어난 개발자들과 함께 일하니 대단히 즐거웠다. 사랑해요 주성식 과장님.
Typescript
2년째 Vue.js를 사용하면서 느낀 매너리즘을 타파하기 위해 도입한 Typescript였지만 가시적인 성과는 거두지 못했다. 모든 개발이 그렇듯이 일정에 쫒기다보니, 처음에는 Typescript로 구성했던 프로젝트가 어느새 그냥 Javascript로 바뀌기 일쑤였다. Typescript는 Javascript로도 그냥 쓸 수 있으니 말이다. 현재 회사에서 하는 개발의 대부분이 1인 개발이다보니 엄격한 자기규율이 없이는 Typescript 도입이 쉽지 않음을 절감했다. 2020년에는 해야지…
SpringBoot2
2년만에 다시 잡은 스프링. 이것은 좋은 것이다. 회사에서는 아직껏 ASP.Net 2.0을 표준 백엔드로 쓰고 있기에 그간 사용할 기회가 없었는데, 새로 시작한 프로젝트에서 백엔드 기술 선택의 완전한 자유를 얻은 김에 큰 주저없이 선택했다. 예전에는 스프링부트1이었는데, 2로 오니 다소 혼란스러운 감이 있기는 했다. 하지만 역시 현대 웹개발에 필요한 모든 기능을 완전히 지원하기에 스프링은 멋진 선택이었다. 특히 부트는 심오한 설정을 위해 고생할 필요가 없으니 더 좋았다. 우리 회사에서도 스프링부트를 사용하는 프로젝트가 많아지길 간절히 바란다…
TDD
여태 TDD에 큰 매력을 느끼지 못하고 있었는데, 올해에는 완전히 빠져들었다. 전적으로 스프링 프레임워크 덕분이다. TDD를 하지 않던, 혹은 엑셀로 TDD를 했던 예전에는 개발을 어떻게 했는지 아득하기만 하다. DB상에서 뭔가 수정한 후, test를 돌리면 펑펑펑 터져나오는 에러 메시지를 볼 때면 짜릿하기까지 하다. 이 에러 메시지들을 하나씩 처리해 나가면 안심하고 개발할 수 있는 것이다. 이제 Unit test 없이는 백엔드 개발하기가 힘들다. 하지만 백엔드에서와는 달리, 프론트엔드에서의 TDD 도입은 성과가 미미했다. 나는 여전히 테스트를 위한 테스트를 작성하고 있다는 느낌을 지울 수 없었다. 아마도 TDD에 대한 이해가 부족하기 때문이리라. 2020년에는 더 배워야겠다.
인공지능
2019년에 가장 많은 노력과 시간을 들인 분야지만, 아쉽게도 가장 성과가 미미했던 분야이기도 하다. 주 1~2회 정기적인 스터디를 하며 여러 책을 읽고 공부했지만 제대로 된 성과가 없다. 공부하는 내내 수학적 기초가 약하다는 자괴감이 나를 괴롭혔다. 남들은 고등학생 시절에 이미 마스터하는 미분을 나이 서른 셋에 공부한다니, 이것이 문과 출신 비전공 개발자의 한계일까? 아무튼 2020년에도 이런 자괴감은 계속될 것 같다.
알고리즘
근 몇 년 간 새해의 목표로 알고리즘을 잡지 않은 적이 없었다. 하지만 올해에도 성과는 미미한듯 하다. 알고리즘 책 몇 권을 읽었고, 대략 두 세달 정도 알고리즘 문제를 매일 꾸준히 풀었던 것이 고작이었다. 이 나태한 마음을 어찌해야 할까?
20200124
Leave a comment