- 특정언어(java)의 특정 코드 컨벤션(naver-hackday)을 지키는가
- 3항 연산자를 쓰지 않는가
- indent depth가 2이하인가
- 하나의 함수가 한 가지 일만 하도록 하였는가
- 상수를 하드코딩 하진 않았는가
- style check 적용 하였는가
- gradlew.bat clean test의 모든 테스트가 통과하는가
- 함수(또는 메소드)의 길이가 15라인을 넘어가지 않도록 구현한다.
- else 예약어를 쓰지 않는다
- 기능 목록을 업데이트하고 재검토 한다
- 기능 목록에 예외상황도 기록한다.
- Class 구현순서( 상수->멤버 변수->생성자->메서드) 지키기
- 일급컬랙션 및 단일변수도 포장한다.
- 한 클래스내 변수를 줄이려고 노력한다.
- 🌕 우테코 : 우아한테크코스는 배달의민족을 개발한, 우아한 형제들 회사에서 운영하는 부트캠프이다.
- 1차 코딩테스트(구현 7problems)는 내 주력언어인 python으로 응시가 가능하지만, 3주간 미션을 수행하는 데 있어 java만 사용해야한다.
- 1차 코딩테스트 + 자소서 합격한 인원들만 3주간의 프리코스를 경험할 수 있으며, 프리코스 이후에는 최종 코딩테스트(java console app development)를 치른다.
- 2021년말 , 우테코 4기 일정이다. 상당한 기간이 소요되므로 끈기있게 임할 필요가 있다.
- 서류지원(자소서 제출): 2021.10.22 ~ 2021.11.03
- 자소서 비중이 크다고 알려짐
- 1차 온라인 코딩 테스트: 21.11.06 12:00 ~ 16:00 (4시간, 7문제)
- 6문제 이상 맞춰야 합격선
No | 난이도 | 문제 요약 |
---|---|---|
1 | 브론즈 3~4 | hashmap(python-dictionary) |
2 | 브론즈 2~3 | 문자열, 시간 변환 |
3 | 실버 4~5 | hashmap 심화, 메뉴별 재료비 + 매출 계산 등 |
4 | 실버 3~5 | deque, 순환하는 배열 |
5 | 실버 1~4 | 격자 속에서 반복되는 숫자들 |
6 | 실버 3~5 | 문자열, 시간 변환 심화 |
7 | 실버 1~3 | 삼각수 + 규칙 찾기 |
- 2021.11.24 ~ 2021.12.14
지원할 때 참고했던 글을 통해 확인할 수 있듯이 우아한테크코스 교육과정은 강의식으로 진행하는 주입식 교육이 아닙니다. 여러분이 해결해야 할 미션을 부여하고, 미션을 구현한 후 피드백을 받는 방식으로 진행합니다. 이 교육 방식이 기존의 교육방식과 완전히 다르기 때문에 프리코스는 본 과정을 미리 경험해 보는 단계입니다.
3주 동안 공통 피드백만 있는 상태에서 여러분 주도적으로 학습하고, 미션을 진행하고, github을 통해 구현한 결과물을 제출해야 합니다.
이 과정을 통해 지원자는 우아한테크코스 과정을 미리 경험해 보면서 교육의 참여 여부를 결정할 수 있고, 저희는 우아한테크코스 과정을 소화하는데 어려움이 없는지 판단할 수 있는 기간이 될 수 있을 것 같아요.
서로가 같이할 수 있는지를 탐색할 수 있는 시간이라고 생각하면 됩니다.
Week | Mission | Repository | PR | Period | Note |
---|---|---|---|---|---|
1 | 숫자 야구 게임 | java-baseball-precourse | PR | 2021.11.24 ~ 2021.11.30 | 1주차 미션 |
2 | 자동차 경주 게임 | java-racingcar-precourse | PR | 2021.12.01 ~ 2021.12.07 | 2주차 미션 |
블랙잭 미션 | java-blackjack-precourse | - | - | 이전 기수 프리코스 미션 | |
치킨 POS 미션 | java-chicken | - | - | 이전 기수 프리코스 미션 | |
지하철 노선도 경로 조회 미션 | java-subway-path-precourse | - | - | 이전 기수 프리코스 미션 | |
3 | 자판기 구현 | java-vendingmachine-precourse | PR | 2021.12.08 ~ 2021.12.14 | 3주차 미션 |
최종 | 페어 매칭 프로그램 | java-pairmatching-precourse | PR | 2021.12.18 | 최종 코딩테스트 |
- [1주차] 원시변수만 사용했지만, 추가학습과 함께 java와 IDE(intellij)에 대한 숙련도를 높였습니다
- [2주차] 기능 구현 목록을 지속 업데이트하며, 요구사항 체크리스트를 통해 기준을 가진 예비개발자가 되었습니다.
- [3주차] MVC 패턴 및 모든 원시타입을 래핑 + 일급컬렉션을 사용할 수 있는 예비개발자가 되었습니다.
주차별 추가 학습 내용
▶ 미션 회고
- git & java convention에 따른 코드 작성으로 협업의 기초를 익힐 수 있었다.
- 3주간 객체 지향에 대한 정수를 느낄 수 있었다.
- intellij를 사용하였지만, jetbrain발의 ide을 이용하여 객체지향적 프로그래밍을 편하게 할 수 있게 되었다.
- 일급객체, 래핑변수 등 변수 포장을 통한 프로그래밍이 먼지 알 수 있었다.
- java로만 진행하여 숙련도가 떨어져서 최종 테스트는 생각한 바를 다 구현하지 못하여 아쉬웠다.
▶ 최종 합격 회고
- 미션마다 fork -> clone -> 기능별 commit -> PR 제출을 충분히 익혔음에도 너무 긴장해서 그런지 fork 없이 clone후 과제를 작성하고 있었다.
- 덕분에 커밋 1/3 이상을 날려먹고, 제출 30분 전부터 코드와 커밋만 옮기다가 끝났다.(최종 탈락을 예상했었음)
- 핵심기능 중 일부를 구현 못했다. 예상 문제(입출력)가 적중 했음에도 불구하고 java가 익숙치 않았기 때문이다.
- 전 기수들의 후기나 캡틴 포비의 안내영상을 보면 다 완성하려 하지말고 일부 기능별로 완성후 커밋을 하라고 했다. 그래서 작은 기능단위로 구현했고, 한 문제씩 해결해나가다보니 다 완성하지 못해도 유기적인 코드가 최종 제출됨.
- java를 거의 사용안해 본 입장에서, 5시간안에 TDD형식으로 코드 작성을 불가능함. -> 테스트는 제출 30분전부터 돌려보기로 결정함.
- 하지만, fork없이 clone한 덕분에 커밋을 옮기느라 테스트 코드 확인 못함 -> 1/2만 통과하는 것을 최종 제출 이후 확인함.
- 최종 탈락 될 것이라고 강력하게 예상했었음. 그러나 시험이 끝나고 몇일이 지나도 단톡방은 조용하고 후기는 안올라와서.. 나뿐만 아니라 테스트 코드 통과 못한 사람들이 많음을 직감함. (그만큼 5시간내 모두 완성시키기엔 무리였던 과제가 아니였을까)
- 과정은 서툴렀지만, 핵심기능이자 고난이도 기능 2개를 제외하고 구현했으며, 기능구현 목록이 작성 과정(커밋)들은 1/3이상 날라갔지만, 최종적으로는
구현한 기록목록 작성완료
, 일부 기능 제외실행되는 어플리케이션
은 완성된 상태로 제출되었다. - 나는 java에 익숙하지 않은 상태지만 20:1을 뚫고 우테코 4기 백엔드 과정에 최종합격하였다.
- 어차피 원래 잘하는 사람들은 대부분의 자리를 가져갈 것이며, 테스트 코드를 통과한 사람들 < 합격 정원이라면, 내 자리는 한자리 정도 있을 것이라 예상했던 것 같다.
- 3주간 java 코드를 참고하던 지원자 중 중수 1명은 탈락, 고수 1명은 합격함을 확인했다. 중수 선생님의 불합격이 안타까웠다.
- 내가 합격할 수 있었던 것은 추가학습으로 java입출력 코드를 미리 짜놓은 것 + 작은 기능단위로 구현 연습 했던 것이 가장 큰 요인이라고 생각한다.
- 그외 3주간 미션 수행 + 추가 학습과정을 잘 정리해서 제출했던 것 + 자소서를 재검토 한 것 + 1차 코테를 python이지만 거의 다 푼 것 -> 종합평가에서 높게 평가되었을 가능성이 높다고 생각한다.