안녕하세요! 2023년에 우아한테크코스 5기 백엔드로 합류하게 되었습니다.
약 3개월 정도의 선발과정 동안 제가 느꼈던 점들, 진행해왔던 방식을 모두 적어보려 합니다.
혹시 지원하고자 하는 분이 계시다면 도움이 되었으면 합니다 :)
단, 여기서 이야기하는 내용이 우테코를 합격하기 위한 전략은 아니며, 단순히 한 사람의 합격 스토리로 봐주시면 감사하겠습니다.
저는 몇 달 전까지만 해도 개발자가 뭘 하는지도 잘 몰랐습니다.
그냥 기술력만 뛰어나면 좋은 개발자라고 생각했습니다.
그래서 학교 수업만 열심히 들었습니다.
실질적인 프로젝트 경험도 얼마 안됩니다.
그렇다고 완성한 프로젝트들도 '잘했냐'라고 물어본다면 '그렇다'라고 대답하기 어렵습니다.
깃허브도 잘 사용하지 않았었습니다.
이런 제가 우아한테크코스에 합격할 수 있었던 이야기를 풀어내고자 합니다.
단, 자소서에 관한 내용은 제외하겠습니다. 각자의 스토리가 다르고 풀어내는 방식마저도 다르니까요.
프리코스
저는 자바를 잘 몰랐습니다.
잘 모르는게 아니라 아예 써본적이 없었습니다. 프리코스 시작 불과 3일 전까지만해도요.
프리코스 시작 3일 전부터 자바의 정석을 구매해 클래스, 상속 등과 같은 기초적인 내용을 익혔습니다.
그렇기에 프리코스가 시작되니 어려움이 많았습니다.
프리코스는 단순히 자바로 문제를 푸는 것에서 그치는게 아니라, 다양한 제약조건 및 요구사항을 지켜야 합니다.
사실 이 부분이 가장 어렵습니다. 메소드 라인 제한, 들여쓰기 제한, 코드 컨벤션 등 지켜야 할 게 너무 많습니다.
자바도 잘 모르는데, 제약조건 및 요구사항을 지키려 하니 정말 힘들었습니다.
하지만 결론부터 말씀드리면 4주동안 진행된 미션 4개 및 최종 코딩테스트까지 모두 통과했는데요, 제 나름대로의 방식은 이러했습니다.
1. 커뮤니티 적극 활용하기
프리코스에 참여하게 되면 지원자들을 위한 커뮤니티가 제공되는데요, 저는 커뮤니티를 적극 활용했습니다.
다른 사람들이 뛰어난 실력을 갖고 있다면, 그 분들의 코드에서 배울점을 찾으려 노력했습니다.
물론 이 과정에서 상실감이 들기도 합니다. '나는 이정도인데 저분들은 이정도네' 처럼요.
하지만 그렇다고 해서 멈춰버리면 성장은 거기서 끝입니다. 남의 지식을 흡수하는 것이 중요하다고 생각해요.
저는 그래서 4주 간의 프리코스에서 피어 리뷰를 약 15건 정도 주고받았고, 이 과정을 통해 더욱 빠르게 성장할 수 있었습니다.
그리고 다른 지원자들에게도 제 활동이 성장하는 데에 도움이 되었으리라 확신하고 있습니다.
저는 커뮤니티를 적극 사용해서 3배는 빠르게 성장했다고 자신합니다!
'모르는 게 무엇인지 모르는 상황'에서 벗어나기가 쉽더라구요.
2. 나만의 방식 찾기
저는 프리코스를 통해 객체지향의 개념을 처음 제대로 접했는데요,
프리코스 기간 중 읽었던 책도 하나 있습니다. '객체지향의 사실과 오해'라는 책입니다.
'어떻게하면 객체 설계를 잘 할 수 있을까' 고민하던 찰나에 읽게 되었고
'객체지향은 메세지가 중요하다' 라는 내용을 알게 되었습니다.
그래서 그 다음주차 미션부터 설계할 때, 객체 다이어그램이 아닌 메세지 다이어그램을 구성했습니다.
사실 메세지 다이어그램이라는 말은 없고, 제가 만들어낸 말인데 대충 아래와 같은 형태입니다.
저는 이 방식을 4주차 미션까지 썼고, 자신만의 방식을 찾아내니 보다 객체지향에 대해 이해하기 비교적 수월해졌습니다.
남의 지식을 흡수하는 것도 중요하지만, 그 속에서 자신의 스타일을 잃지 않는 것 또한 중요하다고 생각해요.
3. 자신만의 제약조건 정의하기
프리코스를 진행하다보면 다양한 제약조건들을 마주하게 됩니다.
조금 적응이 되면 메소드 라인 제한 등은 비교적 수월하게 지키게 됩니다.
저는 제약조건을 지키는 것 뿐만 아니라, 저만의 제약조건을 정의했습니다.
프리코스를 진행하면서 아래와 같은 제약조건도 있었습니다.
'indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.'
하지만 저는 4주차 미션에 접어들어서는 대부분의 코드의 depth를 1로 만들었습니다.
이처럼 주어진 조건에 상주하지 않고, 본인 스스로 모래주머니를 채우게 되면 더욱 빠르게 성장하게 된다고 느꼈습니다.
정답은 없다고 생각하지만, 저는 이런 방식으로 프리코스를 진행했습니다.
각 주차별 세부적인 학습 방법이 궁금하시다면 제가 작성한 회고들을 한번 보시는 것을 추천드릴게요.
최종 코딩테스트
사실 최종 코딩테스트는 딱히 팁을 드릴만한게 없습니다.
열심히 해 오셨다면 최종 코딩테스트는 큰 어려움이 아니라고 생각합니다.
그렇다고 해서 제가 최종 코딩테스트를 만족스럽게 잘 구현한 것은 아니지만,
적어도 제한시간 내 제가 프리코스 기간 중 학습했던 것들을 잘 녹여냈다고는 생각합니다.
하지만 아무리 본인을 믿더라도, 5시간 안에 구현하는 것은 의식적인 연습이 필요하다고 생각합니다.
따라서 저는 최종 코딩테스트를 보기 전에 이전 기수 문제들을 시간 제한을 두고 한번씩 전부 풀어보았습니다.
한번쯤은 풀어보시는 것을 추천드려요. 그래야 최종 코딩테스트에서 부담이 덜합니다.
마치며
이 글을 보시는 분들은 우아한테크코스에 지원했거나 지원하려고 하는 분들이라고 예상됩니다.
글을 쓰고보니 '선발 요령'보다는 '성장하는 방법'에 대해 작성하게 된 것 같은데요,
저는 단기간에 꾸준히 빠른 성장을 이뤄낸 것이 제가 선발된 주요 이유라고 생각하고 있습니다.
본과정에 가서도 꾸준히 성장할 수 있는 사람임을 프리코스 및 최종 코딩테스트에서 증명하시면 좋을 것 같습니다.
아래는 제 깃허브입니다. 코드나 활동이 궁금하신 분들은 참고하셔도 좋을 것 같아요.
(그리고 혹시 궁금한 점 있으시면 댓글 남겨주세요! 바로 답변하겠습니다)
https://github.com/woosung1223
'우테코 5기' 카테고리의 다른 글
[레벨 1 강의] TDD, 리팩터링, 자바에 대한 이해 (0) | 2023.02.18 |
---|---|
[레벨1 강의] 단위 테스트, 코드 품질 (0) | 2023.02.10 |
[우테코] 우아한 테크코스 5기 1차 합격 + 최종 합격 (1) | 2022.12.15 |
[우테코 프리코스] 4주차 회고 (1) | 2022.11.24 |
[우테코 프리코스] 3주차 회고 (0) | 2022.11.16 |