chess 학습 로그 정리

1 minute read

체스

1단계

[Java] 추상 메서드 - 4

내용

  • Piece 추상메서드를 각 기물들이 상속하여 각자의 규칙에 맞게 구현하도록 하였다.

[Testing] 단위테스트 - 2

내용

  • public으로 사용되는 모든 메서드를 단위 테스트 구현했다.
  • TDD로 구현하고 싶었지만 리팩토링을 진행하는 과정에서 많이 실패하였다.

[Java] stream API - 4

내용

  • board 객체를 순회하기 위해 stream을 사용하였다.
  • point 객체 캐싱에 있어서 stream을 이용해 구현하였다.

[Java] enum - 4

내용

  • Color 이름을 상수로 enum에서 관리하였다.
  • 8방향의 direction을 각 방향의 +1, 0, -1 을 가지고 있도록 하여 enum으로 관리하였다.
  • 초기 기물들을 위치시키는데에 있어서 Enum으로 각 기물을 위치시키도록 하였다.

[Java] OOP - 4

내용

  • 객체 지향 프로그래밍을 지키면서 구현하고자 노력하였다.
  • 원시값 포장을 위해 노력하고, 일급 컬렉션을 만들고자 하였다.

[Java] 정적팩토리 메서드 - 3

내용

  • point를 캐싱해 정적팩토리 메서드를 적용해 필요한 객체를 얻도록 했다.

[Java] Optional - 3

내용

  • 방향을 찾다가 null이 반환 되는 경우 Optional.empty()가 반환되도록 했다.
  • 하지만 optional은 비싸서 null을 비교해 값을 얻도록 수정했다.


2단계

[Java] try-with-resources - 3

내용

  • try-with-resources를 사용해 connection 자원들을 autocloseable 하도록 해주었다.

[Web] web 계층 - 4

내용

  • service 계층을 생성하여 비즈니스 로직을 수행하도록 했다.
  • controller 계층으로 client와 service 간의 통신을 담당하도록 했다.
  • dto가 계층간 데이터를 이동하도록 했다.

[Network] http - 3

내용

  • 적절한 method로 통신하도록 구현했다.
  • 적절한 응답 코드를 보내도록 구현했다.

[Testing] 단위테스트 - 2

내용

  • public으로 사용되는 모든 메서드를 단위 테스트 구현했다.

[Java] 객체지향 - 2

내용

  • domain을 담당하는 객체들을 규칙에 맞춰 객체지향적으로 구현해 domain을 건드리지 않고 웹 컨트롤러와 연결하도록 했다.

[SQL] mysql - 2

내용

  • sql과 프로젝트를 연결해 테이블을 제작하고 적당한 쿼리문을 사용해서 필요한 값을 넣고 받을 수 있도록 하였다.

    링크

  • sql 관련 TIL

링크