여타 기업 공채 지원서를 작성하듯이, 한 번 지원해보자라는 가벼운 마음으로 우테코 6기 지원서를 작성해나갔다.
지원서를 작성하다보니 가벼운 마음은 사라졌고, 점점 몰입해서 작성하면서 꼬박 며칠을 몰두해서 썼던 것 같다.
우아한테크코스 6기에 지원서를 제출하고 약 3일 뒤부터 프리코스가 시작되었다.
10월 19일부터 11월 15일까지 총 4주간의 프리코스 일정을 경험하면서 배운 것들을 기록해보며 다시 한 번 되새겨보려 한다.
각 주차마다 미션이 주어지고, 해당 미션의 요구사항들을 지키면서 개발을 진행하면 된다.
먼저, 미션의 요구사항을 이해하고 필요한 기능들을 스스로 정의해야 한다. 이 기능 목록을 작성하는 것이 매 미션마다 새로웠고 쉽지 않았다.
하지만, 주차가 지나갈수록 기능 목록 작성에 대해 나만의 팁이 생겼고, 4주차 미션의 기능 목록을 작성하는 데에 들인 시간이 모든 미션 통틀어서 제일 적었다.
미션 README.md 파일에 해당 미션의 설명과 요구사항들이 주어진다.
여기에는 해당 애플리케이션이 특정 상황에서 실행되었을 때의 출력문도 함께 주어진다.
나만의 팁이라면 이 출력문의 처음부터 기능을 정의해나가는 것이다. 즉, 출력문을 보고 기능 목록을 정리했다.
위 사진은 4주차 미션의 실행 출력 결과이고, 팁을 적용해보면 다음처럼 기능을 정의해나갈 수 있다.
1. 인사 멘트 출력 기능
2. 방문 날짜 입력을 요구하는 문구 출력 기능
3. 사용자의 방문 날짜 입력 기능
4. 주문 메뉴와 개수 입력을 요구하는 문구 출력 기능
5. 사용자의 주문 메뉴와 개수 입력 기능
...
1주차 미션을 수행하면서 기능 목록을 정의할 때는 여러 기능들이 필요하겠다는 건 알지만, 그 기능들을 구체화해서 정리하기가 쉽지 않았다.
이렇게 출력문을 보고 기능들을 순서대로 정리하다보니, 나중에 관련있는 기능들을 묶거나 할때도 수월했던 것 같다.
물론 사람마다 관점은 다르기에 멘트를 출력하는 것도 기능으로 쳐야하나라는 생각도 들겠지만, 적어도 나는 이렇게 하는 게 편하고 쉬웠다. (나중에 우테코 프리코스를 하신다면, 한 번 적용해보셔도 좋을 것 같다는 생각입니다)
주차별로 개인적으로 고민하고 학습했던 키워드들을 정리해보았다.
1주차 미션 - 숫자 야구
해당 PR : https://github.com/woowacourse-precourse/java-baseball-6/pull/1771
- 개발환경 세팅 (Mac, Java 17)
- Java 작동 원리
- Java 17 변경 사항
- Java Code Style
(https://google.github.io/styleguide/javaguide.html)
- Git Commit Convention
- 좋은 분기문(if) 작성
- Java 변수, 메서드 네이밍
(https://tecoble.techcourse.co.kr/post/2020-04-24-variable_naming/)
(https://tecoble.techcourse.co.kr/post/2020-04-26-Method-Naming/)
- 정적 팩토리 메서드
- getter 메서드 사용
(https://tecoble.techcourse.co.kr/post/2020-04-28-ask-instead-of-getter/)
- private 메서드 테스트
(https://mangkyu.tistory.com/235)
2주차 미션 - 자동차 경주
해당 PR : https://github.com/woowacourse-precourse/java-racingcar-6/pull/223
- 생성자에 해당 객체 생성에 대한 유효성을 검증하는 것이 좋은 방법인가?
- 단위 테스트 vs 통합 테스트 vs 인수 테스트
(https://tecoble.techcourse.co.kr/post/2021-05-25-unit-test-vs-integration-test-vs-acceptance-test/)
- 테스트 메서드 명을 한글로 적으면 에러 발생
- @Nested 사용하여 관련 있는 테스트 메서드 묶기
- private 메서드에 대해 테스트를 지양해야 하는가?
(https://mangkyu.tistory.com/235)
- 가독성 측면에서 정규표현식은 좋은 방법인가?
- 인터페이스 vs 추상클래스
3주차 미션 - 로또
해당 PR : https://github.com/woowacourse-precourse/java-lotto-6/pull/407
- 객체, 함수 분리(역할 분리)
- 단위 테스트 작성
- List.of()로 생성한 리스트는 불변이기에, 정렬이 불가
- 정적 팩토리 메서드 사용과 그 이유
- VO 객체에 대한 equals(), hashcode() 메서드 재정의 필요성 - 동등성 보장
- static 메서드의 필요성
- 싱글톤 객체인 Enum class 사용하기
4주차 미션 - 크리스마스 프로모션
해당 레포 : https://github.com/bangjaeyoung/java-christmas-6-bangjaeyoung
- 해당 애플리케이션의 핵심 기능을 한 문장으로 정의해보기
- equals(), hashcode() 메서드 재정의
- 각 메서드에 대한 접근제어자 고민
- 비즈니스적인 고민(e.g. 증정 이벤트에 대한 고민)
- EnumMap 사용 이유와 장점
- Map 컬렉션의 테스트 방법
총 4주차의 미션을 진행하면서 각 주차마다 소감문을 작성했었다.
프리코스가 끝난 지금, 주차마다의 작성했던 소감문들을 다시 보니 당시에는 이런 고민들을 했구나라는 생각을 하게 된다.
취업 준비를 하면서 쉽게 느낄 수 없었던 몰입과 고민들을 해보면서 한층 더 성장할 수 있었다.
각 미션들을 진행하면서 그때그때 필요한 지식들을 찾아보며 보완할 수 있는 좋은 계기가 되었다.
무심코 시작했던 우테코에서 정말 많은 부분을 다시 돌아보며 재정립할 수 있는 너무나 소중한 경험이었다고 생각한다.
우테코의 커뮤니티에서 열정적인 지원자들을 보며 나 자신을 다잡게 되기도 했다.
서로의 코드들을 리뷰하면서 다양한 생각과 의견들을 공유할 수 있었고, 여러 코드를 주저없이 읽는 습관이 생겨 좋았다.
프리코스는 이제 끝이 났지만, 프리코스는 꾸준한 성장을 위한 발화제가 되었고 스스로 성장할 수 있다는 자신감이 생겼다.
좋은 경험과 습관을 얻었으니, 이것을 계기로 발판 삼아 꾸준히 성장해볼 것이다.
짧지 않은 기간 동안 몰입하면서 무사히 프리코스의 모든 과정을 마친 나 자신에게 이 회고글을 통해 칭찬해주고 싶다.
정말 고생많았다!
'생각 정리' 카테고리의 다른 글
2022. 12. 19. (0) | 2022.12.19 |
---|---|
Section 4 회고 (4) | 2022.12.14 |
2022. 12. 12~13. (0) | 2022.12.14 |
2022. 12. 09. (0) | 2022.12.09 |
2022. 12. 08. (0) | 2022.12.08 |