코로나 여파로 인해 오프라인 테스트 대신 ZOOM을 이용한 온라인 테스트로 대체되었다. 너무 아쉬웠다! 마지막일 수도 있는 우테코 현장을 구경할 수 없다니!!! 자바지기 박재성님을 실제로 뵙지 못하다니... 꼭 붙고 싶다는 욕망이 커진다!!!
1시 시험 시작이지만 12시 부터 ZOOM에서 셋팅! 너무나 폐인스러운 모습에 조금 민망하긴 했다....
1시가 되자마자 요구사항이 도착했다.

처음에는 내 눈을 의심했다. '오잉? 3차 과제가 또 왔네??' 하고 자세히 살펴보는데... 최단거리 최소시간을 구하는 기능이었다. 최단거리 최소시간 을 한 번은 만들어보고싶었던 프로젝트였는데 이렇게 만나니 반가우면서 겁이 났다.
먼저 천천히 내가 만들어야할 기능이 무엇이 있을까 적어봤다. 지난 3차 과제때는 MVC패턴으로 갔다면 이번에는 책임주도개발을 하고싶다는 생각에 각 객체에 책임을 나눠주기 시작했다. (프리코스 끝나고 바로 오브젝트 라는 책을 읽고 많이 반성하게 되었다. 그래서 이번 마지막 미션은 최대한 오브젝트 책에서 나온 중요한 규칙을 지키려 노력해봤다.)
최단거리 와 최소시간을 만났을 때는 먼저 다익스트라 알고리즘이 생각났다. 설마... 다익스트라 알고리즘까지 구현해야하나 생각이 들었을 찰나 밑에 보니 힌트가 있었다.

이 라이브러리는 처음 보기 때문에 매우 당황했다. 빠르게 구글링으로 api를 쭈욱 살피고 바로 test코드를 돌리면서 라이브러리에 익숙해지려고 노력했다. (이를 학습 테스트 라고 칭한다.)
5 시간이라는 시간제한 때문에 바로 틀을 짜기 시작했다.

얼른 적고 코드를 작성해봐야하기 때문에 무언가 프리코스때 보다 자세히 못 쓴 거 같아 많이 아쉽다. 이번 과제에서 가장 신경써야 했던 부분은 "최단 거리 시 걸리는 시간" 또는 "최소 시간 시 총 거리" 를 구하는 것이었다.
