본 캠프 1주차가 마무리돼서 WIL을 처음 써 본다.
처음 진행하는 팀 프로젝트가 당황스러웠을 법도 한데, 그래도 맨땅에 헤딩해 가면서 제한된 시간 내에 프로젝트 결과물 만들고 발표까지 성공적으로 마무리한 팀에 감사한 마음이 가장 먼저 든다.
부족하지만 팀장을 맡아 오랜만에 PM의 역할을 수행했고, 프로젝트 및 부트캠프 첫 주를 마무리하며 배우고 느낀 점을 간단하게 적어 본다.
대부분의 팀들이 겪었을 걸로 예상되는 문제지만, 처음 프로젝트를 받아든 순간 '뭐부터 해야 되지?' '방향성을 어떻게 잡아야 하지?' 등등 온갖 질문들이 머릿속에 떠오르면서 단체 멘붕이 왔었다. 분석의 방향성을 잡을 때도 처음에는 A라는 방향을 생각하고 진행하다가, 문득 머릿속에 B 방향이 더 괜찮을 것 같다는 생각이 들어서 '이게 맞나?' 싶은 생각이 든 경험이 다른 분에게도 있었을 것이다. 말해야 하나 싶다가도 이미 일이 진행되는 게 눈에 보이면 괜히 초치는 거 같아서 말 꺼내기도 쉽지 않았을 거 같고.
어차피 시작 단계에서는 모든 것이 가설에 불과하다. (심지어, '이런 방향이 괜찮을 것 같아'조차도 가설이다) 사전에 아무리 철저하게 생각하고 고민해도 100% 맞는 방향성을 세팅하고 움직일 수는 없다. 따라서
1) 일단 시작하고
2) 데이터를 "빠르게" 검증해 본 뒤
3) 생각한 바와 다르다면 그 때 다른 곳으로 이동하면 된다.
잘 될지 안될지조차 최소한의 시간만을 써서 검증하는 습관을 들이자. 시간관리는 필수다.
이번 프로젝트를 진행하면서 내가 가장 크게 오판했던 부분. 우리 팀에서 분석해야 할 데이터는 서울시 전세데이터와 공원정보, 지하철역 정보, 유흥업소 영/폐업 정보 등 총 4개였다. 프로젝트는 그 모든 데이터를 조회하는 것에 더해, 일정한 기준에 따라 점수화하고, 랭킹까지 매겨야 완성되는 상황. 이걸 쿼리 한 방으로 해결하려면,
1) 4개 테이블을 join해야 하고
2) join에 필요한 키 값을 만들기 위해 텍스트로 처리된 '지번 주소' 컬럼에서 자치구와 법정동만 분리해 별도 컬럼으로 만들어 주고
3) join한 뒤에는 case when 등으로 점수화를 진행해줘야 한다.
얼핏 보아도 복잡도가 꽤 있는 작업이었는데, 나는 이걸 '팀원 모두가 흩어져서 각자 알아서 (풀버전의) 쿼리를 쳐 본 후에, 만나서 결과를 맞춰보는' 방식으로 진행해 버렸다. 약속한 시간이 되어서 한 자리에 만나고 보니 모두의 결과가 다 달랐다. 아예 에러 때문에 도중에 멈춰서 진행하지 못했던 팀원도 있었다. 더 심각한 문제는 쿼리가 복잡했던 탓에 누구의 결과물이 맞는지 판단을 내리기조차 애매한 상황이었다는 것. 완성된 쿼리문만 공유하다 보니 생각의 과정이 잘 보이지도 않았고, 테이블명조차 모두 다르게 정해버린 탓에 쿼리를 볼수록 더 헷갈리는 상황이 됐다. 프로젝트에 실질적인 진척은 없었는데 모두가 쿼리 작성에만 매몰되어 아까운 시간을 날린 셈이 됐다. 명백한 내 실책이어서 아차 싶었던 순간.
나를 포함해 우리 팀원들의 데이터 조회 능력이 아직 비슷비슷했기 때문에 교차검증이 잘 작동하지 못했던 건데, 다음부터 이런 상황이 벌어진다면 검증의 과정 자체를 더 촘촘하게 해야겠다는 생각이 들었다. 즉,
1) 전세 매물 데이터로 평균까지만 먼저 내 보고 서로 결과 공유하고
2) 지하철 데이터까지 join해서 결과 공유하고
3) 공원 데이터까지 join해서 결과 공유하고
4) 유흥업소 데이터까지 join해서 결과 공유하고
하는 식으로. 이렇게 해야 엉뚱한 쿼리를 작성하느라 프로젝트에 쓸 귀한 시간을 날리는 일을 막을 수 있고, 팀원들의 데이터 조회 실력에도 실질적인 진척이 있게 될 것 같다. 튜터님들에게 쿼리 잘 짰는지 검사받을 수는 없는 노릇이니 다음부터는 이렇게 방식을 바꿔봐야겠다.
정말 '아예' 몰랐던 거라서 억울하진 않지만, localhost 세팅하는 데 1시간 가까이 쓴 것도 지금 와서 곱씹을수록 시간 아까운 일이었다. 그 시간에 다같이 모여서 아이데이션을 더 할 수 있었다면 좀 더 나은 결과가 나왔을지도 모를 일이라고 생각하면 더더욱. 근데 이건 결국 지식이 해결해줘야 할 문제기도 해서, 새로운 배움이었다기보단 이미 알고 있던 것을 재확인하는 것에 가까웠다. 뭐든지 잘 알고 잘 하면 어려울 게 없지. 인풋을 더 늘릴 수 있는 방법을 찾아봐야겠다.
이 외에도 여러가지 고민과 배움들이 있었다. 데이터에 결측치가 있다면 어떻게 처리해야 할지, 스코어링의 기준은 어떻게 해야 할지, 평균 내서 비교하기만 하면 되는 건지, 더 나은 통계량은 없는지, 분석을 더 정밀하게 하려면 무엇이 더 필요했을지 등등. 발표회 때 다른 팀들의 발표를 들으면서 '내가 조금 더 고민했어야 하는 부분들이 있었구나' 하는 걸 더 크게 느끼기도 했고.
다음 프로젝트에서는 더 매끄럽게 좋은 결과물을 뽑아낼 수 있게 의식하면서 노력해 봐야겠다.
1주차 끝.