All :L
[우아한테크코스] 프리코스 1주차 회고록 본문

프리코스 1주차를 마치며...
1주 차 프리코스인 "문자열 덧셈 계산기" 과제는 Java로 하나의 프로그램을 처음 개발해보는 나에게는 도전의 영역이었다. 새로운 언어로 처음부터 끝까지 개발을 진행하며 많은 것을 배우고 깨달았으며 값진 경험이 되었다.
과제의 시작 단계에서는 README 작성과 기능 요구 사항을 정리하는 것부터 시작했다. 처음에는 단순히 과제의 내용을 요약해 작성하는 것이라 생각했다. 하지만, 추후 개발을 진행해보며 이 단계가 얼마나 중요한지 깨달았다. 요구 사항을 명확히 정의하는 것이 이후 개발의 방향을 결정짓는 매우 중요한 작업이었기 때문에 앞으로의 개발에서는 기능 요구 사항 정리를 꼼꼼하게 해야겠다는 생각이 들었다.
https://github.com/jhw296/java-calculator-7/tree/hyewon
GitHub - jhw296/java-calculator-7
Contribute to jhw296/java-calculator-7 development by creating an account on GitHub.
github.com
초반에는 각 기능을 메소드별로 나누어 구현하는 작업을 진행했다. 아직 익숙하지 않아 당연히 쉽지는 않았다. 메소드도 큰 단위로 나눠서 작업하는 등 가독성이 떨어지는 구조였다. 모든 기능을 한 곳에 작성하려다 보니 코드가 복잡해지고 가독성이 떨어진 것이었다. 하지만, 이를 최대한 극복하기 위해 다양한 자료들을 찾아보았다. 작은 단위의 메소드(즉, 하나의 메소드에 하나의 기능)로 나누기 위해 다양한 시도를 했다. 여러가지 시도를 하며 코드를 체계적으로 나누는 것의 중요성을 확실하게 실감했다. 또한, 주석을 간단하게 작성할지 아니면 세부적으로 작성할지, 작성을 하지 말아야 할지 등 거듭 고민하며 코드의 이해도를 높이는 연습을 할 수 있었던 것 같다.
중반부에는 예외 처리에 대해 많은 고민을 했다. exception을 던져 예외 처리를 한 경험이 적어 사용하기 위해 다양한 자료를 찾아보아야 했다. 예외 처리 중 null 문자열 입력과 잘못된 값이 입력되었을 때에 대해 특히 많은 고민을 했다. 이 과정에서 예외 처리를 어떻게 할지, 어디에서 해야 가장 적절한지 계속 생각하며 예외 처리 방법을 구체적으로 구상했던 것 같다. 또, try-catch문을 사용하는 것에 익숙하지 않아 어려움을 겪기도 했다. 하지만, 이것도 이번 미션을 통해 여러번 사용하다보니 처음보다는 확실히 익숙해지긴 했다. 이처럼 다양한 예외 상황을 처리하면서 IllegalArgumentException과 같은 예외 처리 메커니즘에 대해 확실히 익힐 수 있는 계기가 되었던 것 같다.
후반부로 넘어가면서 테스트 케이스를 고민하는 과정이 어렵게 느껴졌다. 예상치 못한 예외 상황을 고려해 다양한 테스트 케이스를 작성하는 것이 생각보다 복잡했다. 테스트 도구를 사용하는지 몰라 무작성 직접 테스트 케이스를 입력해보며 검증을 했다. 모든 경우의 수를 생각하는 것이 쉽지 않았지만, 과제를 계속 읽어보며 최대한 다양한 테스트 케이스를 생각하기 위해 노력했습니다. 이렇게 생각해 낸 테스트 케이스를 통해 코드를 더욱 탄탄하게 만들 수 있는 기회가 되었습니다. 나중에 가서 테스트 도구를 사용하면 된다는 것을 알게 되었다. 따라서, 해당 도구를 다음 주차 미션에 사용해보기 위해 공부할 필요가 있다는 것을 깨달았다.
마지막으로 리팩토링을 통해 조건문을 간결하게 만들고, 매직 넘버를 제거하며 코드의 가독성과 유지보수성을 높이는 작업을 했다. 이 과정에서 스트림 API를 적용하는 등 다양한 방법을 도입 해보며 코드를 효율적으로 개선할 수 있었다. 이번 경험을 통해 리팩토링이 단순한 코드 수정이 아니라 전체적인 코드의 구조를 개선하는 중요한 작업이라는 것을 다시 한번 느꼈다.
https://translucent-mitten-47f.notion.site/1-2f854f6c80bf4062a7631f0e7a0f4a0b?pvs=4
1주차 - 문자열 덧셈 계산기 | Notion
1️⃣ Todos
translucent-mitten-47f.notion.site
과제를 진행해 보며 단순히 기능을 구현하는 것을 넘어 코드의 가독성과 유지보수성, 예외 처리까지 모든 측면에서 고민하며 더 나은 코드를 작성하는 데 중점을 두었다. 프리코스 기간 동안 많은 시행착오를 겪었지만, 그 과정을 통해 얻은 성장은 나에게 있어 매우 값진 경험이었다.
앞으로의 미션에서도 이번 과제를 통해 배운 것들을 바탕으로 더 좋은 코드를 작성할 수 있도록 노력해야겠다.
