조종 다음은 개발
article thumbnail

1차 합격 🎉🎉🎉

프리코스가 끝나고 1차 합격 발표까지 거의 한 달간의 시간 남았었다.

그동안 친구들도 만나고 예비군도 갔다 오고 게임도 엄청 했다.. ㅎㅎ

 

그래도 혹시 모르니까 코테 준비는 해야할 것 같았다.

그래서 최종 코테 스터디에 들어가서 매주 월요일에는 스터디를 했다.

스터디는 게더타운에서 모여서 같이 5시간동안 문제를 풀고 간단한 회고를 하는 방식으로 진행했다.

 

나는 사실 이번 6기를 오랫동안 준비했었다. 그러면서 자연스럽게 우테코 문제들을 다 풀어봤었다.

그래서 그런지 스터디에서 풀었던 문제들은 모두 5시간 안에 풀 수 있었다. (이미 풀어봤어서 그런가?? ㅎㅎ)

아무튼 "나름 코테를 치면 잘 할 수 있겠다"라는 자신감을 가지고 1차 합격자 발표날을 기다렸다.

 

그리고 합격자 발표 당일.. 오후 3시 발표여서 최대한 늦게 일어나고 싶었는데..

떨려서 그런지 8시쯤 눈이 자동으로 떠졌다! 

왜 이럴때만 일찍 일어나지지..

 

3시까지 할게 없어서 카페 가서 스터디 동안 풀었던 문제도 살펴보고 CS 관련 글 하나 포스팅 하면서 시간을 보냈다.

그리고 오후 2시쯤 되니까 아무것도 손에 잡히지 않았다,, ㅎㅎ

그래서 그냥 집에 와서 컴퓨터를 켜고 3시까지 게임을 했다. (생각 없이 시간 보내기에는 게임이 딱이지!)

 

롤토체스 한판 하고 보니까 시간은 2시 50분..

네이버 메일창을 켜놓고 벌벌벌버럽럽러러 떨면서 시간을 기다렸다.

그리고 3시 1분쯤 되니까 메일이 왔다!!

 

결과는 합격이였다!! 

나도 최종 코테를 보러갈 수 있게 되었다!!

바로 부모님께 말씀드리고 친구들한테도 1차 합격했다고 말하면서 기쁨을 만끽했다!

 

1차 합격 경쟁률이 약 15:1 인걸 감안하면 큰 걸음을 한 것이었다.

고생했던 만큼 결과가 더 달콤하게 느껴지는 것 같다. ㅎㅎ

물론 최종 합격을 한 것은 아니기에 마음을 추스르고 바로 최종 코테를 준비하였다.

 

최종 코테 준비 🏋️

최종 코테 연습은 매일 하나의 과제를 4시간 안에 푸는 것으로 연습을 하였다.

과제는 각 주차의 4주 차 미션이나 최종 코테 문제를 풀었다.

 

 

그리고 최종 코테 후기를 많이 찾아봤다.

우테코 최종 코테는 다른 코테들과는 조금 다르게 자유로운 분위기에서 진행되었다.

오픈북이고 생성형 AI도 활용 가능하고 시험 중에 헤드셋과 이어폰 사용도 가능했다.

 

그리고 본인의 문서를 참고해도 됐었다.

그래서 자주 사용하는 코드들은 미리 노션에 정리해 두어서 코테때 바로 복붙 해서 사용할 수 있었다.

 

 

 

나도 미리 문서로 최종 코테 때 확인할 체크사항을 작성해 두었다.

 

그리고 코드조각들도 미리 작성해 두었다.

자주 사용하는 테스트코드나 뷰들을 미리 작성해 두었다. 

심지어 리드미도 작성해두었다 ㅎㅎ

시간을 줄일 수 있는 것들은 최대한 미리 준비해 두었다.

그리고 최종 코테 날이 다가왔다..

 

 

최종 코테 당일!

나는 선릉 캠퍼스에 배정되었다.

백엔드는 선릉 캠퍼스이고 프론트랑 안드로이드는 잠실 캠퍼스인 것 같았다.

(백엔드여도 잠실 캠퍼스에 배정된 분이 있는 걸 보면 랜덤인 것 같다)

아무튼 집에서 1시간이면 갈 수 있는 거리여서 여유가 있었다.

 

하지만 당일날 아침에 눈이 겁나 많이 왔다..

아니 지금까지 잘 오지도 않던 눈이 코테 당일날 아침에 엄청 내렸다..

그래서 혹시나 늦을 수 있다는 오후 1시 시험 시작인데, 오전 9시쯤 집에서 나섰다.

(빨리 도착하면 밥 먹고 카페 가있어야지~)

눈이 음청와서 차들이 기어갔다.

우리 집에서 서울직행버스를 탈 수 있는 정거장과 조금 거리가 있어서 버정까지는 부모님이 차로 데려다주셨다.

차로 5분도 안 걸리는 거리인데도 눈이 많이 와서 그런지 기어서 갔다. (빨리 나오길 잘했어!)

 

아무튼 버스를 타고 강남에 도착해서 지하철을 타고 선릉에 도착했다.(그리고 귀신같이 멈추는 눈..)

도착하고 보니까 대충 10시 15분쯤 되었다.. ㅎㅎㅎㅎ

12시부터 입실이 가능하니까 1시간 45분쯤 여유가 있었다.

 

그래서 버거킹에서 대충 끼니를 때우고 스벅에 가서 최종 코테 체크사항들을 살펴보면서 시간을 때웠다.

그리고 11시 50분쯤 카페에 나와서 선릉 캠퍼스로 갔다.

얼핏 보이는 왼손 코치님,,

엘베를 타고 13층에 올라가니까 이미 많은 분들이 도착해 있었다.

(다들 눈 와서 빨리 오신 건가??🤔🤔)

 

줄을 기다리고 있는데 테스트 관련 안내 메일이 도착했다.

메일에는 격려의 말과 미션 레포시토리 링크가 나와 있었다.

그래서 혹시나?라는 생각에 후다닥 눌렸지만

역시 아직 오픈되어 있지 않았다. ㅎㅎ

 

그래도 미션 이름이 oncall이고 크리스마스 미션같이 레포지토리를 통해 제출하는 방식이라는 것을 알았다.

자리를 세팅하고 레포지토리 제출방식을 다시 살펴봐야겠다는 생각을 하면서 줄을 기다리고 있었다.

 

🚨 그리고 발생한 문제,,

그리고 내 차례가 되어서 신분증을 제출해서 본인확인을 받았는데 갑자기 문제가 발생했다.

이름은 있는데 생년월일과 메일, 심지어 전화번호도 다르다는 것이었다..

진짜 이표정이였다.. 너무 당황하니까 오히려 표정이 침착해지더라..

지원하기 페이지 정보와 다르다고 말씀하셨다..

아니 뭐가 문제지?? 

아니 내가 미쳤다고 모든 정보를 잘못 입력했었나??

아니 그럴 리가 없는데??

그러면 지금까지 미션은 어떻게 잘 제출되고 합격까지 나한테 연락온거지??

동명이인이 합격했는데 잘못해서 나한테 메일이 온 건가??

나 시험 못 보나??

 

진짜 3분도 안 되는 시간 동안 5만 가지 생각이 들었다.

그러다가 코치분 말씀대로 전화번호 정보를 다시 적고 일단 시험장에 들어갔다.

 

이미 나가버린 멘탈을 붙잡고 자리를 잡고 일단 세팅을 했다.

그리고 바로 지원하기 페이지에 들어가서 내 정보를 확인해 봤다.

모든 정보가 잘 적혀 있었다.. 

뭐지?? 하면서 곰곰이 생각하다가 내 정보는 잘 적혀있으니까 내 잘못 아니겠지~ 하면서 그냥 편하게 생각했다.

(빠르게 멘탈을 잡으려고 했다.. ㅎㅎ)

 

그리고 주변을 돌아다니면서 사진을 찍었다. 

 

그리고 인터넷을 세팅하려고 하는데 인터넷 연결이 안 됐었다.

서버상 문제가 발생한 듯하였다. 나뿐만 아니라 모두 인터넷 연결이 안 됐다.

그래서 결국  모두 인터넷 연결을 마치고 1시 30분부터 시험이 시작되었다.

 

코테 시작!

 

미션은 개발자 비상근무였다.

https://github.com/woowacourse-precourse/java-oncall-6

 

GitHub - woowacourse-precourse/java-oncall-6

Contribute to woowacourse-precourse/java-oncall-6 development by creating an account on GitHub.

github.com

 

 

그동안 최종 코테 미션을 연습해 보면서 중요한 것은 설계라는 것을 깨달았다.

설계를 잘못하면 결국 다시 코드를 처음부터 작성해야하는 경우가 종종 발생했었다.

 

그래서 우선 요구사항들을 살펴보면서 어떤 요구사항이 있고 어떤 식으로 설계할지에 대해서 집중해서 고민했었다.

최대 1시간 까지는 설계 방식을 고민해도 된다는 생각을 가지고 기능 요구사항들을 작성하고 핵심 기능부터 작성에 들어갔다.

 

이번 미션에서 가장 어려운 부분은 위 요구사항이었다.

다른 기능들은 문제없이 작성했는데 이 부분에서 시간을 많이 잡아먹었다.

 

맨 처음에 요구사항을 잘못 판단하여서 문제가 발생했었다.🥲

어떤 부분에서 문제가 있었는지 궁금한 분들은 더보기를 눌러보시길..

더보기

미션 요구사항에는 2일 연속 근무할 경우 바로 뒤 근무자와 서로 교대를 바꿔줘야 했었다.

그래서 어떻게 구현할지 고민했었다.

 

나는 일단은 근무자 표를 중복 상관하지 않고 작성해 주었다.

 

평일 순번 : 준팍,도밥,고니,수아..

휴일 순번 : 수아, 루루,...

 

일 때,

 

월요일 : 준팍

화요일 : 도밥

수요일 : 고니

목요일 : 수아

금요일(휴일) : 수아

토요일 : 루루

 

위와 같이 우선 근무자 표를 작성하였다.

그리고 근무자 리스트를 순회하면서 2일 연속 근무하는 경우 바로 뒤에 있는 근무자와 서로 교체해 주는 방식을 선택했다.

 

월요일 : 준팍

화요일 : 도밥

수요일 : 고니

목요일 : 수아

금요일(휴일) : 루루

토요일 : 수아

(수아가 2일 연속 근무하니까 바로 뒤 근무자인 루루와 교체해준다.)

 

뭐야 이러면 간단하네?? 왜 어렵게 고민했었지?? 하고 생각하면서 나머지 기능을 구현했고

ApplicationTest를 돌려보면서 테스트가 통과하는 것까지 확인했다.

 

하하 이제 리팩토링 해야지~ 하고 생각하고 있었다.

그러다 문뜩 생각해 보니까 만약 휴일 근무자 뒤에 평일 근무자이면 어떻게 되지??라는 생각이 들었다.

예를 들어서

 

평일 순번 : 준팍,도밥,루루,수아,글로,..

휴일 순번 : 민아,루루,글로,...

 

일요일 : 민아

월요일 : 준팍

화요일 : 도밥

수요일 : 루루

목요일(휴일) : 루루

금요일 : 수아

토요일 : 글로

 

와 같이 되어 있고, 바로 뒤 근무자와 교체하게 된다면

 

일요일 : 민아

월요일 : 준팍

화요일 : 도밥

수요일 : 루루

목요일(휴일) : 수아

금요일 : 루루

토요일 : 고니

 

가 될 것이다.. 이는 틀린 경우다.

왜냐하면 휴일 순번은 다음 휴일 순번과 교체되어야 하기 때문이다. (평일도 마찬가지)

이렇게 되면 평일 순번 근무자(수아)가 휴일에 근무하게 된다.

 

휴일 근무자는 바로 뒤 휴일 근무자와 교체되어야 한다. 

따라서 위의 경우에는 목요일에는 루루 다음 휴일 순번인 글로와 교체되어야 한다.

 

일요일 : 민아

월요일 : 준팍

화요일 : 도밥

수요일 : 루루

목요일(휴일) : 글로

금요일 : 수아

토요일 : 루루

 

와 같이 바꿔주는 게 맞는 답이었다.

 

아무튼 잘못된 부분을 수정하는데 시간이 더 걸렸다. 

 

또한 날짜를 다루는 것도 여간 까다로운 것이 아니었다.

매달 마지막 날이 다르기 때문에 이를 확인해 주는 메서드가 필요했었다.

(심지어 2월은 28일에 끝난다 ㅎㅎ 다행히 윤년은 없었다,,😮‍💨)

 

점점 코드가 복잡해지면서 리팩토링에 대한 욕심도 생겼지만

일단 돌아가는 쓰레기를 만들자는 생각에 기능부터 구현했다.

 

아무튼 모든 기능을 구현하고 시간을 체크해 보니까 정확히 4시였다.

6시 반에 끝나니까 대충 2시간 반의 시간이 남았었다.

 

뭐야.. 나 왜 이리 빨리 구현했지?? 

최종 코테 연습을 4시간으로 연습했어서 그런가??

코드 조각들을 활용해서 그런가?? 

 

아무튼 시간의 여유가 있어서 리팩토링도 하고 리드미를 다시 살펴보면서 놓친 부분이 있나 확인했다.

그리고 역시나 놓친 요구사항이 있었다. ㅎㅎ

빠진 요구사항들을 구현하고 테스트코드까지 구현했다.

(사실 구현하지 않은 요구사항이 하나 더 있었는데 시험 끝나고 알게 되었다..)

 

🚨 그리고 다시 발생한 문제 

그래서 일단 제출하려고 소감문까지 작성하여서 제출하기 페이지에 들어갔는데 로그인이 안 됐다..

뭐야 지원하기 페이지에 왜 안 들어가지지??

나만 그런가??

하면서 또 멘탈이 나가려고 했는데

왼손 코치님이 지금 지원하기 페이지가 안 들어가 진다고 조치 중이라고 안내해 주셨다.

(휴,, 내 컴퓨터 문제가 아니군)

 

마침 이번 최종 코테에서는 특이하게 미션 해결 전략을 작성해야 했어서 그 부분을 작성하면서 지원하기 페이지가 고쳐지길 기다렸다.

해결 전략을 작성하고, 마지막으로 놓친 부분이 있나 확인하고, 소감문과 설문 조사까지 마치니까 시간은 6시 25분이었다. 

다행히 시험 종료 전에 페이지가 고쳐져서 미션을 무사히 제출할 수 있었다.

 

그러나 시험 끝나고 알았는데 요구사항을 놓친 부분이 하나 있었다..

평일이면서 공휴일일 경우에만 "(휴일)" 을 표시했어야 했는데 나는 공휴일이면 "(휴일)" 이 표시되도록 구현했다..

(주말이면서 공휴일인 경우에도 "(휴일)" 표시가 되도록 구현한 것이다..)

 

요구사항을 그렇게 여러 번 살펴봤는데도 왜 이 부분을 보지 못했었는지.. ㅠㅠㅠㅠ

 

 

드디어 끝난 코테.. 그리고 회고

엘베 타기전에 마지막으로 찍은 사진

그렇게 나름 사건사고가 많았던 최종 코테가 마무리되었다.

 

결론적으로 나는 결국 요구사항 하나를 제대로 구현하지 못했다.(그래도 테스트는 통과되었다.)

심지어 제출하기 전에 놓친 요구사항이 있는지 확인하기 위해 문서도 여러번 다시 살펴보았었다.

그런데도 나는 놓친 부분을 찾지 못했었다.

 

왜 요구사항을 놓쳤을까??..

내 생각에는 마음이 너무 급한 것이 화근이 된 것 같다.

시간적 여유가 있는데도 나는 항상 마음이 조급하다.

 

그래서 하나하나씩 곱씹어보면서 살펴보았다면 분명히 찾을 수 있는 요구사항인데도

마음이 급하다 보니 대충대충 넘겨보면서 놓친 것 같다..😭😭

 

타산지석 삼아서 앞으로는 마음의 여유를 가지는 연습을 해야할 것 같다.

 

 

요구사항을 하나 놓친 것은 당연히 아쉽다.

하지만 어쩌겠나,, 내가 할 수 있는 노력은 여기까지이다.

이제는 기도하는 것 말고는 할 수 있는 게 없다.

 

여기까지 온 것만으로도 열심히 했다고 생각한다.

하지만 내가 원하는 것은 최종 합격이다.

 

다시는 요구사항 안놓칠게요,, 제발 붙여주세요!!! 🙏🙏🙏🙏🙏🙏🙏🙏🙏

 

다음 포스팅은 최종 결과가 함께 돌아오겠다..

profile

조종 다음은 개발

@타칸

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!