회사 5민랩을 1년동안 다니며 쌓인 생각을 개인적으로 정리합니다. 이글은 포스트 모템 중 “프로그래밍”에 대한 내용입니다.
이전 경력과 큰 차이점은 프로그래머의 구성원의 수와 수준이다. 개발 기본기에 대해 설명 없이 의도만 전달해도 충분하다. 수준 차이를 느낄 수 있는 지점이었다. 믿고 맡길 수 있는 팀원으로만 구성된 점에서 오는 심리적 안정감이 다르다. 내가 팀원을 봐주지 않아도 되고, 더더욱 맡은 일에 집중할 수 있다. 어떤 때는 문제에 막혔을 때 팀원들을 불러서 머리를 맞대면 손쉽게 해결된다. 그만큼 더 빠르게, 정확하게, 새롭게 일을 할 수 있는 환경이 매우 감사하다.
내가 모르는 부분도 누군가는 일을 하고 프로젝트의 부족한 부분을 채우고 있다. 배워보고 싶거나, 해보고 싶다면 언제든지 기회를 만들어 낼 수 있다. 하지만 그러지 못했다. 익숙하고 잘할 수 있는 일만 하려는 심리가 있었다. 적응하면서 프레임워크와 CS 기본 지식들을 다시금 꺼내 체득하는 것도 마찬가지로 새로 배운 부분들이다. 하지만 나의 능동으로 이뤄진게 아니라 자연스레 체득된 것 들이다. 이전에 경험하거나 새로 배워보고 싶었던 것들이 많이 있었는데도 나의 주도로 배웠던 것들이 없어서 아쉽다.
막상 내가 배운 것들도 체득된 것들이기 때문에, 덩어리만 기억이 날 뿐 구체적인 사례들을 댈 수 없다. 하루 스케쥴을 쓰고 있으니까 TIL을 다시금 시작하는 것도 좋겠다.
코드 리뷰하며 스스로를 반성했다. 의도를 어떻게 담아야 하는지, 돌아가는 코드를 많이 짰었는데 부메랑이 되어 얼마나 아프게 돌아오는지도 뼈 저리게 느꼈다. “일단 돌아가는 코드”가 아닌 “구조적으로 완성된 코드 위에서 구현이 완료되어야 한다” 를 명심했다. 프로젝트가 크다보니 깨진 유리창의 법칙이 훨신 가팔랐다. 모르는 사이 약한 기반 코드 위 기능들이 우후죽순 쌓였다. 간단한 기능에서 시작했지만 코드가 강하게 결합되어 있어 기능을 제거하는 일이 결코 가볍지 않았다. 의존성을 관리하지 않아 프로젝트의 로딩 속도가 현저히 늘어나서 개발 생산성이 매우 떨어진다.
이전 회사부터 시작했던 구현 전에 UML으로 구조 먼저 잡기도 익숙해졌다. 어느새 구조적으로 훨씬 더 자주, 깊게 고려할 수 있게 됐다. 미리 구현하고 상상하는 훈련이 확실히 됐다.
프로그램 적으로 어떤 것을 새로 배우고, 깊이를 만들지 고민이 된다. 얕은 수준으로 읽었던 전공 책들은 꽤 있지만 키워드를 아는 척 할 수 있는 수준이지 완전히 이해하고 있지 않다. 심지어 최근에는 전공/비전공 책을 읽은지도 언제인지 까마득하다. 게임 플레이 / 개인 프로젝트 / 전공 책 / 나의 삶 가꾸기 사이에서 균형을 찾는 줄다리기는 언제 어느 회사를 가더라도 늘 있는 상황같다.
앞으로?
- 프로젝트에서 코딩외에 여러 도전적인 일들 시도해보기. 기능 외에도 프로젝트를 드라이빙하거나 사운드 / CI / 빌드 / 그래픽스 등등 다양한 역할을 맡을 수 있어야 한다.
- 전공 책을 음미하며 끝까지 읽어보기. 키워드에서 추정하는 건 이제 충분한 것 같다. 의미를 제대로 이해하고 적절한 상황에 꺼내서 설득할 수 있어야 한다. 협업할 때 잘못된 키워드는 동기화를 깨트린다.
- 코드 퀄리티 높이기. 지금도 나름 잘한다고 생각했다. 하지만 팀장님과 다른분들을 보며 역시 훨씬 잘하는 사람도 있고, 코드 맥락을 단숨히 파악한다던가 가지고 있는 기술의 넓이나 깊이가 다름을 느꼈다. 속도를 잃지 않으면서도 신중하고 더 좋은 코드를 짜도록 노력해보자.
- 프로그래밍 외에도 프로젝트 완성해보기. 올해 목표중 하나다. 개인 게임 프로젝트를 여러번 시도하면서도 제대로 끝까지 해보지 못했다. AI와 실력이 좀더 쌓인 지금 지금하는 프로젝트를 올해안에 끝까지 완성해보고 싶다.
- 문서화하면서 작업해보기. 작업 맥락을 넘기거나 같이 하는 상황이 많은데, 일의 시작이유 작업의 변화 내역을 스스로도 적으면 침착하게 일할 수 있고 정리와 공유가 잘될 것 같아서 만들어 보고 싶은 습관이다.
- 배운 것들을 정리하기. 이제는 새로 배운 것들을 더욱 놓치지 않고 싶다. 얼핏 들어서 아는게 아니라 정확히 아는 것이 더 중요한 때가 됐다.