
GitHub - jhw296/java-calculator-7 at hyewon
<aside> ✅
1주 차 프리코스인 "문자열 덧셈 계산기" 과제는 처음부터 끝까지 개발을 진행하며 많은 것을 배우고 깨달은 값진 경험이었습니다. 과제의 시작 단계에서는 README 작성과 기능 요구 사항을 정리하는 것부터 시작했습니다. 처음에는 단순히 과제의 내용을 요약해 작성하는 것처럼 느껴졌지만, 추후 이 단계가 얼마나 중요한지 깨달았습니다. 요구 사항을 명확히 정의하는 것이 이후 개발의 방향을 결정짓는 매우 중요한 작업이었기 때문에 기능 요구 사항을 정리의 중요성을 다시 한번 깨달았습니다.
2일 차에는 각 기능을 메소드별로 나누어 구현하는 작업을 진행했는데, 해당 부분에서 코드를 체계적으로 나누는 것의 중요성을 실감했습니다. 처음에는 모든 기능을 한 곳에 작성하려다 보니 코드가 복잡해지고 가독성이 떨어졌습니다. 하지만, 기능별로 메소드를 나누고 주석을 작성하면서 코드의 가독성을 크게 향상시킬 수 있었습니다. 또한, 주석을 간단하게 작성할지, 아니면 세부적으로 작성할지 고민하며 코드의 이해도를 높이는 연습을 할 수 있었습니다.
중반부에 들어서 null 문자열 입력과 잘못된 값이 입력되었을 때의 예외 처리에 대해 많은 고민을 했습니다. 이 과정에서 예외 처리를 어떻게 할지, 어디에서 해야 가장 적절한지 깊게 생각하며 예외 처리 방법을 구체적으로 생각했습니다. try-catch문을 사용하는 것에 익숙하지 않아 어려움을 겪기도 했지만, 다양한 예외 상황을 처리하면서 IllegalArgumentException과 같은 예외 처리 메커니즘에 대해 확실히 익힐 수 있는 계기가 되었습니다.
후반부로 넘어가면서 테스트 케이스를 작성하는 과정이 어렵게 느껴졌습니다. 예상치 못한 예외 상황을 고려해 다양한 테스트 케이스를 작성하는 것이 생각보다 복잡했습니다. 따라서, 이 부분에 더 많은 학습이 필요하다는 것을 깨달았습니다. 모든 경우의 수를 생각하는 것이 쉽지 않았지만, 과제를 계속 읽어보며 최대한 다양한 테스트 케이스를 생각하기 위해 노력했습니다. 이렇게 생각해 낸 테스트 케이스를 통해 코드를 더욱 탄탄하게 만들 수 있는 기회가 되었습니다.
마지막으로 리팩토링을 통해 조건문을 간결하게 만들고, 매직 넘버를 제거하며 코드의 가독성과 유지보수성을 높이는 작업을 했습니다. 이 과정에서 스트림 API를 적용하는 등 다양한 방법을 도입 해보며 코드의 효율성을 개선할 수 있었습니다. 이러한 경험을 통해 리팩토링이 단순한 코드 수정이 아니라 전체적인 코드의 구조를 개선하는 중요한 작업이라는 것을 다시 한번 느꼈습니다.
과제를 진행해 보며, 단순히 기능을 구현하는 것을 넘어 코드의 가독성, 유지보수성, 그리고 예외 처리까지 모든 측면에서 고민하며 더 나은 코드를 작성하는 데 중점을 두었습니다. 프리코스 기간 동안 많은 시행착오를 겪었지만, 그 과정을 통해 얻은 성장은 매우 값진 것이었습니다. 앞으로도 이번 과제를 통해 배운 것들을 바탕으로 더 좋은 코드를 작성할 수 있도록 노력해야겠다고 다짐했습니다.
</aside>