🎯 목표
우테코 8기 프리코스의 첫 미션은 문자열 덧셈 계산기 구현이었다. 1주차 미션의 공통 목표는 다음과 같았다.
1주차 공통 목표
- Git, GitHub, IDE 등 실제 개발 환경에 익숙해진다.
- 교육 과정에 맞는 프로그래밍 언어를 사용해 간단한 문제를 해결한다.
이 목표와 별개로 나는 이번 미션을 통해 "나 자신에 대한 메타인지를 높이는 것"을 개인적인 목표로 세웠다. 지금까지 프로젝트를 진행하면서 “좋은 코드”, “효율적인 비즈니스 로직”에 대해선 많이 고민해왔다.
하지만 정작 내가 어떤 방식으로 코딩을 하는지, 그리고 나의 개발 방식에는 어떤 한계가 있는지 깊이 들여다본 적은 없었다.
그래서 이번 미션에서는 좋은 코드를 짜는 데 집중하기보다, 지금의 내가 어떻게 코딩하는지를 관찰하고 이해하는 데 초점을 맞췄다.
그리고 1주차 미션을 통해 나의 현재 위치를 파악한 뒤, 이후 미션들에서는 그 한계를 보완하는 데 집중할 예정이다.
💻 개발 과정에서 드러난 한계
이번 미션에서 기능 구현을 마친 뒤, 단위 테스트와 통합 테스트를 진행하면서 여러 오류를 발견했다. 문제를 해결하기 위해 코드를 수정하다 보니 커밋 단위와 코드의 구조가 꼬이기 시작했고 결국 많은 시간을 소모하게 되었다.
이 경험을 통해 느낀 나의 가장 큰 한계는 바로기능의 경계값과 제약 조건을 설계하는 능력의 부족이었다.
아무리 기능을 세세히 설계하고 구현하더라도, 경계 조건을 제대로 고려하지 않으면 프로그램은 예상치 못한 오류를 일으키기 마련이다.
🧩 개선 방향
이 문제를 해결하기 위해 두 가지를 개선하기로 했다.
개선 포인트
- 설계 및 구현 방법
- 테스트 작성 순서
1. 설계 및 구현 방식
이제는 기능 설계 시 제약 조건과 예외 상황을 명확히 정의하고 이를 README에 함께 기록할 것이다. 또한 README를 단순한 문서가 아니라, 개발의 현재 상태를 반영하는 살아있는 문서로 운영하려 한다.
이번 미션에서는 개발 전에 모든 명세서를 완성한 뒤 구현을 진행했다. 하지만 이 방식은 개발 과정에서 발생하는 변경 사항을 유연하게 반영하기 어려웠다. 결과적으로 문서와 코드가 어긋나며 시간이 지연되었다.
그래서 다음 미션부터는 가장 큰 비즈니스 로직의 틀만 먼저 정리하고, 세부 내용은 구현 직전에 보완하는 방식으로 바꿀 예정이다. 이렇게 하면 변화에 더 유연하게 대응할 수 있을 것이다.
2. 테스트 작성 순서
지금까지는 기능을 모두 구현한 뒤 테스트 코드를 작성했지만, 앞으로는 TDD(Test-Driven Development) 방식을 적용하려 한다.
TDD는 다음과 같은 순서로 진행된다.
- 실패하는 테스트 코드를 작성한다.
- 테스트를 통과시키기 위한 최소한의 기능을 구현한다.
- 리팩토링 후, 다시 1번으로 돌아간다.
이 과정을 적용하면 기능 구현 전에 예외 상황과 경계 조건을 미리 고려할 수 있고, 이전처럼 개발 후 예외를 뒤늦게 발견하는 문제를 줄일 수 있을 것이다.
🚀 다음 목표
다음 미션의 목표는 이번에 세운 두 가지 개선 방향을 직접 실천해보는 것이다. 기능 설계 단계에서 제약 조건과 예외 상황을 명확히 정의하고 README를 단순한 설명서가 아닌 살아있는 문서로 유지하는 습관을 들일 예정이다.
또한 기능 구현보다 테스트를 먼저 작성하는 TDD 방식을 적극적으로 적용할 것이다. 이를 통해 기능의 완성도뿐 아니라, 코드의 안정성과 예측 가능성까지 함께 높이고 싶다.
물론 이 두 가지 원칙을 지켜 나가는 과정에서 또 다른 한계나 문제를 분명 마주하게 될 것이다. 하지만 그 한계조차 새로운 배움의 기회로 삼고싶다.