우아한테크코스 6기 서류, 최종 합격 후기

초코칩·2023년 12월 27일
6

후기

목록 보기
6/6
post-thumbnail

지원

친한 지인이 우아한테크코스에 지원하는 것을 보고, 나도 이번 6기에 지원하게 되었다.

지원서

지원서 쓰기 전에 어떤 항목들을 작성해야 어필이 될까?에 대해 고민을 많이 했던 것 같다. 최종적으로 서류 작성에서 내린 결론은 여러 대외활동을 했음에도 왜 우테코가 필요할까?를 어필하는 것이 중요하다고 내렸다.

1. 효과적인 학습 방식과 경험

여러 대외활동을 했었기 때문에, 우아한테크코스가 왜 필요한지를 간접적으로 어필했다.

  • 전공자이지만 우아한테크코스 필요한 이유
  • 독학으로 프로그래밍 공부한 경험
  • 모르는 개념 접근 방법

2. 성장 중 겪은 실패와 극복

가장 어려웠던 답변이다. 이미 다이어트 소재를 3번에 써버렸기에 다른 소재를 찾느라 오래 걸렸다. 극복을 잘한 경험보다는 현재도 극복중이고, 극복하기 위한 노력이 제일 잘 보이는 소재로 골라 작성했다.

  • ICPC 대회 참여와 실패
  • 소통의 중요성
  • 멘토링의 경험

3. 오랜 시간 몰입했던 경험 그리고 도전

내게 가장 강력한 무기이자, 관련된 경험을 쓸 수 있어서 오히려 쉬웠던 답변이었다.

  • 다이어트 경험

4. 원하는 프로그래머 모습

내가 왜 개발을 시작했는지를 작성했다. 아무래도 개발자 가치관을 작성하는 칸이라 생각하여, 그와 관련하여 작성했다.

증빙 자료

증빙 자료는 링크로 제출하다보니, 여기서도 많은 어필이 될 수 있을거라 판단했다.

작성은 노션으로 했고, 양이 많아서 최대한 직관적으로 확인할 수 있게 작성했다.

프리코스

1주차

정말 순수하게 구현만 했다.

디스코드 토론 탭의 Predicate<>와 같은 문법들을 보면서, 스스로 자바에 대한 이해도가 부족하여 더 공부를 해야겠다고 느꼈다.

https://github.com/Chocochip101/java-baseball-6

2주차

2주차에서는 리팩토링에 대한 고민을 했다. 구현과 테스트를 동시에 진행하는 것이 맞는지에 대한 고민을 했다.

일급 컬랙션에 대한 개념도 적용하면서, 도메인 패키지를 생성하여 객체가 생성 시점에서 검증할 수 있는 validate() 메서드를 도입했다.

https://github.com/Chocochip101/java-racingcar-6

3주차

용이한 개발을 위해 객체를 설계하고 그들간의 협력 관계를 정리했다. 이를 통해 각 객체가 간결하게 역할을 수행하고 다양한 제약 사항을 준수하도록 노력했다. 이를 통해 객체 지향 프로그래밍의 원칙에 대해 더 공부할 수 있었다.

살아있는 기능목록이라는 용어가 인상 깊었다. 1,2주차에서 완벽함을 추구하려는 심리 때문에 기능 목록을 한 번에 완성하고 기능을 구현하려는 느낌이 없지 않아 있었다. 그러다보니 개발 전에 기능 목록을 끊이 없이 검증하려는 것 때문에 개발이 약간 늦어지기도 했다. 기능 목록의 수정은 당연하다는 피드백을 통해 부담을 내려놓고 작성할 수 있었다. 그에 따라 더 요구사항에 집중할 수 있었다.

https://github.com/Chocochip101/java-lotto-6

4주차

새로운 제출 방식과 새로운 문제가 등장했다. 문제가 신선해서 재밌게 풀었었다. 한정된 기한 내에서 여러 제약 사항을 고려해야 했고, 기간 내에 완성하기 위해 우선 기능 구현에 먼저 초점을 맞췄다.

먼저 메뉴와 관련되어 어떻게 구현할지 고민하던 중, 리스코프 치환 원칙을 고려하여 인터페이스를 정의하고 구현했다. Menus 인터페이스와 이를 구현한 Gift와 Drink 클래스를 활용하여 샴페인 가격을 유용하게 계산할 수 있었다.

여려 Discount 클래스를 구현하면 많아져 관리하기 어려웠다. 이를 개선하기 위해 discount의 모든 정보(크리스마스 디데이 할인, 평일 할인, 주말 할인, 특별 할인)를 따로 관리하는 것이 적합한지 고민했다. 최종적으로는 인터페이스로 관리하는 것이 가독성과 관리 용이성을 높일 수 있다고 판단하여 구현했다.

2023년 12월은 고정된 값이지만, 소프트웨어의 특성상 재사용성을 높이기 위해 최대한 변수 처리했다. 예를 들어, 2023년과 12월을 상수로 정의하여 다른 연도와 월에도 유연하게 대응할 수 있도록 설계했다. 결국 구현과정에서 2023년과 12월에 종속적이게 되었고, 년도와 월을 바꾸면 코드를 바꿔야했다. 이를 완전히 독립적으로 운영할 수 없게 한 것의 아쉬움이 여전히 남아있다.

이번 미션을 통해 다양한 제약 사항을 고려하면서도 객체 지향 프로그래밍의 원칙을 준수하는 방법에 대해 더욱 공부할 수 있었다. 이를 공부했을 때는 코드 몇 줄 보는 것으로만 그쳤기에 적재적소에 적용하기도 어려울뿐더러, 금방 잊게 되는것 같았다. 하지만 직접 코드에 적용하다보니 직관적으로 이해가 더 잘되고 기억에 많이 남았다.

https://github.com/Chocochip101/java-christmas-6-Chocochip101

특히 할인(Discount)에 인터페이스를 적용한 부분은 내가 봐도 코드가 섹시했다.

최종 코딩 테스트

최종 코딩 테스트를 볼 수 있는 기회를 얻었다! 기말고사와 취업 준비가 겹쳐 1차 합격 전까지는 준비를 하지 않았다.

1차 합격 후에 발등에 불이 떨어지듯 준비했다. 21,22년도에 최종 코딩 테스트도 4주차 프리코스 문제보다는 어렵지 않다고 해서 이번 프리코스들의 문제들을 위주로 복습하면서 준비했다.

문제

문제는 개발자 비상근무였다. 예상은 했지만 제출 방식은 4주차 프리코스와 마찬가지로 해당 repository의 템플릿을 사용하여 main 브랜치에 커밋하는 방식이였다.

문제가 4주차보다는 쉬웠지만, 5시간 안에 풀고 리팩토링하기에 어려웠던 문제였던 것 같다.

구현, 테스트까지 작성하고 제출했다.

https://github.com/Chocochip101/java-oncall-6-Chocochip101

반성 아닌, 반성

최종 코딩 테스트가 끝나고, 디스코드에서 여려 명의 회고록을 보았다. 회고록을 보면서 나의 준비가 남들보다 부족했다는 것을 느꼈다.

  • 만능틀, Quick 문서, 제작: 블로그들에서 시간을 줄이기 위한 방법들을 봤다. 실제 시험장에서 여러 사람들이 유용하게 쓴 것도 봤었다.

만능틀, Quick 문서가 궁금하면? Click

  • TODO 리스트 작성: 시험 시작 1시간 전에 TODO 리스트를 작성했다. contributor를 초대하는 방식으로 바뀌었기에, 초대하지 않으면 자동 불합격이다. 혹시 잊을까봐 급하게 TODO 리스트를 작성했다.

나도 준비를 안한 것은 아니지만, 최종 코딩 테스트 준비를 남들만큼 간절하게 준비했나?라는 답변에 당당하게 당연하지라고는 못하겠다.

결과

운이 좋게도 합격 메일을 받았다.

합격이라는 좋은 결과를 받아서 다행이다. 준비 과정에서 코드 리뷰하면서 배운 것들도 많으니 2월까지 이것들을 체화하면서 준비해야겠다.

profile
초코칩처럼 달콤한 코드를 짜자

2개의 댓글

comment-user-thumbnail
2024년 1월 4일

초코칩님 합격을 축하드립니다~
앞으로 초코칩님의 앞날을 응원합니다!

1개의 답글