호눅스 수업 중 체스미션 관련 전체 피드백
커밋메시지 자세히 적기 → why가 들어가야한다.
PR도 자세히 설명한다.
테스트코드는 접근제어자 필요없다.
접근제어자를 뭐라고 해야할지 모르겠으면 일단 private, 나중에 필요할때 변경하기
PR 할때 충돌나면 PR하면 안된다. 충돌해결하고 PR해야한다.
리스트 pawns를 삭제하고 pawn의 색깔에 따라 해당되는 리스트에 담을 수 있도록 새로운 리스트 whitePawns 와 blackPawns를 생성했습니다.
distinguish() 메소드 추가 : 해당 pawn이 white인지 black인지 구별해서 해당하는 컬러의 리스트를 반환하는 메소드를 추가했습니다.
→ add(), size(), findPawn() 메소드 호출 시 distiguish() 메소드를 호출해서 whitePawns와 blackPawns 두 리스트 중 어느 리스트에 담겨야 할지 구별하는 기능을 추가했습니다.
상수 PAWNSNUM와 COLUMN 추가 : 각 색깔의 pawn 개수(8)와 체스판의 열의 개수(8)를 값으로 갖는 PAWNSNUM과 COLUMN을 추가했습니다.
initialize() 메소드 : PAWNSNUM 만큼 white, black 폰을 생성하여, 해당되는 리스트에 넣어주는 기능을 합니다.
getPawnResult() 메소드 : 인자로 List를 받아서 리스트의 요소들의 representation(폰을 표현하는 알파벳)을 하나의 String으로 만들어주는 역할을 합니다.
getWhitePawnResult() 메소드와 getBlackPawnResult() : 내부적으로 getPawnResult()를 호출하여 갖고 있는 요소들을 하나의 String으로 반환합니다.
getEmptyResult() 메소드 : 체스판의 피스가 놓여있지 않은 열은 "."으로 이루어진 String을 반환하는 기능을 추가했습니다.
print() 메소드 : 콘솔화면에 체스판을 출력합니다. getBlackPawnResult(), getWhitePawnResult(), getEmptyResult()를 호출해서 각 열마다 해당되는 폰이나 "."을 출력하도록 했습니다.
미션3 피드백 by 리뷰어 Brian
[yeon] 미션3: 체스판 초기화 by kimnayeon0108 · Pull Request #75 · codesquad-members-2021/java-chess
리턴타입을 List로 지정할때 타입 파라미터도 지정해주기
public List distinguish(Pawn pawn) {
if (pawn.getColor().equals(Pawn.WHITE_COLOR)) {
return whitePawns;
}
return blackPawns;
}
public Pawn findPawn(Pawn pawn, int idx) {
return (Pawn) distinguish(pawn).get(idx)
}
해당 클래스 내에서만 사용하는 메소드들은 private으로 접근제어자 설정하기
else if 사용 지양하기
color가 representation까지 갖도록 하기 → enum 사용하면 될듯
생성자 파라미터 없이 ArrayList를 생성하면 capacity가 10인 ArrayList가 생성된다.
Java ArrayList Capacity - Java Code Examples
이 블로그 참고함
size : 요소의 수
capacity : 용량, 저장공간
git pull rejected 발생
코드리뷰를 받고 github PR 내에서 suggestion을 커밋하고,
로컬 step3에서 코드를 수정하고 커밋 후 origin에 push하려고하니 거부되어 원격 origin 저장소와 동기화가 필요했다. git pull origin kimnayeon0108:step3 브랜치를 했는데 계속 거부가 되었다(정방향 진행이 아님) 어떡하지
→ 브랜치 step3을 따라가는 remote를 생성해서 그걸 pull받고, 이 remote를 삭제하면 되지 않을까..
→ 안된다...
[GIT] Git pull 전략 (default, --ff -only, --rebase)
터미널에 뜬 메시지를 검색해보니 이 블로그가 나오는데 무슨 얘긴지 잘 모르겠다
→ git pull origin step3-initialize-board 이 명령어 치고 충돌해결하니 pull 성공했다. 따라서 push 도 성공했다.
git pull origin 하고 tab 누르니 HEAD랑 kimnayeon0108밖에 안나와서 git pull origin kimnayeon0108:step3-initialize-board라고 해야하는 줄 알았는데 이게 아니였나보다.
이 명령어는 원격 origin 의 step3을 pull 하는게 아닌가 보다. 둘의 차이가 뭐지 왜 tab했을때 안나오는거지
PR 보낸게 머지 되기 이전에 새로운 step브랜치를 생성하고 작업하고, PR 보낸 것이 머지 된 경우에 이후 절차?
로컬의 yeon브랜치에서 새로운 step브랜치를 생성한다.
→ PR보낸게 머지되면 로컬의 yeon 브랜치로 pull(또는 fetch & rebase)시킨다.
→ 이렇게 하면 yeon 브랜치에서 생성된 새로운 step이 자동으로 바뀐다. yeon에서 만들어진거니깐
(내일)