bigdream96
96
2021-07-13 14:00:10
5
3237

객체지향 연습 - 체스 게임 만들기


안녕하세요.

OKKY에는 처음 글을 쓰네요. 저는 자바 백엔드 분야를 목표로 하고 있는 초보 개발자입니다. fender님의 한 칼럼을 보고 객체지향 연습을 위해 체스 게임을 만들어봤습니다.

순수 Java언어로 만들었으며, 별도의 DB 연동 없이 UI는 콘솔로  구현했습니다. 각각의 객체가 어떤 역할을 가져야 하고, 어떤 객체와 관계를 맺어야 하는 지를 중점을 갖고 개발을 진행했습니다. 

만들어 놓고 보니 처음 설계와는 다르게 새로운 기능을 추가하거나 놓쳤던 규칙을 구현하니 코드가 억지스럽거나 다소 어색한 부분이 많아졌습니다. 이를 통해 코드 리뷰와 리펙토링의 필요성을 절실히 느꼈습니다.  

작은 의견이라도 좋으니 피드백을 받고자 글을 작성하게 되었습니다.

감사합니다.

 

깃허브링크 : https://github.com/bigdream96/chess-game

14
10
  • 댓글 5

  • 포포핀
    957
    2021-07-13 17:49:43

    초보가 아니신데요 굿~

  • bigdream96
    96
    2021-07-14 09:21:07

    포포핀

    좋게 봐주셔서 감사합니다.

  • lllIIllIl
    27
    2021-07-14 14:44:26

    와 고수시내요

  • ryubato
    13
    2021-07-17 10:11:31

    잘 만드셨어요. 작은 의견으로 com.chess.game 패키지의 분리하면 가독성이 좋을 것 같아요.

    기물의 위치 정보도 기물 도메인이 가지고 있어야 할 것 같아요. 그러면 원위치를 입력 받아 않아도 될 것 같아요.

    각 기물의 toString() 은 super 내용을 그대로 호출하니 없어도 될 것 같아요.

    처음 움직임을 'bishop c8 a6' 으로 했는데 '동작이 올바르지 않습니다. 다시 시도해주세요.' 메세지 대신 IllegalArgumentException 으로 게임이 종료 됐어요.

    `잘못된 이동` 테스트 메소드 안에 여러가지 케이스를 검증하고 있어요. 하나의 케이스가 수정한다고 했을 때 전체 케이스를 수행하는 낭비가 생겨요.

    수고하셨습니다~

  • bigdream96
    96
    2021-07-18 08:53:52

    ryubato

    피드백 감사합니다.

  • 로그인을 하시면 댓글을 등록할 수 있습니다.