2020년 회고 / 2021년 계획
31 Dec 20202019년 회고글을 쓴 지가 얼마 되지 않은 거 같은데, 어느새 2020년도 마무리되고 있다.
특히나 올해는 COVID-19로 인해 여러 변화가 있었는데 하나씩 정리해 보자.
C++ Korea
C++ Korea는 2013년 11월에 개설해 현재 약 5,500명의 회원과 함께 세미나, 스터디 등 다양한 활동을 하고 있다. 올해 C++ Korea에서는 밋업 1회, 스터디 1회, 세미나 1회를 개최했다. 이외에도 파일럿 프로그램인 C++ Korea 팟캐스트를 시작했으며 정기적으로 운영진 회의를 하며 내년에 진행할 다양한 행사를 준비하고 있다. 올해 C++ Korea에서 진행했던 행사 및 프로그램과 관련된 자료는 다음 링크에서 찾아볼 수 있다.
C++ Korea 운영진들은 매주 회의를 통해 내년에 진행할 일들을 준비하고 있다. 지금까지 C++ Korea는 여러 스터디와 세미나를 준비해오면서 조금은 어설프지 않았나 생각한다. 각자 업무를 분담하기 보다는 특정 몇 명에게 업무가 과도하게 몰려 원활하게 운영하지 못했다. 그래서 체계적인 시스템을 갖추기 위해 분주히 노력하고 있다. 사단법인 설립 준비, CoC 가이드라인 작성, 제8회 세미나 준비, C++ Korea 컨퍼런스 준비 등 여러 주제를 가지고 논의하고 발전시키고 있다. 내년에 힘차게 날아오르기 위해 준비하고 있는 과정이라 생각해주시고 지켜봐주시면 감사하겠다.
Microsoft MVP
2015년 7월, C++ Korea 활동을 계기로 처음 Microsoft MVP에 선정되었다. 올해도 Microsoft MVP로 선정되어 MVP 6년차가 되었다.
MVP 덕분에 알게 된 사람도 많고, 나의 시야도 정말로 넓어지게 되었다. 나에게 많은 변화를 준 계기이기도 하다. 넥슨 입사, 첫 Microsoft MVP 선정 모두 2015년이다 보니 나에게는 더욱 값지게 다가온다. 앞으로도 C++ 관련 지식을 많은 사람들에게 공유하고 널리 전파할 수 있는 전문가가 될 수 있도록 최선을 다하겠다.
RL 논문 리뷰 스터디
강화학습은 공부할 게 많은 분야다. 논문이 수없이 많이 나오다 보니 봐야할 논문은 많은데 볼 시간은 턱없이 부족하다. 혼자서 공부하는 데 한계가 있다고 느끼던 도중 나와 같은 생각을 하는 분들이 더 있을 거라고 생각해 같이 스터디 그룹을 만들어 서로 논문을 정리해 발표하면 봐야 할 논문 수를 줄일 수 있을 거라 예상했다. 그래서 4월에 RL 논문 리뷰 스터디라는 이름으로 인원을 모으기 시작해 5월부터 스터디를 시작했다. 이전 경험으로 비춰볼 때 스터디 기간이 너무 길면 안된다는 생각이 들어 2달 내외로 진행하기로 했다.
첫 스터디 때는 DQN, A3C, DDPG 등 RL에서 기반이 되는 논문들 위주로 살펴봤다. 논문 발표를 준비하면서 이해가 되지 않는 부분들은 중간 중간에 질문/답변을 통해 서로 이야기하면서 메꿀 수 있었다. 큰 문제 없이 첫 스터디를 마치고 1달 정도 휴식 기간을 가진 뒤 스터디 2기를 진행했다. 그리고 이번주까지 해서 스터디 3기를 마친 상태다.
이렇게 자료들이 쌓이다 보니 리뷰한 논문 수가 30개가 넘었다. 그래서 지금까지 발표한 자료들을 저장소에 올려뒀다. 많은 분들에게 도움이 되었으면 좋겠다. 내년에 스터디 4기를 진행할 예정인데 기존 스터디와 조금 다른 방향으로 진행할 생각이다. 지금까지 스터디가 단순히 논문을 정리해 발표하는 스터디였다면 내년에는 논문 리뷰와 함께 코드도 직접 구현해 보는 스터디를 진행할 생각이다. 자세한 내용은 내년 초에 따로 글을 올릴 예정이니 참고하기 바란다.
집필 및 번역
번역 - C++ Crash Course
2019년 7월, 번역서 “C++ 최적화”를 출간한 이후 휴식이 필요하다고 느껴서 당분간 번역을 하지 않기로 했었다. 그러다가 7월에 메일 한 통을 받았는데 C++17 관련 도서 번역이 가능한지 문의하는 내용이었다. 책 내용을 살펴보니 마음에 들어서 편집자 분과 만나 이런저런 이야기를 나눈 뒤 계약을 진행했다.
번역할 책은 “C++ Crash Course”로 C++17을 기반으로 한 입문서이다. C++ 기초 개념부터 시작해 라이브러리, 프레임워크 등을 소개하는 책으로 약 700페이지이다. 내년 1/4분기까지 1차 번역을 완료하는 게 목표다. 11월부터 12월 초까지 회사 성수기 작업으로 인해 번역을 하지 못해서 매일 열심히 번역하고 있다. 내년 상반기에 출간을 목표로 열심히 작업해야겠다. 필요하다면 C++20 표준 관련 내용도 부록으로 실을 생각이다.
집필 - TBA
IT 전문서 번역은 몇 권 진행했지만, 집필은 늘 두려움의 대상이었다. 혹시나 독자들에게 잘못된 지식을 전달할까봐 망설여졌다. 과거에 몇 번 시도했었지만 제대로 진행하지 못하고 포기했었다. 그리고 다시 시도해보려고 한다. 여전히 두렵지만, 자꾸 부딪혀보면 언젠가 극복하지 않을까 싶어서…
아직 주제를 공개할 수는 없지만 집필을 본격적으로 시작하지는 않았고, 목차를 구성한 뒤 예제 코드를 만들고 있다. 내년 상반기까지 1차 원고 작업을 완료하는 게 1차 목표다. 지금 주제 말고도 C++20 표준을 기반으로 한 책을 써보고 싶기도 해서 그건 내년 상반기에 구상해 하반기부터 집필을 시작해 볼 생각이다.
동아리 멘토 활동
강화학습에 관심을 갖게 되어 공부를 한 지도 몇 년이 되었다. 그러다 보니 몇몇 동아리에서 RL 분야 멘토로 참여해 줄 수 있겠냐는 부탁이 왔었다. 평소에 학생들과 이야기를 많이 하고 관심을 갖고 있던 나는 흔쾌히 수락했다. 그렇게 올해는 두 학교의 동아리에 RL 멘토 역할을 하게 되었다.
- 한국디지털미디어고등학교 AI 동아리 - Rendezvous
- 한양대학교 AI 스터디 그룹 - HAI
일정을 잡아 특강을 진행하기도 했고 프로젝트를 도와주기도 했지만 뭔가 많이 아쉬었다. 아무래도 COVID-19 여파로 인해 오프라인으로 만나지 못하고 온라인으로 진행하는 부분도 있었겠지만, RL 특강을 지속적으로 하지 못한 부분과 프로젝트 마무리가 깔끔하지 못했던 점 등이 아쉽다. 내가 좀 더 관심을 갖고 참여했으면 좋지 않았을까 하는 생각이 든다. 내년에 어떻게 될 지는 모르지만 혹시나 멘토 활동을 하게 된다면 앞에서 말했던 부분들을 개선해서 좀 더 좋은 멘토 역할을 해야겠다.
외부 활동
올해는 COVID-19로 인해 외부 활동을 많이 하지 못했었다. 그래도 알게 모르게 조금 했는데 정리하면 다음과 같다.
- 국민대 2020년 OSS 개발자 포럼 SW 겨울 캠프
- 2020 오픈소스 컨트리뷰톤
- 전북과학고등학교 특강
- SW 마이스터고 토크 콘서트
- KAIST 진로 콘서트
- 대구SW고등학교 번개 미팅
- GitHub in DevOps Meetup 2020
- 2020 공개 SW 페스티벌
모든 발표 및 특강을 이야기하기엔 너무 길어질 거 같아 이 중 기억에 많이 남은 발표 및 특강 몇 개를 이야기하려고 한다.
국민대 2020년 OSS 개발자 포럼 SW 겨울 캠프
지난해 진행했던 OSS 개발자포럼 SW 여름 캠프에서의 학생들의 반응이 좋았는지(?) 덕분에 겨울에도 강의를 부탁받았다. 지난 캠프에서는 “강화학습 기초”를 주제로 강의했었는데 예상보다 학생들이 잘 따라와서 고마웠다. 그래서 주제를 고민하다가 자신감을 얻어 한 걸음 더 나아가보기로 했다.
처음에는 AlphaZero를 이용해 바둑 AI 만들기를 하려고 했는데 학습하는 데 너무 오랜 시간이 걸릴 거 같아 오목으로 변경했다. 여름 캠프 때 조교로 도와줬던 학생들과 함께 겨울 캠프 준비를 했다. 강의 자료와 예제 코드를 만들고 학생들이 만든 AI로 대전을 할 수 있도록 서버도 준비했다.
이번 주제가 지난 캠프보다 난도가 더 높은 주제라 어떻게 설명하면 좋을 지, 그리고 어떻게 학생들이 흥미를 갖게 할 지 고민을 많이 했다. 저번처럼 학생들이 이해가 안되는 부분이 있을 때는 다시 설명하고, 필요하다면 저녁에 보충 설명도 별더로 할 생각이었다.
이번에도 학생들은 잘 따라와줬다. 훨씬 더 어려운 주제라 따라오기 쉽지 않았을텐데 너무 고마웠다. 마지막 날에는 첫번째 과제였던 커스텀 에이전트 만들기와 두번째 과제였던 사목 AI 만들기에서 제출한 코드로 토너먼트 대전을 펼쳤고 중계를 하며 모두 재밌는 시간을 보냈다. 그렇게 해피 엔딩으로 캠프는 끝이 났다.
이번 캠프에서는 학생들에게 알파고와 같은 인공지능을 구현할 수 있다는 능력을 배양하고 캠프가 끝난 이후에도 스스로 나아갈 수 있다는 자신감을 주자는 목표를 세웠었다. 이를 위해 캠프에서 사용했던 강의 자료와 코드는 모두 오픈 소스로 공개해뒀으니 언제라도 다시 봤으면 좋겠다. 어려운 주제더라도 학생들에게 눈높이를 맞추고 목소리에 귀를 기울여주면 같이 헤쳐나갈 수 있다는 점을 배웠다. 덕분에 모두 결과물을 만들어낼 수 있었다.
그리고 2일차에 나 대신 조교 학생이 강의를 진행했다. 평소 AlphaZero와 관련된 연구를 하고 있어서 학생들에게 잘 가르칠 수 있겠다는 판단이 들어서 제안을 했고 흔쾌히 수락했다. 나는 학생들에게 더 잘 알려줄 수 있는 사람이 가르쳐야 한다고 생각한다. 이번 캠프는 나와 조교 두 명이서 각자 잘하는 부분들을 나눠서 잘 해냈다고 생각한다. 다음에는 조교들이 캠프에서 강의해도 좋겠다는 생각이 들었다.
배우느라 고생한 학생들, 같이 자료 만들고 질문 받느라 수고해준 조교들, 행사 전반을 기획하고 운영하느라 고생한 운영진 분들께 모두 감사드린다는 말씀을 드리고 싶다. 다음 캠프에도 뭔가를 하게 될 지는 모르겠다. 그건 다음에 생각해 보기로…
2020 오픈소스 컨트리뷰톤
작년에 오픈소스 컨트리뷰톤에 멘토로 참가해달라는 부탁을 받은 적이 있었다. 그 때도 신청할까 말까 고민했었지만, 아직은 준비가 필요하다는 생각했고 다른 할 일이 많았기에 정중히 거절했었다. 그리고 1년이 지난 올해, 오픈소스 컨트리뷰톤에 멘토로 참가해달라는 부탁을 다시 받았다. 이번에는 작년과 다르게 여유가 있어 어떤 프로젝트로 참가하는 게 좋을까 고민했었다. 최종적으로 RosettaStone과 CubbyFlow를 두고 고민했는데, 도메인 지식이 많이 필요한 CubbyFlow보다는 RosettaStone이 접근하기 쉽겠다는 생각이 들어 최종적으로 RosettaStone으로 참가하기로 결정했다.
몇 일이 지났을까… 다행히 컨트리뷰톤 프로젝트에 선정되었다.
컨트리뷰톤에서 같이 작업할 멘티분들을 위한 가이드라인 문서도 만들고, 참가자 모집 유형도 적었다.
이후 멘티 모집을 위한 접수를 받기 시작했다. 접수 기간이 끝나고 멘토가 직접 멘티를 선발해야 하는 시간이 찾아왔다. 나름대로 여러 기준을 두고 선발하려고 했는데 뽑으려고 하니 생각보다 쉽지 않았다. 마음같아서는 모두 선발해서 같이 작업하면 좋겠지만 선발 인원수가 정해져 있다 보니 어쩔 수가 없었다. 최종적으로 16명의 인원을 선발하게 되었다. 어느덧 8월 1일이 되고 발대식을 개최하게 되었다.
컨트리뷰톤 기간 동안 멘티분들과 서로 대화를 나눌 디스코드 채널을 개설하고 개발과 관련된 질문/답변, 코드 리뷰 등 다양한 이야기를 주고 나눴다. 그리고 발대식을 마치고 멘티분들의 컴퓨터에 개발 환경을 설정해드리는 걸 도와드렸다. 덕분에 빠르게 개발 작업에 착수할 수 있었고 컨트리뷰톤 기간 동안 14명의 멘티분들께서 72장의 카드를 구현해주셨고 여러 버그들을 해결해주셨다.
길다면 길고 짧다면 짧은 6주였지만, 많은 보람을 느낄 수 있었고 뿌듯한 시간이었다. 멘티분들에게도 그런 시간이었길 바란다. 이번 컨트리뷰톤을 하면서 아쉬웠던 점들을 보완해 내년에도 멘토로 지원할 수 있으면 좋겠다. RosettaStone을 해도 좋고, 아니면 다른 프로젝트로 해도 좋겠다. 이 자리를 빌어 나와 같이 컨트리뷰톤을 함께 해준 멘티분들과 운영사무국분들께 감사의 인사를 드린다.
전북과학고등학교 특강
올해 CubbyFlow랑 PokeMaster 프로젝트를 진행하면서 친하게 지내는 승우랑 이야기를 하다가 모교인 전북과학고등학교에서 특강을 해보면 좋겠다는 생각을 했었다. 그런데 그게 현실이 되어버렸다. 그래서 8월 13일 오전에 건강검진을 마치고 오후 기차로 전북 익산까지 이동해 전북과학고등학교에서 컴퓨터 과학/공학 분야에 관심이 있는 학생들에게 강화학습이 무엇인지 소개하는 시간을 가졌다.
참고 : KF94 마스크를 착용한 채로 특강을 진행했다.
깊은 내용을 다루기 보다는 흥미를 이끌어낼 수 있도록 제가 만들고 있는 강화학습 환경들을 소개했고 익숙한 게임들을 예시로 들어가며 설명했다. 덕분에 학생들이 관심을 갖고 많은 질문들을 해서 재밌는 시간을 보낼 수 있었다. 2시간 정도 특강을 진행한 뒤 정보부 선생님과 여러 대화를 나누며 다음을 기약했다.
지방에 있는 학생들은 최신 정보를 접할 기회가 많이 부족하다. 그래서 이번 방문이 한 번에 그치는 게 아니라 정기적인 방문으로 이어졌으면 좋겠다는 생각을 했다.
사이드 프로젝트
RosettaStone
RosettaStone은 2017년 말에 시작한 프로젝트로 C++로 하스스톤 게임을 구현하고 강화 학습을 통해 여러 가지 의미있는 연구를 하기 위한 프로젝트다. 어느새 이 프로젝트를 시작한 지도 3년이 되었다. 작년 말에 작성했던 로드맵을 살펴 보며 올해 얼마나 달성했나 살펴봤는데 지금 와서 생각해 보면 사용할 수 있는 시간에 비해 목표를 너무 과하게 잡았지 않았나 생각한다. 물론 로드맵 중에서는 기능 구현을 완료한 기능도 있지만 전부 완료하지는 못해 아쉽다. 그리고 올해는 팀원들이 많이 바빠 대부분의 작업을 혼자서 진행하게 되었다. 그래서 협업을 한다는 느낌보다 혼자서 진행하는 사이드 프로젝트라는 느낌을 많이 받았다.
하지만 아쉬웠던 게 있다면 좋았던 게 있기 마련이다. 위에서 언급했던 2020 오픈소스 컨트리뷰톤 덕분에 짧게나마 다른 사람들에게 도움을 주며 협업해 볼 수 있는 시간을 가졌다. 그리고 가끔 작업을 진행하거나 버그를 고치면서 개발 글을 올릴 때가 있는데 응원해주시는 분들이 있어서 에너지를 얻고, 프로젝트와 관련해서 문의가 올 때 보람을 느끼기도 한다. 이 자리를 통해 감사하다는 말씀을 드리고 싶다.
올해는 전장(Battlegrounds) 구현, 수백 장의 카드 로직 구현, 로직 버그 수정, 메모리 릭 수정 등 다양한 작업을 했다. 확장팩이 나올 때마다 새로운 카드들이 추가되기 때문에 카드 로직 구현 작업만 해도 꽤 벅찬 일이지만 여전히 열정은 불타오르고 있고 정해둔 목표가 있기 때문에 포기하지 않고 계속 나아갈 생각이다. 내년에도 많은 작업을 할 예정이니 기대해주셨으면 한다. 언젠가는 멋진 AI로 찾아뵐 날이 있기를 바란다.
CubbyFlow
CubbyFlow는 복셀 기반의 유체역학 시뮬레이션 엔진이다. 실시간 게임에 사용하기 위한 목표를 두고 작업하고 있다.
작년까지 혼자 작업하다가 다른 분야에 관심을 갖게 되어 한동안 중단되었다. 그러다가 올해 초 개발을 재개해서 새로운 기능을 지원해야겠다는 생각이 들어 팀원을 공개 모집하게 되었고 관심을 주신 몇 분들과 함께 회의를 하며 작업하기 시작했다. 올해는 새로운 기능을 지원하기 보다는 기존 코드에 있던 버그들을 수정하고 코드 품질을 향상시키는 작업 위주로 진행했다. 연말에는 Material Point Method(MPM) 기능을 지원하기 위한 Solver 구현 작업에 들어갔다. 그 외에 다른 팀원분께서 렌더링 기능을 구현하는 작업을 꾸준히 진행하고 계신다. 올해는 팀원분들과 회의하면서 기반 지식을 다지고 잠시 숨고르기를 하는 시간이었다면, 내년에는 쌓은 기반 지식을 토대로 여러 기능을 구현하는 시간이 되지 않을까 싶다. 내년에 멋진 회고로 찾아뵐 수 있기를 기원한다.
baba-is-auto
baba-is-auto는 Baba Is You 게임을 구현하고 강화 학습을 통해 여러 가지 의미있는 연구를 하기 위한 프로젝트다.
나는 강화학습 환경을 만들기 전에 게임 제작자에게 메일을 보내 혹시나 저작권과 관련한 이슈가 없는지 확인하고 있다. baba-is-auto 역시 작업을 시작하기 전에 제작자인 Arvi Teikari에게 메일을 보내 답변을 받고 개발을 진행하게 되었다.
1월부터 개발을 시작해 3월에 개발을 완료했다. 저장소에 가면 몇 개의 RL 환경을 직접 사용해 볼 수 있다.
baba-is-auto를 만들고 나서 메일이나 트위터를 통해 문의하는 경우가 종종 있었다. 이렇게 프로젝트에 관심을 가져줄 때마다 보람을 많이 느낀다. 내년에는 더 많은 RL 환경을 제공할 생각이고 레벨 에디터 프로그램도 만들 예정이다.
Ray Tracing Series
리얼 타임 레이트레이싱(Real-time raytracing) 기술이 발표되면서 레이트레이싱에 관심을 갖고는 있었지만 기반 지식도 부족하고 무언가를 만들어본 적이 없었다. 그러다가 “Ray Tracing in One Weekend”라는 사이트를 보고 한 번 직접 만들어 보자는 생각이 들었다. 이 시리즈는 총 3개로 되어 있는데 하나씩 따라해보면서 결과물이 나오니 상당히 흥미로웠고 배울 수 있는 게 많았다. 다음은 작업하면서 얻은 결과물 중 일부다.
이를 기반으로 내년에는 기존 코드에 CPU/GPU 병렬 지원 기능을 추가하거나 성능을 최적화하고 DirectX나 OpenGL로도 작업해 볼 수 있으면 좋겠다.
구현한 코드는 다음 저장소에서 확인할 수 있다.
운동 - 링피트
나는 운동하는 걸 좋아하지 않는다. 하루의 대부분을 컴퓨터 앞에서 보내며 운동이라고 한다면 잠깐 일어나서 스트레칭을 하거나 외출을 할 때 판교역까지 산책을 걷는 정도가 전부라고 할 수 있다. 그나마 평소에 사람들을 자주 만나기에 많이 움직였는데 COVID-19로 인해 장보기 등을 제외하면 대부분 집에서 생활하고 있는 상태다.
건강은 점점 더 안좋아졌고 몸상태도 많이 망가졌다. 그러던 중 민천이의 추천으로 링피트라는 게임에 관심을 갖게 되었다. 링피트는 닌텐도의 피트니스 게임으로 닌텐도 스위치로 게임과 운동을 동시에 즐길 수 있다. 평소 운동을 좋아하지 않았던 나였기에 이 게임이 나에게 흥미를 줄 수 있는지 체험해보고 싶었다. 먼저 링피트를 하고 있었던 민천이가 잠깐 빌려줘서 집에서 몇 일 동안 체험판으로 해보게 되었다.
몇 일 해보니 게임이랑 운동을 동시에 즐길 수 있어서 그런지 나한테도 잘 맞는 거 같았다. 그래서 운동할 때 사용할 대형 매트와 링피트를 함께 파는 세트를 구입해 본격적으로 운동하기 시작했다. 한 번에 많이 하기 보다는 매일 1시간 내외로 하면서 꾸준하게 할 수 있도록 노력했다. 1주일에 4~5일은 링피트를 하는 걸 목표로 말이다.
4월부터 시작해 지금까지 꾸준히 하고 있다. 중간에 회사 일로 바빠서 2~3달을 쉰 적도 있지만 특별한 일이 없을 때는 약속을 지키려고 했다. 그 결과 9월에 1회차를 클리어할 수 있었다. 30시간 29분 36초 동안 운동했으며, 95.50km를 달렸고, 10157.81kcal를 소비했다.
중요한 건 링피트를 해서 몸에 변화가 생겼다는 거다. 링피트를 하기 전에 인바디를 재고 1회차를 클리어하고 나서 인바디를 쟀더니 몸무게는 그대로인데 근육량은 늘었고 지방량은 그만큼 줄었다. 물론 운동과 더불어 식습관 관리도 해야겠지만 꾸준한 습관이 변화를 만든다는 걸 몸소 경험할 수 있었다.
현재는 2회차를 하고 있으며, 어느덧 운동 100일차를 앞두고 있다. 최근에 야근으로 인해 운동을 쉬는 동안 몸이 망가졌는데 다시 예전 몸상태를 되찾고 더 건강해지고 싶다. 내년에도 열심히 해야겠다.
2020년 계획 리마인드
내년 계획을 세우기 전에 2020년에 계획했던 일들을 리마인드하는 시간을 가져보려고 한다.
- C++20 책 집필하기 (박동하 님과 함께 작업) → 연기
여러 C++ 책들을 번역하면서 언젠가는 나도 C++ 책을 써보고 싶다는 생각이 있었다. 하지만 C++ 책을 쓰기엔 아직 준비가 되어있지 않다고 느꼈고 다른 사람에게 잘못된 지식을 전달할 수도 있다는 걱정과 두려움에 진행하지 못했다. 올해 하반기에 여러 사람들과 이야기를 나누며 조금씩 힘을 얻어 C++이 아닌 다른 분야로 우선 책을 써보기로 했다. 현재 진행중인 집필을 큰 문제 없이 끝낼 수 있다면 내년에는 C++ 책 집필도 계약해서 도전해보지 않을까 싶다.
- RL 환경 구축 관련 논문 쓰기 → 연기
RosettaStone 프로젝트를 진행하면서 RL 환경 구축과 관련된 논문을 써보면 좋겠다는 생각이 있었다. 실제로 몇몇 학회에 논문을 제출하려고 내용을 조금씩 쓰고 있었는데, GIST에서 RL을 연구하시는 교수님과 온라인 및 오프라인으로 이야기를 나누고 나서 생각을 다시 하게 되었다. RL 환경 구축만으로는 학회에서 Accept을 받기 쉽지 않다는 걸 알게 되었고 프로젝트를 완성시켜 결과까지 얻고 나서 쓰는 게 좋겠다는 결론에 이르렀다.
- RosettaStone 외 여러 RL 환경을 구축하기 위한 프로젝트 작업 진행 → 진행중 & 완료
올해 새로운 RL 환경을 구축하기 위한 프로젝트를 몇 개 만들었다. baba-is-auto 게임 “Baba Is You”, PokeMaster는 게임 “Pokemon Sword/Shield”의 포켓몬 배틀, HellSolver는 게임 “Helltaker”, YahtzeeMaster는 게임 “Yahtzee”, Runeterra는 게임 “Legends of Runeterra”를 위한 RL 환경이다. 완성된 프로젝트도 있고 이제 막 시작한 프로젝트도 있는데 내년에 작업해서 결실을 맺었으면 좋겠다.
- 국민대 2020년 OSS 개발자 포럼 SW 겨울 캠프 - 알파제로를 이용한 오목 AI 만들기 → 완료
위에서 자세하게 이야기했으니 여기서는 생략하겠다. 목표를 달성했다.
- 모두의연구소 LAB 개설 → 중단
2019년 말에 모두의 연구소 컨퍼런스(MODUCON)를 다녀와서 내년에 LAB을 개설해보고 싶다는 생각이 들었다. 오프라인으로 하면 좋았겠지만 COVID-19 여파로 모든 스터디들이 온라인으로 진행하게 되었다. 온라인으로 진행할 거라면 굳이 모두의연구소에서 LAB을 따로 열어서 할 필요까지는 없겠다는 생각을 하게 되어 중단했다. 대신 온라인 스터디를 하나 만들어서 진행했다.
- C++ Korea 스터디, 세미나 및 밋업 진행 → 완료
위에서 이야기했지만 올해는 스터디, 세미나, 밋업을 1번씩 진행했다. 목표를 달성했다.
- MVP Summit 2020 참석 → 완료
MVP Summit도 COVID-19 여파로 오프라인 행사가 취소되고 온라인으로 전환되었다. 덕분에 휴가를 아끼게 되었지만 MVP Summit 행사가 주로 한국 시간으로 새벽에 진행되었기 때문에 실시간으로 참가하기에는 한계가 있었다. 물론 생활 패턴을 미국으로 맞추셔서 적응한 뒤에 참가하시는 분도 계셨지만 나는 그러지는 않았고 낮에 새벽에 했던 행사들을 녹음한 파일로 대신했다. 1주일 정도 미국에서 생활하며 마이크로소프트 본사에도 방문하고 전세계 MVP들과 만나면서 C++과 관련된 다양한 이야기를 나누면 좋았을텐데 아쉽다.
- TEDxUNIST 강연 → 중단
COVID-19 여파로 행사가 잠정 연기되었다. 언젠가는 괜찮아져서 강연할 수 있는 날이 오겠지…?
기타 이야기
- 1월에 하스스톤 “위대한 제피로스”의 카드 디자이너인 Chadd Nervig와 트위터로 이야기를 나눈 적이 있다.
- PokeMaster 프로젝트를 만들고 나서 T1의 박세준 선수와 트위터로 이야기를 나눈 적이 있다.
- 5년 만에 새 컴퓨터를 사게 되었다. 성능은 다음과 같다.
- game-developer-roadmap의 Star 수가 2.6k가 되었다.
-
COVID-19로 집에 있는 시간이 많아지다 보니 요리를 하기 시작했다. 일단은 스테이크 정도만…
-
식도염이 자주 재발해 결국 커피를 끊어버렸다. 더불어 녹차도 잘 마시지 않게 되었다.
-
연말에 공기청정기를 구매했다. 큰 차이를 느끼진 못하는데 아무튼 좋아진거겠지…?
2021년 계획
2021년에 계획하고 있는 일들은 다음과 같다.
- C++20 책 집필하기
- C++20 온라인 강의 만들기
- RL 환경 구축 관련 책 집필 마무리 및 출간하기
- 자연어 처리(NLP) 공부해보기
- C++ Korea 사단법인 출범
- C++ Korea 세미나 및 컨퍼런스 진행
- 사이드 프로젝트 잘 진행하기
- RosettaStone
- CubbyFlow
- RustyFlow
- PokeMaster
- Runeterra
- 건강 관리하기
- 식단 조절
- 꾸준한 운동
- 체중 감량
- 다양한 요리 해보기
정리
올해는 COVID-19로 인해 삶에 많은 변화가 있었다. 평소 같으면 오프라인으로 진행했을 행사들이 모두 온라인으로 전환되었고 자주 있던 약속도 모두 없어졌으며 대부분 집에서 재택 근무를 하며 생활하게 되었다. 덕분에 안좋아진 부분들도 있지만 위기를 기회로 삼으며 좋아진 부분들도 있었다. 지금 상황으로 봤을 때 내년 상반기까지는 지금과 같은 생활을 지속할 거 같지만, 빠른 시일 내로 상황이 좋아져 예전과 같은 생활로 되돌아가길 바란다.
마지막에 무슨 말을 넣을까 고민하다가 이 문장으로 마무리하려고 한다.
우리는 뭔가를 배우거나 결정할 때 실수할 수 있다. 처음부터 잘하기는 굉장히 어렵다. 다만 결정할 때까지 충분히 기다려 줄 수 있는 환경, 배우려고 할 때 포기하지 않게끔 도와줄 수 있는 조력자, 실패하더라도 다시 일어설 수 있다는 격려, 마지막으로 말하기 전에 먼저 들어주는 자세가 필요하다.
2021년 새해 복 많이 받으시고, 원하는 목표 다 이루는 한 해가 되었으면 합니다! 끝까지 읽어주셔서 감사합니다.