드디어 마지막 시험! D-day


코로나 여파로 인해 오프라인 테스트 대신 ZOOM을 이용한 온라인 테스트로 대체되었다. 너무 아쉬웠다! 마지막일 수도 있는 우테코 현장을 구경할 수 없다니!!! 자바지기 박재성님을 실제로 뵙지 못하다니... 꼭 붙고 싶다는 욕망이 커진다!!!

1시 시험 시작이지만 12시 부터 ZOOM에서 셋팅! 너무나 폐인스러운 모습에 조금 민망하긴 했다....

1시가 되자마자 요구사항이 도착했다.

처음에는 내 눈을 의심했다. '오잉? 3차 과제가 또 왔네??' 하고 자세히 살펴보는데... 최단거리 최소시간을 구하는 기능이었다. 최단거리 최소시간 을 한 번은 만들어보고싶었던 프로젝트였는데 이렇게 만나니 반가우면서 겁이 났다.

기능 구현 시작!


먼저 천천히 내가 만들어야할 기능이 무엇이 있을까 적어봤다. 지난 3차 과제때는 MVC패턴으로 갔다면 이번에는 책임주도개발을 하고싶다는 생각에 각 객체에 책임을 나눠주기 시작했다. (프리코스 끝나고 바로 오브젝트 라는 책을 읽고 많이 반성하게 되었다. 그래서 이번 마지막 미션은 최대한 오브젝트 책에서 나온 중요한 규칙을 지키려 노력해봤다.)

최단거리최소시간을 만났을 때는 먼저 다익스트라 알고리즘이 생각났다. 설마... 다익스트라 알고리즘까지 구현해야하나 생각이 들었을 찰나 밑에 보니 힌트가 있었다.

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

5 시간이라는 시간제한 때문에 바로 틀을 짜기 시작했다.

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

최단 거리 기준