Toy Project

토이프로젝트) 지하철 랜덤 여행지 - 1회차 회고 및 리뷰

seul chan 2020. 5. 23. 14:35

토이 프로젝트 - 지하철 랜덤 여행지 1회차 회고 및 리뷰

시작일: 2020-05-04
목표 종료일(1차): 2020-05-10

처음 목표는 단순했다. 그냥 현재 위치에서 특정 시간 안에 갈 수 있는 지하철역을 뽑아주는 것.

사실 아주 쉬울 거라고 생각해서 1주일만에 마무리 지을 수 있을 것이라고 생각했다. 결과는 아주 처참한 자만.

왜 그렇게 되었는지, 다음 2회차 도전에는 어떤 방식으로 목표를 세울 것인지에 대한 회고를 기록해본다.

절대 시간의 부족

처음 계획을 세울 때에는 시간을 별로 생각하지 않았다. 목표 종료일을 세운 것도 휴일이 3일 정도 끼어 있었기 때문에 휴일에 조금 달리면 될 것(?)이라는 아주 비과학적인 산정 방식을 사용하였다.

하지만 이는 휴일에 내가 얼마나 나태한지(...)를 잊은 계획이였고 결국 총 시간은 3-4시간밖에 되지 않았다. 작은 기능을 아무리 빠르게 만드려고 해도 이런 짧은 시간동안 목표를 이룰 수는 없었다.

계획의 부재

이번 토이프로젝트는 외부 API 없이는 절대로 완성할 수 없다. 지하철 등 대중교통 정보와 지도 정보를 내부에서 구현할 수 없기 때문이다.

그렇지만 공공 API를 사용하면 금방 되겠지 라고 생각하고 api를 찾아보았는데, 아주 여러 가지 문제점에 부딪히게 되었다.

api를 찾고, secret key를 발급받았는데도 잘 호출이 되지 않아 결국은 오딧XX라는 타 회사의 라이브러리를 사용하게 되었는데, 여기까지만 해도 이미 꽤 많은 시간이 흘러버렸다.

뿐만 아니라 결과물을 어떻게 낼 지에 대해서도 (django를 사용한 웹서버, 아니면 그냥 cli로 구현할 것인지) 생각해 보지 않았기 때문에 함수 몇 개 만드는 것에 그치게 되었다.

목표 및 경험의 부재

지금까지 여러 가지 토이 프로젝트를 시도해 보았지만, 사실 제대로 완성한 적이 별로 없는 것이 사실이다.

그러다 보니 토이 프로젝트에서 내가 어떤 것을 얻으려고 하는지에 대한 생각 없이 무작정 시작한 것이 아쉬웠다. 처음에는 빠른 결과물을 보려고 하였지만 만들려고 하다 보니 여러 가지 욕심이 생겨서 새로운 프로그래밍 언어나 기술을 사용하고 싶어지기도 하고, TDD로 작업하기 위해 테스트 코드에 시간을 보내는 등 실제 개발 시간과 동떨어진 시간을 많이 보냈다.

물론 이 시간이 낭비라는 것은 아니다. 다만 처음에 내가 계획했던 바가 명확하고 배우려고 하는 것들을 정해놓고 시작했다면 더 많은 것을 배울 수 있었을 것이고, 더 효율적인 개발과 학습이 가능했을 것이다.

그래서 다음은..?

이제 이번 리뷰에서 돌아보았던 것을 바탕으로 2차 목표 종료일을 세우고 (가능하다면) 이번에 마무리를 지을 생각이다.

Lean하지만 구체적인 프로젝트 스펙

  • 지금은 최소 스펙 이외에도 선택적으로 넣으려고 하는 기능들이 많다 보니 자꾸 산으로 빠지고 있다.
  • 이를 최대한 린하게, 기능만 구현하는 방식으로 완성한 이후에 살을 붙여나가는 방법을 사용하자.

조금 더 명확하고 구체적인 estimation 산정

  • 내가 하루에 할 수 있는 시간을 아~주 보수적으로 산정한 뒤 일정을 계산할 것이다.
  • 프로젝트 완료에 걸리는 최소 시간도 아주 보수적으로 산정하자.

시간을 내자

  • 토이 프로젝트에서는 몰아서 하는 아주 나쁜(...) 습관이 더욱 적나라하게 드러났다.
  • 가능하다면 매일(!) 하는 일정을 생각하자. 몰아서 3시간 하는 것보다 매일 조금씩 하여 끈을 놓지 않는 것이 더 중요하다고 판단하였다.

그럼 다음 목표를 산정하고 2차 종료일이 끝난 이후에 다시 한 번 리뷰 및 회고를 적도록 하겠다.

그때까지 나 자신에게 행운을 빈다. ¡Bueno suerte!