우아한 테크코스 7기의 프리코스 1주차 미션이 끝났습니다.
1주차의 미션은 문자열 덧셈 계산기 입니다. 문제 링크는 아래에서 확인할 수 있습니다.
GitHub - woowacourse-precourse/java-calculator-7
Contribute to woowacourse-precourse/java-calculator-7 development by creating an account on GitHub.
github.com
아래는 제출한 PR 주소 입니다.
[문자열 덧셈 계산기] 이동엽 미션 제출합니다. by dye0p · Pull Request #553 · woowacourse-precourse/java-calcu
github.com
1주차 미션을 진행하면서 느꼈던 소감을 얘기하고, 회고를하려고 합니다. 두서없이 바로 시작하겠습니다!
우테코가 미션을 통해서 우리에게 요구하는것은 뭘까?
미션을 받고, 살펴보면서 "미션을 통해서 일주일이란 기간동안 무엇을 배우길 바라는 걸까" 라는 생각을 하였습니다.
"코드의 퀄리티?", "얼마나 객체지향적으로 잘 구현했는지 보는건가?" 라는 생각도 하였습니다.
그리고 학습 목표를 봤습니다.
- Git, GitHub, IDE 등 실제 개발을 위한 환경에 익숙해진다.
- 교육 분야에 맞는 프로그래밍 언어를 사용하여 간단한 문제를 해결한다.
일주일 이란 기간동안 작성된 코드도 중요하지만, 학습목표와 제시된 요구사항에 맞춰서 미션을 수행하는것이 가장 중요하다고 판단하였습니다. 사실, 모두가 그걸 알지만 미션을 수행하다보면 자신만의 기준에 매몰되어 어느샌가 미션의 본질을 잃어버리게 된다고 생각합니다.
그래서 미션을 수행하는 동안 최대한 요구사항과 학습목표에 집중하려고 했습니다. 코드의 퀄리티는 모든 요구사항이 충족되고 난 그 후의 문제였습니다.
그래서 코드는?
물론 코드의 신경도 안쓸수가 없었습니다. 미션을 진행하면서 우려되었던 부분은 "너무 잘 하려고 욕심을 내어서 잘 알지도 못하는 개념들을 사용하지 않을까?" 하는 걱정이었습니다. 집중해서 코드를 작성하다보면 자신만의 기준에 매몰되기 쉽다고 생각합니다. 그래서 이러한상황이 발생되는걸 막기 위해서 우아한 테크코스에서 제시한 객체지향 생활체조 원칙을 적용하며 구현하기로 했습니다.
사실, 저의 수준에서는 객체지향 생활 체조 원칙을 지키기도 매우 버거웠습니다. 물론 모든 사항을 GPT와 검색을 통해서 어떻게든 지키며 구현할 수 있었지만, 그렇게 하고싶지는 않았습니다. 미션 미션에서 GPT 사용은 주로 메서드 네이밍의 검토와 자바 컨벤션 확인 정도로 사용했습니다. 이것도 물론 줄여나가야 된다고 생각합니다.
이번 주 미션은 최대한 많은걸 보여주려고 하지 않았습니다. 그래서 패키지 구조도 최소한의 MVC 패턴과 최소한의 객체만을 사용했습니다.
사실 객체지향이라고 하기도 애매한데요, 너무 많은 걸 보여주려고 하다보면 요구사항에서 벗어날까봐 최대한 조심스럽게 구현 했습니다. 객체지향 생활 체조 원칙과 코드의 가독성 측면을 많이 신경쓴것 같네요.
애매한 요구사항
요구사항 중 "기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다." 라는 요구사항이 있습니다.
미션을 진행하면서 이 요구사항뿐만 아니라 모든 요구사항이 애매했습니다. 지원자마다의 판단 기준이 다를 것이고, 정답이 없었습니다. 그래서 나름대로 예외상황과 발생할 수 있는 상황을 생각하고 구현하였습니다. (나중에 미션을 제출하고 올라온 글들의 예외상황 목록을 보고 생각치도 못한 예외에 머리가 띵 했습니다. 다들 천재인가..)
배움
간단하다고 생각했던 미션에도 많은 배움이 있었습니다.
- 미션 환경 세팅을 위해서 자바 21버전을 설치하는 과정에서 JDK가 뭔지 알게되었습니다.
- 구현 기능 목록을 잘 작성하려 했던 과정에서 마크다운 문법을 학습했습니다.
- 커밋 단위를 신경쓰니 커밋에 대해서 공부하게 되었고, 여러가지 명령어를 배우게 되었습니다.
- 커스텀 구분자를 정규식으로 표현하여 패턴을 찾는 방법을 배웠습니다.
- 빈 공백을 처리하는 과정에서 Null과 Empty의 차이를 알게 되었습니다.
- 과한 메서드 분리보다 가독성을 더 신경써야하는 것
아쉬운 점
미션 제출이 끝났을때 디스코드에 수많은 글이 올라왔습니다. 코드리뷰, 미션에 대한 토론 등등
하나하나 글을 확인 해보며 "정말 미션을 만만하게 보고 했다" 라는 생각이 들었습니다.
- 더 많은 예외 상황을 고려하지 않은 것
- 더 좋은 구조를 생각해보지 않은 것
- 예외처리를 위한 객체를 고려하지 않고 그냥 넘어간 것 (이부분은 많은 생각을 하여 아직은 이르다고 판단했지만 조금 아쉬운 부분입니다)
- 객체분리를 조금 더 생각해보지 않은 것
이 외에도 여러가지 고민과 아쉬운 점들이 있었습니다.
코드리뷰
프리코스에서 가장 기대되었던 것이 코드리뷰 입니다. 한 주의 미션이 끝나면 종료된 미션의 코드를 지원자들끼리 코드리뷰를 해주는 활동입니다. 코드리뷰가 처음이기도 했고, 누군가의 코드를 리뷰하는것도 처음이었습니다. 미션이 끝나자마자 코드리뷰 요청 글이 디스코드에 쏟아져 나왔습니다. 저도 댓글을 남기면서 코드리뷰를 요청했습니다.
떨어지는 자신감
코드리뷰를 하면서 정말 다양한 지원자들의 코드를 봤습니다. 이때 든 생각은 "너무 잘하는 사람들이 많은데..?" ,"내 코드는 부끄러워서 보여주기도 힘들다.."라는 생각이 들었습니다. 다른 분들의 코드를 보면 전략패턴, 인터페이스를 활용한 추상화, 확장성을 고려한 객체지향 설계 등등 헥사고날 아키텍처를 사용하여 구현하신분도 있었습니다. 그래도 코드리뷰는 하고싶으니 열심히 리뷰활동을 했습니다. 리뷰를 남기니 조금은 뿌듯하기도 하고 무엇보다 재미가 제일 컷던것 같네요 :)
저도 마찬가지로 피드백을 받았는데요! 생각보다 많은 분들이 좋은 말씀을 많이 해주셔서 자신감을 조금 회복했습니다..😊 코드리뷰라는 문화는 정말 따뜻한 문화인것 같았습니다!ㅎㅎ
1주차를 마무리하며
1주차는 프리코스에 적응하는 기간이라고 생각합니다. 그래서 어려운 요구사항없이 무난하게 지나간거 같아요. 앞으로 점점 미션의 난이도도 올라갈 것이고, 요구사항도 많아질텐데 기대가 됩니다! 1주차 미션은 코드에 대해서 말할게 별로 없었지만 2주차 미션회고 부터는 코드에 관해서 할 말이 조금 더 많아질 것 같습니다. 그럼 2주차 회고에서 뵙겠습니다!
'우아한 테크코스 > 프리코스' 카테고리의 다른 글
[우아한 테크코스 7기 백엔드] 1차 합격 & 최종 코딩테스트 회고 (6) | 2025.01.02 |
---|---|
[우아한 테크코스 7기 백엔드] 프리코스 3주차 회고 - 로또 - (2) | 2024.11.23 |
[우아한 테크코스 7기 백엔드] 프리코스 4주차 회고 - 편의점 - (1) | 2024.11.23 |
[우아한 테크코스 7기 백엔드] 프리코스 2주차 회고 - 자동차 경주- (0) | 2024.11.13 |