[우테코 7기] 백엔드 프리코스 2주 차 회고

728x90

 

 

클래스를 나눠보며 각 클래스의 책임에 대해 고민하는 시간이 많았던 2주 차였다!
확실히 코드가 깔끔해지고, 역할이 명확해져 뿌듯했다 ㅎㅎ

 

🔥내가 제출한 코드 풀이 🔥

 

[TDD] 자동차 경주 TDD 방식으로 구현하기!

> TDD(Test Driven Development) 개발 방식이란? - 테스트 코드를 먼저 작성하여 프로그램이 잘못됐다는 것을 증명하고, 이를 고쳐나가면 프로그램을 개발해 나가는 개발 방법론=> 잘못된 점을 찾고 수정

tyulsjjava.tistory.com

 


 

🔆 프리코스를 진행하면서 알게 된 점 / 깨달은 점

 

 프리코스에서 일주일 단위로 미션을 진행하면서, 목표 달성에 급급하기보다는 나만의 속도 코드를 개선하는 것에 집중할  있었다특히 Java 처음 다루면서 객체지향 개념 대해 많이 배웠다예를 들어공통 로직을 메서드로 분리 재사용성을 높이는 방법하나의 클래스에 모든 로직을 담지 않고 도메인비즈니스 로직입출력예외 처리를 나눠 클래스를 설계하는 방법 클래스의 역할과 책임 대해 고민하게 되었다피드백을 통해 enum 활용해 메시지를 관리하는 private 메서드와 static 사용 시기매직 스트링을 상수로 관리 가독성을 높이는 방법도 배웠고배열보다 컬렉션을 사용하는 이유와 각각의 장단점도 알게 되었다.
또한TDD 방식으로 테스트 코드를 작성하며단순히 터미널에서 일일이 디버깅하는 것보다 유지보수와 로직 보완이 훨씬 용이하다는 점도 깨달았다필요한 기능만 함수로 구현해 코드를 깔끔하게 유지하고 코드 의존성을 줄이는 함수 설계 방법도 배우게 되었다.

 

🔆 클래스 나누기 도전

 

 이번 주에는 하나의 클래스에 모든 코드를 작성하던 방식에서 벗어나각 객체의 역할을 고려해 클래스를 나눠보는 도전을 했다. 이전보다 코드가 기능별로 잘 나뉘어 있어 가독성도 좋아졌고, RacingService(비즈니스 로직), RacingIO(입출력), Validator(예외 처리), Application(프로그램 실행) 클래스로 구분했다. 다른 분들의 코드를 보며 더 세부적으로 나누는 방법도 배웠지만, 처음이라 큰 단위로 나눠보았다.
 RacingService
구현은 예상보다 수월했다. 입력, 출력, 예외 처리를 각각의 역할로 분리해 온전한 로직에만 집중할 수 있었다. 게임 시작 로직을 RacingService에 둘지 Application에 둘지 고민도 되었는데, “플레이 버튼을 눌러 게임이 시작되는 흐름”처럼 RacingService는 게임 진행만 담당하고, Application은 실행과 RacingIO 호출을 담당하도록 결정했다. 예외 처리는 추가 입력 없이 검증 후 필요한 에러만 던지는 방식이므로 Application이 아닌 RacingService에 두어 간결하게 만들었다.
 
클래스를 나누는 과정에서 클린 코드의 중요성 다시 느낄  있었다변수와 함수명을 직관적으로 작성 다른 사람이 읽을 때도 의도와 역할을 바로 파악할  있도록 했고주요 데이터를 private으로 감추고 getter 메서드로 접근하게 하여 보안도 강화했다enum final 상수 사용해 가독성도 높이고 관리도 쉽게 했다.

 

💭 다음 미션에서 시도할 것

 

1. 커밋 컨벤션을  찾아보며 커밋 로그를 깔끔하게 작성하기
2. 
컬렉션에 대해  공부해 상황에 맞는 컬렉션을  선택하기
3. private 
접근자로 보안을 더욱 강화하기

 

 

 

728x90