프리코스 1주차 KPT 회고

✅ Keep - 계속 유지하고 싶은 점

사고를 구조화하고, 꾸준히 기록하며, 여러 주제로 소통하고 나누기

  1. 구현 전 설계의 중요성
    • 이번 과제에서 가장 크게 배운 점은 '구현보다 설계가 먼저'라는 것이다. 처음엔 단순히 기능을 빠르게 완성하는 데 초점을 맞췄지만, 요구사항을 세분화하고 흐름을 정리하는 과정에서 사고를 구조화하는 힘을 체감했다.
    • 기능 단위로 나누고, 입력부터 출력까지의 흐름을 미리 설계해보니 코드를 작성할 때의 혼란이 줄고, 구현 방향이 명확해졌다.
    • 이 경험은 앞으로 어떤 프로젝트를 하더라도 '먼저 설계하고, 그다음에 구현한다'는 원칙으로 남을 것 같다.
  2. 테스트 코드와의 친화력 형성
    • 기능을 추가할 때마다 '이전 기능이 혹시 깨지진 않을까?' 하는 불안이 늘 따라붙었다. 테스트가 없을 때는 직접 실행해 확인하는 수밖에 없었고, 작은 수정에도 전체 로직이 흔들릴까 두려웠다.
    • 하지만 테스트 코드를 학습하고 활용하면서, 그 불안이 점차 사라졌다. 테스트는 나에게 단순한 검증 도구가 아니라, 코드의 안정성을 보장하는 안전망이자 마음의 버팀목이 되었다.
    • 기능을 추가해도 테스트가 통과하면 ‘이전 기능은 여전히 안전하다’는 확신이 들었다. 이 경험 덕분에 새로운 기능을 시도할 때도 훨씬 자신감 있게 코드를 수정할 수 있었다.
  3. 꾸준한 기록과 소통
    • 새롭게 배운 내용이나 학습 과정에서 느낀 점은 TIL로 기록했다. 내가 몰랐던 개념을 이해하고 정리하는 과정 자체가 재미있었다.
    • 디스코드 커뮤니티에서 내가 알고 있는 내용을 공유하고, 다른 참가자의 질문에 답변을 달면서 나의 지식이 누군가에게 도움이 된다는 즐거움을 느꼈다.
      이 과정에서 '설명할 수 있을 때 비로소 완전히 이해한 것'이라는 사실을 다시금 깨달았다.
    • 기록과 소통은 단순한 정리가 아니라, 배움을 확장시키는 즐거운 루틴이 되었다.

⚠️ Problem - 개선이 필요했던 점

유연한 코드의 작성, 꾸준함의 의미 재정의

  1. 복잡해진 App 클래스
    • 입력 검증, 계산, 출력 등 다양한 역할이 App 클래스 한 곳에 얽히면서 코드의 흐름을 따라가기가 어려워졌다.
    • 각 기능을 분리하지 않아 의도를 파악하기 힘들었고, 스스로 코드를 읽을 때조차 이 부분이 어떤 역할을 하는지 한눈에 파악하기 어려웠다.
    • 단순히 작동하는 코드보다, 의도가 명확하고 변경에 유연한 코드가 훨씬 가치 있다는 점을 배웠다.
  2. 루틴의 일관성 부족
    • 학습 내용을 기록하고 복기하는 과정을 유지하려 했지만, 루틴이 완전히 정립되지 않아 기록의 일관성이 부족했다.
    • 꾸준함은 단순히 매일 하는 것이 아니라, 형식과 목적이 일관된 반복이어야 함을 느꼈다.
    • 앞으로는 기록 자체보다 기록을 남기는 이유에 집중해 루틴을 정립할 필요가 있다고 생각했다.

🚀 Try - 다음 주차에 시도하고 싶은 점

꾸준함과 구조화된 사고를 시스템으로 발전시키기

  1. 리팩토링 원칙의 체계화
    • 2주 차부터는 SOLID 원칙을 기준으로 기능을 명확히 분리하고, 리팩토링 습관을 강화할 예정이다.
    • 특히 하나의 메서드는 하나의 책임만 가진다는 원칙을 코드 리뷰 이전에 스스로 점검하며, 역할이 겹치는 로직은 과감히 분리하고, 반복되는 패턴은 추출해 상수화할 계획이다.
    • 코드의 구조를 단순히 동작하는 수준이 아니라, 읽기 쉽고 유지보수가 용이한 형태로 발전시키는 것을 목표로 한다.
  2. 테스트 주도 개발 (TDD) 시도
    • 다음 주에는 기능 구현 후 테스트 작성이 아닌, 테스트를 먼저 작성하고 그에 맞춰 기능을 채워나가는 TDD 방식을 시도해보고자 한다.
    • 테스트 실패를 단순한 오류가 아닌, 문제 발견의 신호로 받아들이며 실패 케이스 중심으로 사고하는 습관을 만들고 싶다.
    • 이를 통해 테스트가 단순한 검증 수단이 아니라, 설계의 일부로 작동하는 개발 흐름을 체득하는 것이 목표다.

👋 회고를 마치며

이번 1주 차는 단순한 기능 구현이 아니라, '사고하는 법'을 배우는 시간이었다. 처음엔 빠르게 완성하는 것에 집중했지만, 설계의 중요성을 깨닫고 나서는 '어떻게'보다 '왜 이렇게 구현해야 하는가'를 더 자주 스스로에게 묻게 되었다.

테스트 코드를 학습하며 기능 추가 시마다 느꼈던 불안이 사라졌고, 리팩토링을 통해 코드의 구조를 다시 바라보면서 유연한 코드의 가치를 실감했다.
또한 기록과 커뮤니티 활동을 통해 배움을 나누는 즐거움을 느끼며, 혼자 성장하는 것이 아닌 함께 성장하는 개발 문화의 의미를 배웠다.

무엇보다 이번 주차를 통해 배운 가장 큰 교훈은, 성장은 '속도'가 아니라 '방향'에서 비롯된다는 것이다. 조금 더디더라도, 사고를 구조화하고 꾸준히 기록하며 개선해 나가는 과정 속에서 내가 진짜로 성장하고 있다는 확신을 얻었다.

다음 주에는 이 배움을 바탕으로, 더 깔끔한 구조와 명확한 책임을 가진 코드를 작성하고, 테스트를 설계의 일부로 녹여내며 한층 더 단단한 개발 습관을 만들어가고자 한다.