셀프 육성 시뮬레이션 기록 010 - 잠시 방황 1
지난 글을 적기 전까지는 새로운 양식을 만들고, 그 양식을 조금 더 편하게 쓰기 위해 코드도 쓰고, 그러다 코드를 짜는 것에 빠져들어 코드를 위한 코드를 덧대는 시간을 보냈다. 꽤 부지런히. 그런데, 막상 그런 행동이 대체로 바퀴를 다시 발명하는 일이라는 걸 깨닫고 나니 한편으로는 이미 잘 만들어진 도구를 잘 활용해보자고 생각하면서도 마음은 잠시 방향을 잃었던 것 같다. 그래서 오늘의 기록은 변명 반에, 계획 반이 될 듯.
뱅크샐러드에서 받은 자료는 지출이 발생한 곳의 업종을 바탕으로 1단계로 분류되어 있었는데, 나는 보다 유의미한 분석을 위해 이것을 모두 나의 기준에 맞게 2단계로 분류하고자 했다. 그렇게 마음을 먹고 뱅크샐러드에서 1년 치 자료를 받아보니 누적 데이터 수가 약 1,250건 정도 되었다. 중간에 누락된 기록도 있고, 실제 기록은 1~2개월가량 더 있으니, 내가 들여다봐야 하는 데이터는 약 1,350건 안팎. 말이 천 건이지. 이걸 일일이 기존 기록과 대조하면서 분류할 생각을 하니 엄두가 안 났다.
여기서 내가 회사 일을 대하는 방식과 개인 프로젝트를 대하는 방식의 차이가 드러났다. 이게 만약 회사 일이었고, 당장 급하게 처리해야 하는 일이었으면, 도구고 뭐고 생각하지 않고 붙잡고 앉아 수작업으로 모두 분류를 했을 것이다. 아마 그랬다면, 지금쯤은 유의미한 분석을 시도하고 있었겠지. 하지만, 개인 프로젝트에서는 왠지 그런 fancy 하지 않은 방법을 쓰고 싶지 않았다. 누가 독촉하는 것도 아닌데, 나중을 위해서라는 핑계를 대며, 더 그럴싸한 방식을 선택하고 싶었다. 좀 그럴싸한 도구를 만들어서 말이다.
그렇게 떠올린 방법은, 데이터를 데이터베이스에 저장하고, 가볍게 클릭을 통해 분류를 변경할 수 있는 (웹서비스 형식의) 화면을 만드는 것이었다. 프로그래밍으로. 이왕이면 비슷한 시간대의 유사한 지출 항목은 묶어서 한 번에 처리할 수 있도록 보여줬으면 좋겠다고 생각했다. 그래서 비슷한 시간대의 데이터를 자동으로 묶을 방법을 검색했고, 대충 시도해볼 수 있을 법한 방법을 스크랩하기도 했다.
이런 생각을 (처음) 하는 것 자체는 문제가 아니다. 회사일 하듯 소모적으로 개인 프로젝트를 다루는 건 의미가 없다는 생각도 한다. 이런 도구를 만드는 작업을 하는 게 개인 프로젝트의 진짜 목적에 가까울 수 있다는 생각도 한다.
다시 돌아가서, 이런 생각을 반복해서 하는 것은 문제다. 그리고 이번에도 그런 문제가 발생했다.
다시 말하지만, 돈 받고 일하는 것도 아니고, 이왕이면 어떤 방향으로든 나를 성장시킬 수 있는 방식이라면 긍정적으로 볼 수 있을 것이다. 일단, 이 사이드 프로젝트 이름도 셀프 '육성' 시뮬레이션이니까 말이다. 하지만, 이제는 이걸 도무지 긍정적으로 봐줄 수 없는 게, 이전에도, 그 이전에도, 그 이전의 이전에도 매번 이런 아름다운 꿈을 꾸다 사이드 프로젝트를 미궁에 빠뜨리는 실수를 반복했었기 때문이다.
문제를 조금 더 나눠서 보자면, 우선 나는 저렇게 정리한 것 같은 개발을 뚝딱뚝딱해내지 못한다. 아니, 조금 후하게 쳐줘서 최소한의 기능은 구현할 수 있다고 쳐도, 저걸 또 어떻게 효율적으로 할까 하는 고민을 하다 디자인을 한답시고, 더 좋은 알고리즘을 끼워 넣는답시고 시간을 보낼 게 분명하다. 그리고, 그런 걸 포괄해서 수행하기에 내 역량은 현저하게 부족하다.
더 큰 문제는, 그렇게 과거의 기록을 잘 분류하게 만드는 것이 이 프로젝트의 핵심이 아니라는 점이다. 과거의 지출 내역을(이제는 수입도 포함해서) 잘 분석하고, 거기서 개선점을 찾자는 마음으로 시작한 것인데, 어느새 늘 관심을 두는 프로그래밍에 시선이 빼앗겨 주객이 전도되어버린 것이다.
그나마 다행인 건, 매번 이런 식으로 사이드 프로젝트가 좌초되곤 해서인지, 불과 며칠 안 되는 시간에 정신이 돌아왔다는 점이었다. 그렇게 정신을 차리고 보니, 도구를 만드는 아름다운 상상을 하느라 방향을 잃은 건지, 아니면 애초에 방향이 명확하지 않고, 다음 단계가 분명하지 않았기 때문에, 그런 상상에 쉽게 현혹된 것인지가 불분명하다는 생각이 들었다. 일단 무작정 데이터의 특징이라도 살펴보려 했을 때도 당장 이 데이터를 어떻게 분석해야 할지 막막하다는 느낌에 퍽 당혹스러웠다.
내가 처음에 가졌던 생각들, 그러니까 과거의 수입과 지출을 알면, 그래서 현재 나의 재무 상태가 정리된 형태로 보이면, 나는 이를 바탕으로 개선점을 자연스럽게 찾아낼 수 있을 것이라는 생각은 굉장히 모호한 형태였다는 생각이 들었다. 그래서 다시금 방향을 정리해보고, 다음에 해야 할 일을 작은 단위로 나눠봐야겠다는 생각이 들었다. 비록 그것이 아주 근시안적이고, 단기적으로만 의미가 있더라도 말이다.(사실 늘 과하게 부풀려서 상상해버리는 게 나의 지속성을 저해하는 가장 큰 요소이기도 했다.)
먼저 방향. 결국 현황을 파악하고 개선안을 도출하는 것이 핵심이 되어야 한다는 것은 변함이 없다. 이걸 조금 더 정리하면, 우선 주어진 데이터를 정리하고, 이를 바탕으로 현황을 파악(분석)해서, 향후 어떻게 흘러갈지 예상해보고, 이를 더 나은 흐름으로 변경하려면 어떤 부분을 개선해야 할지 찾는다 정도가 되지 않을까. 그래서 첫 번째 과제는 과거의 수입/지출 내역(주어진 데이터)을 현재의 상태를 파악할 수 있는 형태로 변환하는 작업이다.
정리를 위해 해야 할 일을 다시 또 잘게 쪼개 보면, 데이터를 잘 분류한 뒤, 한 달 단위로 입출금 내역을 항목별로 잘 나눠서 정리해야 한다. 이번에는 데이터를 잘 분류하기 위한 도구에 한눈팔지 않고, 입출금 내역을 정리하는 양식에 정신 팔지 않으면, 대략 한 주면 기본적인 정리는 할 수 있지 않을까. 일단, 데이터 분류에는 최대 3일 정도를 할애하고, 입출금 내역을 정리하는 양식은 기존의 Balance Sheet을 최대한 재활용하는 식으로 말이다.
뭐 어쩌다 보니 기록이라는 것이 긴 반성과 짧은 계획으로 정리되어 버렸지만, 한 주를 건너뛰는 것보다는 의미가 있겠지. 계획이란 건 이렇게 대충 휘갈겼으니, 내일부턴 다시 당장 해야 할 작은 일에만 집중을 해보자.