[우아한테크코스 3기] 최종 합격 - 최종 테스트 후기

Junseo Kim·2020년 12월 21일
1

최종 테스트 준비

원래 계획대로라면 3주차 미션을 월요일까지 끝내고 화, 수, 목, 금 하루에 5시간씩 시험치듯이 우테코 1기 3주차 미션과 최종 테스트 문제, 우테코 2기 3주차 미션과, 최종 테스트 문제를 풀어보려고 하였으나, 3주차 미션이 오래걸려서 수, 목, 금 3일의 마지막 준비 시간이 있었다.

결국은 블랙잭 미션치킨집 미션 두 미션만 더 구현해 볼 수 있었다.(블랙잭이 생각보다 오래걸려서 5시간은 택도 없었고, 수요일 목요일 이틀을 사용했다ㅠㅠ) 그래도 금요일날 마지막으로 구현해 본 치킨집 미션은 나름 5시간 정도 안에 구현은 해볼 만했다.

3주차 미션 피드백을 보고 부족한 점을 보완하고 싶었는데 아쉽게도 3주차 피드백은 없었다ㅠㅠ

최종 테스트 후기

문제를 처음 보자마자 조금 당황했다. 아에 관련없는 새로운 미션이 나올 줄 알았는데, 3주차 미션과 연결되는(?) 미션이었다. 3주차 미션지하철 기본 정보 관리(지하철 역 관리, 지하철 노선과 노선에 포함된 역 관리)였다면, 최종 테스트는 지하철 길찾기 였다.

문제 설명과 제출한 코드는 => 여기로 가시면 볼 수 있습니다!

또 당황한 이유가 하나 더 있는데 외부 라이브러리 jgrapht를 활용해서 최단 경로 알고리즘인 다익스트라 알고리즘을 사용해야했기 때문이다. 프리코스를 진행하면서 외부 라이브러리를 사용해본 적이 없어서 조금 당황했지만 힌트 예제가 잘 나와 있어서 가져다 사용할 수 있었다.

기능 목록 작성

프리코스와 마찬가지로 구현해야하는 기능 목록부터 작성했다. 예외 사항이 뭐가 있을지 생각을 해봤는데 아래의 예외 사항 밖에 생각해내지 못했다.

  • 선택지에 있는 옵션을 고른지 검증
  • 출발역과 도착역이 등록되어 있는 역을 입력했는지 검증
  • 출발역과 도착역이 같지 않은지 검증
  • 출발역과 도착역이 연결되어 있는지 검증

시험이 끝나고 생각해봤는데 지하철 역, 노선, 구간에 관한 조건이 따로 없었긴 하지만 3주차 미션 때 처럼

  • 역이나, 노선 이름이 2글자 이상인지 검증
  • 역이나, 노선 이름이 중복되지 않는지 검증
  • 구간 생성시 두 역이 등록된 역인지 검증
  • 구간의 두 역 사이의 거리와 시간 입력이 음수가 아닌지 검증

등을 추가로 검증했으면 좋았겠다는 생각이 들었다.

패키지 구조

feature를 기준으로 패키지 구조를 만드려고 했다.

  • station: 지하철 역
  • line: 지하철 노선
  • section: 노선에 포함된 구간
  • path: 두 역 사이의 경로
  • cost: 두 역 사이의 비용(거리 / 시간)

클래스 분리

3주차 미션과 동일하게 MVC 패턴을 적용해보려고 했다.

사용한 모델은 아래와 같다.

전체적인 흐름은 아래와 같다.

controller에서는 service를 통해 데이터를 가져오고 view클래스에 데이터를 전달하는 '요청 / 응답'을 담당하게 했다.

service는 Repository를 통해 데이터를 저장하거나 가져오거나 계산등의 실제적인 로직 구현을 담당하게 했다.

enum 활용

이번 최종 테스트에서 enum을 적용해봤다. 메인 화면 선택지, 경로 탐색 기준, 초기화를 위한 기본 지하철 역, 초기화를 위한 기본 지하철 노선을 enum 클래스로 만들어서 사용했다.(원래 이런식으로 사용하는 건지는 잘 모르겠다ㅎㅎ..)

아쉬운 점

5시간 안에 해보려고 하다보니 마음이 많이 급했던 것 같고 너무 너무 아쉽다. 패키지와 클래스 구조도 제대로 짠 건지 잘 모르겠다. 또 객체 지향의 여러 원칙들도 만족하는가에 대해 질문이 들어온다면 맞다라고 대답하기도 어렵다. 예외 사항도 다 생각해내지 못한것 같고, getter도 많이 사용한 것 같고, 중복되는 부분도 효과적으로 줄이지도 못한 것 같다. 시험이 끝나고 계속 부족했던 부분이 떠올라서 마음이 힘들었다. 이미 끝난 시험이니 뭘 더 할 수는 없지만 그래도 아쉬운 마음이 계속 드는건 어쩔 수 없는 것 같다. 그래도 최선은 다했다고 생각하고 정말 의미있고 성장할 수 있는 시간이었다고 생각한다.

총평

우아한 테크코스 3기 프리코스와 최종 테스트를 진행하면서 의미있는 시간을 보낸것 같아서 감사하고 부족함을 많이 느꼈다. 자바도 공부했었고, 자바를 사용해 spring으로 프로젝트도 진행해보면서 나름 자바를 어느정도 쓸 줄 안다고 생각했는데 정말 많이 부족했던 것 같다. 결과가 어떻게 되던지 자바를 다시 한 번 공부해보고, 객체 지향에 대해 제대로 공부해보려고 한다. 목표를 가지고 해서 그런지 아니면 코드 컨벤션, 커밋 메세지 등의 규칙을 지키면서 체계적으로 해서 그런지는 모르겠지만 여태까지 프로젝트도 진행해보고 했지만 이번 프리코스와 최종테스트를 진행하면서 코딩하는 것이 지금까지 중 가장 재밌었다. 결과가 나오기까지 시간이 너무 길게 느껴지고 정말 우테코 가서 더 성장하고 싶은 마음이 굴뚝같다.

최종 테스트 결과


최종 테스트 이후 결과 발표까지 진짜 손에 아무것도 안잡히고 마음이 너무 힘들었는데 정말 너무 감사하게도 합격하게되었다. 인생에서 가장 긴 11일이었던 것 같다.. 진짜 너무 감사합니다. 진짜 열심히할게요!!

2개의 댓글

comment-user-thumbnail
2021년 1월 10일

준서님 축하드립니다 🎉 글을 보니 최종 테스트 정말 체계적으로 잘 짜신 것 같아요!
저도 운좋게도 우아한테크코스 3기과정에 참여하게 됐네요.
같이 잘해봐요 👍

1개의 답글