Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1주차 미션 / 서버 4조 지호준 #9

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

ho0010
Copy link

@ho0010 ho0010 commented Mar 22, 2024

서버 4조 지호준 과제 제출합니다.
리팩토링까지밖에 완료하지 못했습니다.
자바로 코드를 짜본 경험이 많지 않아서 어려웠지만 주신 힌트를 참고하며 리팩토링을 진행했습니다.

  1. Enum
  • Direction ,ExeceptionMessage 생성
  • 가독성을 증가 변경에 용이
  1. NaturalNumber
  • 원시값을 포장
  • 정적 팩토리 메서드를 적용 => 의존성 주입

Enum과 NaturalNumber를 적용하면서 기존에 단순히 final로 상수를 선언하거나 원시값을 쓰는 것보다 실제로 가독성이 높아지는 것을 체감했습니다.

  1. Position 클래스 생성
  • 사다리 상의 위치 관리
  • 정적 팩토리 메서드 적용
  • 유효성 검사 적용
  1. Node 클래스 생성
  • int [] 대체
  • Position move를 포함
  • 정적 팩토리 메서드 적용
  • 조합 사용

Position과 Node 클래스를 함께 구현했는데 이를 구현하는것이 많이 힘들었습니다.
사다리 로직에 대한 이해도도 부족했기 때문에 두 클래스가 Ladder에서 어떤 역할을 하는 지를 구현하면서 이해하려고 노력했습니다.

  1. Ladder 클래스 분리
  • game, creator, runner 로 역할을 분리

Ladder 클래스가 어떤 역할을 하는 지 다시 정리해보고 이를 바탕으로 game, creator, runner 역할에 맞게 분리하려고 노력했습니다.

자바에 대한 이해도와 특히 객체지향에 대한 이해도를 많이 높일 수 있었습니다.
스터디에서 진행했던 정적 팩토리 메서드와 의존성 주입에 대한 이야기가 인상깊었고 큰 도움이 되었습니다.
또한, 책임과 역할의 분리를 어디까지 해야하는 지에 대해 많은 생각을 해볼 수 있어서 이 부분도 과제 진행에 도움이 되었습니다.

Copy link

@kmw10693 kmw10693 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1주차 코드 작성하느라 정말 수고하셨습니다!
객체지향은 정답이 없는 것 같습니다! 1주차 코드와 설명을 정리해 보시면서 객체지향에 대해 생각 해보시는 시간을 가져서 다행입니다!
정말 수고하셨습니다! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants