제목
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
Ruby 개발자 및 초보 프로그래머 (난이도: 중간)
핵심 요약
- Test Driven Development (TDD)를 처음부터 적용하려 했지만, 복잡성으로 인해 중단하고 직접 구현 후 테스트로 돌아갔음
- 체스 규칙의 예외 처리(예: 폰의 이동, 캐스팅)와 JSON 직렬화는 개발 과정에서 가장 어려웠던 부분
- 디자인 계획 수립과 필요한 기능의 체계적 분석이 성공의 핵심 요소였음
섹션별 세부 요약
- 프로젝트 준비 및 초기 설계
- Connect Four 프로젝트 이후 진행한 체스 게임은 Odin Project의 마지막 Ruby 프로젝트
- TDD 적용 시도 실패 → 초기 설계에 집중
- 테스트 코드 작성 후 구현 로직과의 불일치로 어려움 발생
- 체스 이동 로직 구현
- 나이트 이동, 폰의 이동, 캐스팅 등 특수 규칙 처리
- Knight의 이동 방식(점프 vs 슬라이드)으로 인한 코드 리팩토링 필요
- 상호작용 처리(상대 말 포획, 동일 색 말 방지)로 복잡성 증가
- JSON 직렬화 구현
- 복잡한 하위 해시 구조와 체스 말 객체 직렬화로 큰 어려움
- 3주간의 시도 끝에 설계 개선 후 해결
- 데이터 구조 최적화가 핵심이었음
- 최종 테스트 및 완성
- TDD 재도입 후 테스트 커버리지 확대
- 콘솔 메시지로 사용자 피드백 개선
- 프로젝트 완료 후 Rspec 테스트 성공으로 동기부여
결론
- *성공적인 프로젝트 완성을 위해 초기 디자인 계획 수립과 필요 기능 분석이 필수적임. TDD는 복잡한 시스템에서는 후반에 도입하는 것이 효과적이고, JSON 직렬화는 하위 해시 구조 분리와 객체 직렬화 설계**를 통해 해결할 수 있음.