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

[동글] 스프링 실습 2단계 미션 제출합니다. #89

Merged
merged 7 commits into from
Apr 28, 2020
Merged

[동글] 스프링 실습 2단계 미션 제출합니다. #89

merged 7 commits into from
Apr 28, 2020

Conversation

mintjordy
Copy link

잘 부탁 드립니다. 😀

Copy link

@KS-KIM KS-KIM left a comment

Choose a reason for hiding this comment

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

안녕하세요 동글! 리뷰어 알트입니다.
기존 코드에 큰 변화 없이 스프링 어플리케이션을 잘 만드셨네요!💯💯
간단한 피드백 남겼으니 궁금하신 부분 있으면 DM주세요😀

this.gameService = gameService;
}

@GetMapping("/")
Copy link

Choose a reason for hiding this comment

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

페이지를 render하는 컨트롤러와 API 호출 컨트롤러를 분리해 보는 것은 어떨까요?

/chess와 관련된 API를 분리한다면 해당 클래스 헤더에@RequestMapping('/chess')어노테이션으로 중복되는 URL명을 줄일 수 있을 것 같아요😀

WHITE_ROOK("r", () -> new Rook(WHITE)),
WHITE_QUEEN("q", () -> new Queen(WHITE)),
WHITE_KING("k", () -> new King(WHITE));
BLACK_PAWN("P", new Pawn(BLACK)),
Copy link

Choose a reason for hiding this comment

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

피드백 반영 💯💯

@gracefulBrown gracefulBrown merged commit 8a54f4d into woowacourse:taejinseok Apr 28, 2020
woowahan-pjs pushed a commit that referenced this pull request May 3, 2020
* [동글] 체스 스프링 실습 1단계 미션 제출합니다. (#28)

* Initial commit

* initial commit

* upgrade library version, config useJUnitPlatform

* [동글] 체스 미션 1주차 제출합니다. (#87)

* [Test] 테스트란다

* docs: 기능 구현 목록 생성

* feat: 위치 객체 생성

* feat: Position 캐싱 적용

* feat: Position 캐싱 추가 구현

* test: 체스말 테스트 코드 추가

* feat: 게임 말, 폰, 팀 클래스 추가

* feat: 모든 종류 체스말 클래스 생성

* feat: 명령어 enum 추가

* docs: README 수정

* refactor: Piece 내의 Position 제거

* feat: 체스 말 도달 가능 경로 반환 로직 추가

* feat: 직선경로 여부 판단로직 추가

* feat: 두 체스말의 행이 일치하는지 확인하는 기능 구현

* feat: 두 위치의 행이 일치하는 경우 경로 계산

* docs: 기능목록 수정

* feat: 보드 클래스 추가

* test: Board의 생성 테스트 작성

* feat: 보드 위 체스말 이동 기능 추가

* feat: MoveValidStrategy 클래스 생성

* feat: 주어진 경로(List<Position>)안에 말이 있는지 판별하는 로직 추가

* test: 체스말의 경로 이동 가능 여부 테스트 추가

* feat: 랭크 대소 비교 로직 추가

* feat: 파일(열) 비교 로직 추가

* refactor: PieceTest를 PawnTest와 RookTest로 분리

* feat: string을 통해 File 객체 찾기 추가

* refactor: Strategy관련 코드 삭제, Board내부로 체스말 이동 로직 옮김

* feat: 흑팀 체스말 초기화

* feat: 백팀 체스말 초기화, View 생성

* feat: 체스판 출력 기능

* feat: Team판별 로직 추가

* feat: 체스판 출력 기능 보완

* feat: 컨트롤러 생성

* feat: 게임 명령어 입력 기능 추가

* feat: 1단계 완료

* feat: 게임 시작 메시지 출력 메서드 추가

* feat: controller에 while문 추가

* feat: 이동할 좌표 입력 메서드 추가

* feat: 비숍 이동 여부 확인 기능 추가

* feat: 주어진 두 위치가 대각선인지 확인하는 로직 추가

* feat: 비숍의 좌상 대각선 방면 경로 확인 기능

* feat: 대각선 위치의 두 Position의 경로를 찾는 메서드 추가

* test: 비숍이동 로직 테스트 작성

* feat: 대각선 위치의 두 Position의 경로를 찾는 메서드 구현

* feat: 퀸 이동 기능 구현

* test: 퀸, 나이트, 킹 테스트 코드 추가

* feat: King 이동 가능 여부 판단 메서드 생성

* feat: King 이동 가능 여부 판단 메서드 구현

* feat: Knight 이동 가능 여부 판단 메서드 구조 구현

* test: Pawn 테스트 코드 작성

* test: Pawn의 첫 움직임 테스트 코드 작성

* test: Pawn 두칸 이동시 첫이동 여부 확인

* feat: Pawn의 움직임이 유효한지 체크하는 로직 추가

* feat: Pawn의 이동경로 반환 기능 구현

* feat: 상대 말을 잡는 로직 생성

* refactor: Bishop 이동경로 구하는 로직 변경

* feat: King, Knight 이동경로 구하는 로직 변경

* feat: 두 Position 사이의 모든 Position들을 반환하는 메서드 추가

* fix: Pawn 이동 로직 버그 수정

* fix: 테스트코드 fail 해결

* feat: 게임 종료 기능 구현

* refactor: 반복 조건 변경

* feat: 점수계산, 킹 잡힘 여부 확인 로직 수정

* feat: 기물의 이동과 기물의 catch 분리, 폰 움직임 버그 수정

* refactor: 개선된 보드 클래스 적용

* refactor: 메서드 포장

* feat: 현재 남아있는 체스말 기준 팀별 점수 계산 구현

* feat: 게임중 예외 발생시 명령어 재 입력 기능

* feat: Position 행, 열 중복 제거

* fix: 테스트 코드 버그 수정

* refactor: 일부 메서드 이름 수정

* refactor: 불필요 클래스 제거

* feat: 웹 UI 추가, 게임 시작시 , 게임 판 초기화, 점수판 갱신

* feat: 체스게임 상태 패턴 적용, 명령어별 컨트롤러 실행로직 enum 집중화

* test: 테스트 케이스 추가

* test: 테스트 케이스 추가

* fix: 킹이 잡혀서 게임이 끝나는 경우, 승자 출력안되는 버그 수정

* test: command 테스트 케이스 추가

Co-authored-by: 황준호 <42054054+hwanghe159@users.noreply.github.com>

* [동글] 체스 웹/DB 미션 제출합니다. (#152)

* refactor: 일부 클래스, 메소드 이름 변경, 메서드 추출, Board 일부 로직 변경

* feat: 팀별 점수 계산 기능 클래스 추출

* feat: 체스 기물 이미지 추가

* feat: 팀별 점수 반환기능 추가

* style: code formatting

* feat: 보드위 놓여있는 모든 기물 dto 목록 반환 기능 추가

* feat: 보드위 기물 이동 기능, 변화 생긴 지점 BoardDTO 목록 반환 기능 추가

* feat: 웹 UI  체스말 이동 기능 추가

* fix: 게임 중간에 재시작을 누르는 경우, 게임턴이 백팀으로 초기화 되지 않는 버그 수정

* feat: 체스 말 이동 기능 추가

* fix: 체스 기물 이미지 클릭시, cell이 클릭 되지 않는 버그 수정

* feat: 웹상 게임 상태 종료 여부 체크, 조건에 따른 게임 종료 기능 추가

* feat: data base 연결 추가

* docs: 기능목록 구현 갱신

* refactor: http api response 구조 변경 위한 response 관련 클래스 추가

* refactor: 응답 json 데이터 응답상태, 데이터, 메시지 형태로 포맷화

* refactor: dao에서 사용하는 jdbc 공통 로직 jdbctemplate로 분리

* fix: jdbc template out of bound index exception 버그 수정

* refactor: controller 모든 응답 내 try-catch 문 중복 제거

* refactor: jdbc template 내 중복 제거, DAO find 반환 타입 optional 변경

* refactor: 게임 상태 변경 요청 로직내 if-else 문 중복 제거

* refactor: 상태 값 반환 타입 enum 에서 string 으로 변경

* refactor: index 페이지 랜더링 객체 static 변수로 미리 생성

* refactor: 문자열 -> board 객체 파싱로직 리팩토링, 생성자 인자 null 검증 추가

* refactor: 점수 계산 기능 Result 객체로 위임

* refactor: 피드백 반영

* refactor: js 함수들 변수로 표현

* test: service 테스트 추가

* chore : 기존 체스 구현 가져옴

* refactor : 이동경로 반환 전략 적용

* refactor : 보드를 파싱하는 로직을 분리

* refactor : StateType enum 제거

* refactor : GameState을 Game으로 수정

* Board 에서 parseString() 지우기

* refactor : 패키지 구조 변경 및 import 문 정리

* refactor : board parser 매직넘버 제거, 변수명 변경

Co-authored-by: 박재성 <pobi@woowahan.com>
Co-authored-by: 황준호 <42054054+hwanghe159@users.noreply.github.com>

* [동글] 스프링 실습 2단계 미션 제출합니다. (#89)

* feat : spring 컨트롤러 작성

* feat : spring 컨트롤러 작성 완료

* refactor : 기존 예외처리 로직 controller에서 service로 이동, 알트 피드백 반영

* fix : 충돌 해결

* style : 자바 컨벤션에 맞도록 코드 수정

* fix : 병합 충돌 해결

* refactor : chess controller view, rest controller 로 분리

* feat : spring-data-jdbc 적용

* refactor : game 도메인 id 필드 제거

* refactor : game entity id getter 제거

* refactor : 피드백 반영

* refac: 또링 피드백 반영

Co-authored-by: taejinseok <46241671+taejinseok@users.noreply.github.com>
Co-authored-by: 박재성 <pobi@woowahan.com>
Co-authored-by: 황준호 <42054054+hwanghe159@users.noreply.github.com>
Co-authored-by: taejinseok <stj930@gmail.com>
gracefulBrown pushed a commit that referenced this pull request May 4, 2020
* [동글] 체스 스프링 실습 1단계 미션 제출합니다. (#28)

* Initial commit

* initial commit

* upgrade library version, config useJUnitPlatform

* [동글] 체스 미션 1주차 제출합니다. (#87)

* [Test] 테스트란다

* docs: 기능 구현 목록 생성

* feat: 위치 객체 생성

* feat: Position 캐싱 적용

* feat: Position 캐싱 추가 구현

* test: 체스말 테스트 코드 추가

* feat: 게임 말, 폰, 팀 클래스 추가

* feat: 모든 종류 체스말 클래스 생성

* feat: 명령어 enum 추가

* docs: README 수정

* refactor: Piece 내의 Position 제거

* feat: 체스 말 도달 가능 경로 반환 로직 추가

* feat: 직선경로 여부 판단로직 추가

* feat: 두 체스말의 행이 일치하는지 확인하는 기능 구현

* feat: 두 위치의 행이 일치하는 경우 경로 계산

* docs: 기능목록 수정

* feat: 보드 클래스 추가

* test: Board의 생성 테스트 작성

* feat: 보드 위 체스말 이동 기능 추가

* feat: MoveValidStrategy 클래스 생성

* feat: 주어진 경로(List<Position>)안에 말이 있는지 판별하는 로직 추가

* test: 체스말의 경로 이동 가능 여부 테스트 추가

* feat: 랭크 대소 비교 로직 추가

* feat: 파일(열) 비교 로직 추가

* refactor: PieceTest를 PawnTest와 RookTest로 분리

* feat: string을 통해 File 객체 찾기 추가

* refactor: Strategy관련 코드 삭제, Board내부로 체스말 이동 로직 옮김

* feat: 흑팀 체스말 초기화

* feat: 백팀 체스말 초기화, View 생성

* feat: 체스판 출력 기능

* feat: Team판별 로직 추가

* feat: 체스판 출력 기능 보완

* feat: 컨트롤러 생성

* feat: 게임 명령어 입력 기능 추가

* feat: 1단계 완료

* feat: 게임 시작 메시지 출력 메서드 추가

* feat: controller에 while문 추가

* feat: 이동할 좌표 입력 메서드 추가

* feat: 비숍 이동 여부 확인 기능 추가

* feat: 주어진 두 위치가 대각선인지 확인하는 로직 추가

* feat: 비숍의 좌상 대각선 방면 경로 확인 기능

* feat: 대각선 위치의 두 Position의 경로를 찾는 메서드 추가

* test: 비숍이동 로직 테스트 작성

* feat: 대각선 위치의 두 Position의 경로를 찾는 메서드 구현

* feat: 퀸 이동 기능 구현

* test: 퀸, 나이트, 킹 테스트 코드 추가

* feat: King 이동 가능 여부 판단 메서드 생성

* feat: King 이동 가능 여부 판단 메서드 구현

* feat: Knight 이동 가능 여부 판단 메서드 구조 구현

* test: Pawn 테스트 코드 작성

* test: Pawn의 첫 움직임 테스트 코드 작성

* test: Pawn 두칸 이동시 첫이동 여부 확인

* feat: Pawn의 움직임이 유효한지 체크하는 로직 추가

* feat: Pawn의 이동경로 반환 기능 구현

* feat: 상대 말을 잡는 로직 생성

* refactor: Bishop 이동경로 구하는 로직 변경

* feat: King, Knight 이동경로 구하는 로직 변경

* feat: 두 Position 사이의 모든 Position들을 반환하는 메서드 추가

* fix: Pawn 이동 로직 버그 수정

* fix: 테스트코드 fail 해결

* feat: 게임 종료 기능 구현

* refactor: 반복 조건 변경

* feat: 점수계산, 킹 잡힘 여부 확인 로직 수정

* feat: 기물의 이동과 기물의 catch 분리, 폰 움직임 버그 수정

* refactor: 개선된 보드 클래스 적용

* refactor: 메서드 포장

* feat: 현재 남아있는 체스말 기준 팀별 점수 계산 구현

* feat: 게임중 예외 발생시 명령어 재 입력 기능

* feat: Position 행, 열 중복 제거

* fix: 테스트 코드 버그 수정

* refactor: 일부 메서드 이름 수정

* refactor: 불필요 클래스 제거

* feat: 웹 UI 추가, 게임 시작시 , 게임 판 초기화, 점수판 갱신

* feat: 체스게임 상태 패턴 적용, 명령어별 컨트롤러 실행로직 enum 집중화

* test: 테스트 케이스 추가

* test: 테스트 케이스 추가

* fix: 킹이 잡혀서 게임이 끝나는 경우, 승자 출력안되는 버그 수정

* test: command 테스트 케이스 추가

Co-authored-by: 황준호 <42054054+hwanghe159@users.noreply.github.com>

* [동글] 체스 웹/DB 미션 제출합니다. (#152)

* refactor: 일부 클래스, 메소드 이름 변경, 메서드 추출, Board 일부 로직 변경

* feat: 팀별 점수 계산 기능 클래스 추출

* feat: 체스 기물 이미지 추가

* feat: 팀별 점수 반환기능 추가

* style: code formatting

* feat: 보드위 놓여있는 모든 기물 dto 목록 반환 기능 추가

* feat: 보드위 기물 이동 기능, 변화 생긴 지점 BoardDTO 목록 반환 기능 추가

* feat: 웹 UI  체스말 이동 기능 추가

* fix: 게임 중간에 재시작을 누르는 경우, 게임턴이 백팀으로 초기화 되지 않는 버그 수정

* feat: 체스 말 이동 기능 추가

* fix: 체스 기물 이미지 클릭시, cell이 클릭 되지 않는 버그 수정

* feat: 웹상 게임 상태 종료 여부 체크, 조건에 따른 게임 종료 기능 추가

* feat: data base 연결 추가

* docs: 기능목록 구현 갱신

* refactor: http api response 구조 변경 위한 response 관련 클래스 추가

* refactor: 응답 json 데이터 응답상태, 데이터, 메시지 형태로 포맷화

* refactor: dao에서 사용하는 jdbc 공통 로직 jdbctemplate로 분리

* fix: jdbc template out of bound index exception 버그 수정

* refactor: controller 모든 응답 내 try-catch 문 중복 제거

* refactor: jdbc template 내 중복 제거, DAO find 반환 타입 optional 변경

* refactor: 게임 상태 변경 요청 로직내 if-else 문 중복 제거

* refactor: 상태 값 반환 타입 enum 에서 string 으로 변경

* refactor: index 페이지 랜더링 객체 static 변수로 미리 생성

* refactor: 문자열 -> board 객체 파싱로직 리팩토링, 생성자 인자 null 검증 추가

* refactor: 점수 계산 기능 Result 객체로 위임

* refactor: 피드백 반영

* refactor: js 함수들 변수로 표현

* test: service 테스트 추가

* chore : 기존 체스 구현 가져옴

* refactor : 이동경로 반환 전략 적용

* refactor : 보드를 파싱하는 로직을 분리

* refactor : StateType enum 제거

* refactor : GameState을 Game으로 수정

* Board 에서 parseString() 지우기

* refactor : 패키지 구조 변경 및 import 문 정리

* refactor : board parser 매직넘버 제거, 변수명 변경

Co-authored-by: 박재성 <pobi@woowahan.com>
Co-authored-by: 황준호 <42054054+hwanghe159@users.noreply.github.com>

* [동글] 스프링 실습 2단계 미션 제출합니다. (#89)

* feat : spring 컨트롤러 작성

* feat : spring 컨트롤러 작성 완료

* refactor : 기존 예외처리 로직 controller에서 service로 이동, 알트 피드백 반영

* fix : 충돌 해결

* style : 자바 컨벤션에 맞도록 코드 수정

* fix : 병합 충돌 해결

* refactor : chess controller view, rest controller 로 분리

* [동글] 체스 스프링 실습 3단계 미션 제출합니다. (#114)

* feat : spring-data-jdbc 적용

* refactor : game 도메인 id 필드 제거

* refactor : game entity id getter 제거

* refactor : 피드백 반영

* feat : 식별자 랜덤 생성, 방생성, 여러 게임 기능

* refac: 또링 피드백 반영

Co-authored-by: taejinseok <46241671+taejinseok@users.noreply.github.com>
Co-authored-by: 박재성 <pobi@woowahan.com>
Co-authored-by: 황준호 <42054054+hwanghe159@users.noreply.github.com>
Co-authored-by: taejinseok <stj930@gmail.com>
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.

None yet

3 participants