2021년 회고
2021년을 되돌아보면 “순삭”이었다는 말 한 마디로 정리할 수 있을 것 같다. 3월부터 9월까지 우리은행을 대상으로 진행했던 솔루션 구축 (이 아닌 SI) 프로젝트를 진행하면서 밤 11시 이전에 들어간 날이 열 손가락 안에 꼽을 정도 였다. 주 80시간 근무를 경험해보면서 느꼈던 긍정적인 점과 부정적인 점을 모두 적어보고, 내년에는 어떻게 살아야 할 지 고민해보는 시간을 한 번 가져보려고 한다.
Negative
1. 프로젝트 6개월 동안의 시간을 제대로 활용하지 못했던 것
-
모듈 파트 담당자로서 프로젝트를 처음부터 끝까지 완수한 것은 긍정적이다. Offline 망 분리 환경에서 개발 환경을 구축하며 리눅스 시스템 및 아나콘다 가상환경에 익숙해 질 수 있었다. 또한, 팀원이 작성한 코드 분석 및 트러블슈팅하면서 솔루션 전체 흐름을 다 뜯어볼 수 있었다.
-
하지만 투입 전에 야근이 이 정도일지 몰라서, 6개월 동안 연구/개발을 할 수 없었다.
-
모델링은 API 개발과 달리 문제 분석부터 학습/서빙 데이터 포맷과 파라미터 정의, 알고리즘 선택, 개발 및 테스트, 배포까지 많은 협업과 시간이 필요하기 때문에 현장에 나가있으면 연구/개발에 집중하기 어렵기 때문이다.
2. 프로젝트 6개월 동안 체력 향상 및 스터디 등 중요한 개인 성장을 놓친 것
- 야근 때문에 프로젝트 기간 동안은 운동이나 스터디 등 아무것도 할 수 없었다.
Positive
1. 프로젝트 팀의 일원으로 맡은 파트를 처음부터 끝까지 독자적으로 수행한 것
- 3년차에 프로젝트를 뛰어보면서 실제 고객사 시스템의 규모, 실제 데이터의 분포 및 부하량 등을 확인해 볼 수 있었다. 그리고 실제 고객사에서 운영해보면서 고객의 요구사항을 듣고 필요한 추가 기능들을 정리했다.
2. 데모 모니터링 시스템과 솔루션의 개선 포인트를 알게 된 것
- 실제 고객사에서 많이 고생했던 이유는 소규모 데모 모니터링 시스템에 맞춰져있던 솔루션을 실제 대규모 고객사 환경에 적용하면서 그 동안 발견하지 못했던 커다란 이슈들을 현장에서 마주쳤기 때문이다.
- 그래서 1년차 때 개발한 데모 모니터링 시스템을 고객사 환경과 유사하게 만들기 위해 필요한 개선 사항을 도출할 수 있었다.
- 첫 번째 결과물이 인스턴스를 쉽게 증설해서 대규모 환경을 띄울 수 있도록 Docker 이미지를 만든 것이지만, 보안상 정리하기는 어려울 것 같다.
3. 선형대수학과 수리통계학을 다시 자기 주도 학습
- 모두의 연구소 풀잎스쿨에서 Convex Optimization(Boyd)을 스터디했는데, 학부 때 제대로 공부하지 못한 선형대수가 발목을 잡았다. 선형대수(Friedberg)를 5장 ‘대각화’까지 매일 꾸준히 공부했다. 현재 ‘내적공간’이 남았다.
- 수리통계는 송성주/전명식 책으로 ‘추정’까지 공부했고, ‘검정’이 남았다.
- 이후에는 조금 더 고난이도의 수리통계(Hogg), 계량경제(Green)를 볼 생각이다.
- 수학은 기술블로그로 정리하고 싶지만, 체계젹으로 정리하기에는 너무 시리즈가 방대해서 쉽지 않을 것 같다. 그래서 그 동안의 노력이 채용 담당자들에게는 와닿지 않았을 것이다.
4. 첫 이직을 준비하며, 진로를 확실히 알게 된 것
- 원티드(Wanted) 플랫폼에 등록했다. 의외로 ‘데이터 엔지니어’ 직무를 제안 해주신 곳도 있도 있다. 팀을 안정화한 다음에 이직하는 게 맞다고 생각해서 올해는 이직하지 않았지만, 한 두 번의 면접을 준비하며 그 동안 내가 고민했던 적성(‘DS/AI’ 아니면 ‘백엔드 개발자/데이터 엔지니어’)을 알게 됐다. 코딩테스트를 준비하는 건 의외로 고역이었지만, 수학책과 논문을 읽는 것은 계속 재밌어하는 걸 보면 나는 전자가 맞는 것 같다.
5. 내년에 다시 프로젝트를 나갈 때 가치 있게 활용할 수 있는 방법을 알게 된 것
- 솔루션 구축 프로젝트는 힘들다. 하지만, 금융권/대기업 시스템의 실제 데이터를 확인할 수 있기에 내년에는 코드가 공개된 논문을 먼저 실제 고객사에서 적용해 보려고 한다. 테스트 할 논문 리스트는 다음과 같다.
Upcoming TODO List in 2022
1. 논문 적용
논문 리스트
- Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting, Haoyi Zhou et al
- Liquid Time-constant Networks, Ramin Hasani et al
선정 이유
- Informer를 고른 이유는 기존의 \(O(N^{2})\)의 Transformer를 \(O(Nlogn)\)으로 시간복잡도를 줄였고, 동시에 장기 예측의 정확도를 향상시켰기 때문에 학습 시간을 줄이면서 성능도 개선될 것으로 기대되기 떄문이다.
- LTC라고 불리는 마지막 논문은 논문의 저자가 스트림(Stream) 형태의 데이터 관련 문제(e.g 실시간 시계열 예측)를 푸는데 도움이 된다고 논문 Introduction에서 언급했기 때문이다.
2. 기술 블로그 작성
- 아무리 사소한 기록이어도, 1주일에 한 번이어도 기록을 남겨두려고 한다. 올해는 프로젝트를 제외하고는 거의 매일 수학을 공부했으나, 기록을 남기지 않아서 막상 성실성이나 지식을 증명할 수 없었다. 퀄리티보다 먼저 꾸준함을 보여주자
작성할 내용
- 동시성 프레임워크 Pathos, Ray를 활용한 학습/서빙 성능 향상
- Pandas Dataframe 테스트 코드 작성하기
- ADP, SQLD 준비
3. 8월달 대학원 입학
- 해외대학 온라인 석사를 준비하려고 한다. 입학 시험이 빡쎄서 선형대수, 수리통계학, 계량경제학을 공부해야하는데 먼저 선형대수를 2월까지 끝내고 3~6월까지 수리통계학과 계량경제학을 병행할 계획이다.