[우테코] 프리코스 3주차 회고

2025. 11. 5. 21:27·우테코

진짜 어려웠던 주차..

 

🔗 3주차_과제_PR

 

[로또] 김상윤 미션 제출합니다. by yuncic · Pull Request #5 · woowacourse-precourse/javascript-lotto-8

javascript-lotto-precourse 기능 요구 사항 1. 입력 로또 구입 금액 입력 구입 금액은 1,000원 단위 나누어 떨어지지 않을 경우 예외처리 숫자 범위는 1~45 당첨 번호 입력 번호는 쉼표(,)를 기준으로 구분

github.com

 

 

드디어 3주차가 끝이났다.

솔직히,,난이도가 갑자기 급상승해서 당황했다.

자신감도 많이 잃었고 그러다 보니 남과 더 비교하게 되어서 침체가 되었던것 같다.

하지만 멘탈 잡고 어떻게든 과제를 끝내서 제출을 했고, 코드에 대한 복습이 끝나니 다시 정신이 차려졌다.

 

이번 로또 미션을 진행하면서 단순히 프로그램을 동작시키는 수준을 넘어서, 설계와 구조를 고려한 개발 방식에 대해 고민할 수 있었다.
이전 과제에서는 기능 단위로 빠르게 구현하고 실행 결과만 확인하는 방식에 익숙했지만, 이번에는 테스트 코드와 객체 간 책임 분리를 바탕으로 코드를 구성하는 방향으로 접근하였다.

 

드디어 TDD 방식으로 구현을 도전했고 어찌저찌 잘 마무리 했다!

 

유지해야할 점

 

우선, TDD를 적용한 점은 의미가 있었다.

테스트를 먼저 작성하고, 이를 통과시키기 위한 최소한의 코드를 구현하는 과정을 반복하면서

기능이 의도대로 동작하는지를 명확히 확인할 수 있었다.

특히 예외 상황 처리나 입력 검증에서 테스트가 큰 역할을 하였고, 테스트가 하나의 안전망처럼 작동함을 체감하였다.

 

또한, MVC 패턴에 따라 역할을 분리한 점도 긍정적이었다.`

`InputView`와 `OutputView`가 입출력만 담당하고,

`Lotto`, `WinningLotto`, `LottoResult`가 각각 자신이 맡은 도메인 역할을 수행하도록 설계하면서 코드 구조가 명확해졌다.

각 객체가 스스로 책임져야 할 기능만을 갖도록 한 덕분에 코드가 이해하기 쉬워지고 유지보수 측면에서도 유리한 구조가 되었다.

 

아쉬운 점 / 어려웠던 점

 

일단 private field(#) 사용이 너무 낯설었다.

Java에서 공부를 했던 개념이었지만 사용방법과 선언방법이 달라, 언제 어떻게 사용해야할지 감이 잡히지 않았다.

이어서 getter사용도 방식이 조금 달라 낯설었지만 원본 참조를 지키기 위해 적재적소에 잘 사용한 것 같다.

 

또한, constructor를 통한 객체 간 연결 흐름을 이해하는 데에도 시간이 필요했다.

처음에는 변수들이 어디에서 정의되고 전달되는지 혼란스러웠지만,

객체는 생성 시점에서 외부로부터 데이터를 주입받아 협력 관계를 형성한다는 점을 깨닫고 나서야 전체 구조가 보이기 시작했다.

 

구현의 순서를 Constants -> Validator -> Lotto -> WinningLotto -> LottoResult -> Input/OutputView -> App.js 
이렇게 저번주차와 똑같이 진행했는데, 클래스마다 역할도 다양해지고 서로간의 연결이 더 복잡해져서 어지러웠다.

 

개선 방향 / 다음에 시도할 것들

 

먼저 TDD를 더 정밀하게 시도해볼 것이다.

현재 테스트는 기능 확인 위주였기에 경계값, 실패 케이스, 예외 상황 테스트를 더 촘촘하게 추가할 계획이다.

 

그리고 폴더 구조를 MVC 패턴에 맞게 정리 할 필요성을 느꼈다.

MVC패턴대로 구현은 했지만 폴더로 구조화를 하지 않았다.

파일의 양이 점점 많아지고 그렇다 보니 한 눈에 구조가 안 들어온다.

다음엔 domain / view / controller / utils 등 디렉토리를 명확하게 나누어 구조만 봐도 책임이 드러도록 할 것이다.

 

마지막으로 구현 전 설계 단계가 너무 미흡했던 것 같다.

코드 작성 전에 클래스 책임/메서드 역할을 간단한 다이어그램이나 메모로 먼저 정리해보고 구현하는 습관을 들여봐야겠다.

 

이번 미션을 통해 단순히 코드를 작성하는 것에서 벗어나,

왜 이런 구조로 설계해야 하는가를 생각하는 사고 방식으로 한 단계 성장했다고 느꼈다.

앞으로도 기능 구현보다 설계와 책임 분리를 우선적으로 고려하는 개발자로 성장하고자 노력하겠다.

 

'우테코' 카테고리의 다른 글

우아한 테크코스 8기(FE) 1차 합격 후기  (2) 2025.12.29
[우테코] 오픈미션 - 🏀 Basketball_Coach  (1) 2025.11.18
[우테코] 프리코스 2주차 회고  (0) 2025.10.28
[우테코] 프리코스 1주차 회고 🛸  (2) 2025.10.23
'우테코' 카테고리의 다른 글
  • 우아한 테크코스 8기(FE) 1차 합격 후기
  • [우테코] 오픈미션 - 🏀 Basketball_Coach
  • [우테코] 프리코스 2주차 회고
  • [우테코] 프리코스 1주차 회고 🛸
yun_cic
yun_cic
  • yun_cic
    체대생의 개발 기록
    yun_cic
  • 전체
    오늘
    어제
    • 분류 전체보기 (22)
      • 백엔드 (1)
      • 프로젝트 (5)
      • etc (4)
      • 대외활동 (1)
      • 강의자료 (5)
      • 프론트엔드 (1)
      • 우테코 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • 포트폴리오 페이지
  • 공지사항

  • 인기 글

  • 태그

    개발자 #코딩 #체대생
    채널톡
    크몽
    백엔드
    bs4
    외주
    Python
    메모
    todo
    크롤링
    fastapi
    Crawling
    MySQL
    Selenium
    해커톤
    KUCC
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
yun_cic
[우테코] 프리코스 3주차 회고
상단으로

티스토리툴바