[우아한 테크 코스 8기] 1차 합격 및 최종 코딩테스트 후기

2025. 12. 30. 22:21·우아한 테크 코스 8기

0. 개요

제목이 곧 내용이다.

우아한 테크코스 8기 1차 합격했다.

 

 

1. 헉

사실 화요일(12월 30일)에 결과가 나오는 줄 알고 전혀 몰랐다. 네이버 메일 알람도 안와서 몰랐다.

아수라장 한 판하려고 디스코드 들어갔다가 발표가 났다는 걸 알았다.

 

큰 기대는 안하고 있었는데 막상 1차 합격하니, 엄청 좋았당 ㅎㅎ

 

열흘동안 최종 코딩테스트를 준비해야한다...

평일은 인턴 때문에 공부할 시간이 적은데 큰일이다.....

 

으아악

 

2. 최종 코딩테스트 준비 (시험 치르고 작성)

회사를 출근하는 데 왕복 3시간,

06:00 - 19:30은 공부할 수 없는 환경이었다.

선택과 집중이 필요했다.

첫날부터 생각없이 연습문제를 풀기보다는, 전략을 세우기로 했다.

 

1차 포수타에서 이번 최종 코딩테스트는 3주차와 비슷하거나 쉬운 수준이라고 했다.
그래서 매우 높은 난이도를 가지는 지난 기수들의 문제들은 과감하게 풀지 않기로 했다.

 

또한 연습문제 풀이 시간은 3시간으로 제한해, 시간에 쫓기도록 연습했다.
이유는 단순한데, 역체감 때문이다.
평소 3시간으로 연습하다가 최종 코딩테스트 때 5시간이 주어지면, 시간이 널널하게 느껴질 거라 생각했다.

 

감각을 기르고자 했다.
프리코스에서는 객체간의 협력을 잘게 쪼개고 난 뒤, 공통점을 기반으로 묶어서 협력을 정의했다.
5시간이라는 짧은 시간에서는 위 과정은 불가능하다고 생각했다.
그래서 문제를 보자마자, 객체로 인식되는 건, 과감하게 리드미에 작성하기로 했다.

 

위 전략을 토대로 다음 문제들을 풀어봤다.

문자열 계산기
로또
메뉴 추천
온콜
자판기
크리스마스 

 

기억 상 크리스마스 프로모션이 4시간으로 가장 오래 걸렸다.

크리스마스 프로모션에서는 전략패턴을 적용해보면서 작성하느라 조금 걸렸다.

 

온콜은 원래 풀 생각이 없었는데, 커뮤니티에서 누가 2시간 30분만에 풀었다고하길래, 나도 풀어봤다.

온콜은 3시간 정도 걸려서, 자신감?이 생겼다. (연속 된 경우 교체하는 알고리즘에서 약간 애를 먹었다)

 

편의점, 페어매칭, 출석부는 풀지 않았다. 오픈 톡방에서 지원자들이 지난 문제들의 난이도를 말해주셨는데, 저 문제들이 상위 3개이기 때문이다. 난이도는 로또 정도로 나온다고 했으니, 풀지 않았다.

한달동안, 코딩테스트 준비를 하지 않았지만, 프리코스 기간 이후, 프로젝트에서 객체지향프로그래밍을 적용하려고 노력해서, 금방 감을 찾을 수 있었다.

 

연습 할 때, 자주 사용하고 중복되는 코드들이 있었는데, 이는 Template으로 만들었다.

최종적으로 시험 전날에 인텔리제이 스니펫으로 만들었다.

Wrapper Class
Exception 발생 부분 부터 다시 재입력
CustomException
문자열, 숫자에서 자주 사용되는 검증 메서드

 

3. 최종 코딩테스트 당일

3 - 1. 시험 직전

최종 코딩테스트는 1월 10일 잠실에서 진행됐다.

안내된 시험 시간은 13-18시이고, 12시부터 입장 가능했다.

 

나는 11시 30분 쯤 근처 투썸플레이스에 방문해, 커피를 포장하고 12시 조금 넘어서 입실했다.

수십명이 한 공간에서 코딩테스트를 치르는 게 처음이라 신기했다.

 

와이파이를 연결하고 약간? 긴장이 되어서, 긴장 좀 풀어보려고 재밌는 유튜브 영상을 조금 봤다.

코딩테스트 관련 정보들을 보면 집중이 안될 거 같았다.

전날 많이 보기도 했고, 마인드셋 관리가 더 중요할 거라 생각했다.

 

그러다 문득 오픈미션이 코딩테스트에 영향이 있다면? 이라는 생각이 들었다.

3주차 정도의 난이도와 오픈미션과 같이 도전? 컨셉이 나오면? 이라는 생각이 들어서, 내가 작성했던 로또 코드를 보면서, 개선할 점이 있는 지 둘러봤다.

 

3 - 2. 구현

시험이 시작되었고 좋은 소식과 나쁜 소식이 있었다.

좋은 소식은 진짜 문제가 3주차 로또와 90% 일치하고 리팩토링이나 기능추가였다는 점이다.

나쁜 소식은 시험시간 5시간 중에, 구현은 4시간, 소감문 작성 1시간이라는 점이다.

 

운 좋게, 시험 직전에 갑자기 든 아이디어가 정말 시험 문제로 나왔다.

평소 내가 구현했을 법한 방식대로 13-15시 안에 구현하기로 하고, 나머지 15-17시에는 리팩토링을 거치기로 했다.

 

그렇다고 3주차 로또 코드를 싹다 복사 붙여넣기 하기엔 자존심이 상해서, 약간은 다른 방법을 생각해봤다.

이때, 기가막힌 아이디어가 떠올랐다. 시험장에 가는 길에, 현실세계의 '로또 구매과정'을 봤다는 점이다.

 

당일 시험장에 가기 위해 잠실역 8번 출구로 나와서 걸어가고 있었는데, 8번 출구 바로 앞에 사람들이 줄을 서고 있었다.

맨 처음에는 버스 줄인가 했는데, 생각해보니 무슨 버스 줄이 11시 30분에 이렇게 길지? 하고 지나가는 길에 유심히 봤었다.

알고보니 1등 21명을 배출한 로또 판매점에서 로또를 구매하기 위해 줄을 서고 있던 것이다.

당시에는 "아~ 그냥 구매한 표본이 많으니까 당연히 1등이 나올 확률이 높은거 아녀....? 저걸 왜 줄서고 있냐..." 하고 지나갔었다.

 

근데 문제를 보자마자, 이 기억이 바로 머리속에 스쳐지나가서,

- 로또 판매점 <-> 구매자
- 구매자 <-> 로또 당첨 확인 (현실에서는 QR찍거나, 네이버로 찾아봄)

이런 객체간의 협력을 떠올렸다.

 

그래서 3주차 로또에는 WinningLotto가 로또 당첨 여부를 확인했는데,

최종 코딩테스트에서는 WinningLottoMachine이라는 WinningLotto를 가지는 상위 객체를 두어서 구현했다.

현실세계처럼 추상화 수준이 조금 높아지긴 했지만, 꽤 괜찮은 아이디어였다고 생각한다.

 

3 - 3. 리팩토링

계획대로 2시간 안에 구현을 완료했다.

더보기

근데 개선할 부분이 생각보다 시간이 빠듯할 거 같아서, 좀 걱정했다.

약간 급해져서 리팩토링을 딱 시작하려고 했는데, 10분간 스트레칭 시간이 있었다.

 

기왕 이렇게 된거 10분 정도 머리 식히면서, 어떻게 리팩토링할 지 천천히 생각했다.

10분 정도 쉬는 게 매우 좋았다.

 

내가 개선하고 싶었던 점은 3가지 였다.

1. 계속 생성되는 CustomException Class를 개선하는 방법

2. 로또 결과를 enum으로 관리하는 게 정답인가? -> 전략패턴 도입

3. Money를 Customer와 LottoStore 둘 다 사용할 수 있는 방안

4. 코드를 급하게 작성해 코드 컨벤션을 지킬 수 있도록 리팩토링

 

내가 생각했던 각각 리팩토링 난이도는 1 << 2 <<<< 3 순이었고, 1번부터 차근차근 리팩토링을 하기로 하고 마지막 20분 쯤에 4번을 수행하기로 했다.

 

3 - 4. 구현 결과

결과적으로

1번과 2번 리팩토링 완료.
3번은 시도도 조차 못함.
4번은 놓친 부분이 존재.

막상 시간이 지나고 나니까, 그냥 3주차 코드를 참고하여 기능 구현을 1시간 안에 완성하고,

리팩토링이나 기능 추가에 시간을 쏟는 게, 8기의 주제에 적합하지 않았을까? 라는 생각이 들었다.

그치만 4시간이라는 시간 동안 열심히 해서, 후회되진 않았다.

 

레포 주소

https://github.com/koreaioi/java-planetlotto-8/tree/koreaioi

 

GitHub - koreaioi/java-planetlotto-8: 우아한 테크코스 8기 최종코딩테스트

우아한 테크코스 8기 최종코딩테스트. Contribute to koreaioi/java-planetlotto-8 development by creating an account on GitHub.

github.com

 

 

3 - 5. 소감문 작성

소감문은 다음과 같은 목차로 나눌 수 있다.

1. 구현 과정에서 끝까지 지키려한 원칙
2. 추가로 시도한 것
3. 추가로 시도한 게 나에게 가져다 준 의미
4. 아쉬운 점

 

1번은 현실세계의 협력을 코드로 구현하기 위해 노력했다는 걸 적었다.

2번은 리팩토링 과정을 서술했다.

3번은 리팩토링을 통해, 관습적으로 작성했던 나의 코드 습관에 의문을 던지고, 결과적으로 성장할 수 있었음을 적었다.

4번은 Money를 리팩토링하지 못한 점과 TDD에 집중하지 못했던 걸 적었다.

 

평소에 생각해봤던 부분이지만, 어떻게 해야 잘 읽히고 내 의도가 잘 드러날까에 신경쓰느라 1시간을 다 채워서 작성했다.

 

4. 종료

이렇게 우아한 테크 코스 8기 최종 코딩테스트를 마쳤다.

결과는 1월 23일에 나오는데, 하루 하루가 궁금해 미치겠다.

인턴 근무 하면서도 다른 블로그의 최종 코딩테스트 후기를 보게된다.

 

이 다음 포스팅은 최종 합격이거나, 슬픈 회고록이거나 둘 중 하나일 것 같다.

너무 기대하진 않겠다..!

 

 

+ 시험 볼 때는 많은 생각을 했는데, 정리를 제대로 못한거 같아서, 시간 날 때마다 계속 수정해야겠다.

 

5. 결과

야호 붙었당!

 

'우아한 테크 코스 8기' 카테고리의 다른 글

우아한 테크 코스 8기 Level 1 - 1주차  (0) 2026.03.03
[우아한 테크 코스 8기] 최종 합격  (0) 2026.01.23
[우아한 테크 코스 8기] 프리코스 3주차  (0) 2025.11.03
[우아한 테크 코스 8기] 프리코스 2주차  (0) 2025.10.27
[우아한 테크코스 8기] 프리코스 1주차  (0) 2025.10.20
'우아한 테크 코스 8기' 카테고리의 다른 글
  • 우아한 테크 코스 8기 Level 1 - 1주차
  • [우아한 테크 코스 8기] 최종 합격
  • [우아한 테크 코스 8기] 프리코스 3주차
  • [우아한 테크 코스 8기] 프리코스 2주차
koreaioi
koreaioi
  • koreaioi
    koreaioi
    koreaioi
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (187)
      • JAVA (3)
      • 알고리즘 (90)
        • 백준 (11)
        • String(문자열) (12)
        • Array(1, 2차원 배열) (13)
        • Two pointers, Sliding windo.. (6)
        • HashMap, TreeSet(해쉬, 정렬지원 S.. (5)
        • Stack, Queue(자료구조) (8)
        • Sorting and Searching(정렬, 이.. (10)
        • Recursive, Tree, Graph(DFS,.. (14)
        • DFS, BFS 활용 (6)
        • 다시 시작! (2)
        • 기초 수학 (1)
      • 일상 (26)
      • Github (1)
      • MSA 공부 (4)
      • 경제, 금융, 디지털, 시사 (3)
      • 라즈베리파이 (10)
      • 프로젝트에서 일어난 일 (22)
      • FrontEnd 공부 (9)
        • React (8)
      • Spring (2)
      • 기술 세미나 (2)
      • DB (3)
      • 우아한 테크 코스 8기 (10)
      • 잡생각 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
koreaioi
[우아한 테크 코스 8기] 1차 합격 및 최종 코딩테스트 후기
상단으로

티스토리툴바