일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- filezilla
- 네트워크모델
- 디비버
- 센토스
- 객체배열
- 우분투
- 도커권한설정
- 다차원배열
- 도커
- docker
- 리눅스환경
- 백준
- 배열복사
- 모래시계출력
- 브로드캐스트
- 리눅스계열
- 백준1946
- EC2
- dbeaver
- 배열빈도수
- Decapsulation
- 포트포워딩 안될때
- 유니캐스트
- ubuntu
- wan
- 포트포워딩
- 배열최소값최대값
- 1946
- 페이로드
- 오름차순
- Today
- Total
다잘하고싶어
[프리코스] 4주차 다리건너기 게임 본문
1. 사용자로부터 이동할 칸 입력받는 과정
- 이해할 수 없는 에러.
분명 옳은 값을 입력햇는데 인식을 못한다.
public String readMoving() throws IllegalArgumentException{
String pickPart = getUserInput();
System.out.println("입력하자마자 pickPart" + pickPart);
isUorD(pickPart);
return pickPart;
}
private void isUorD(String pickPart) throws IllegalArgumentException {
System.out.println("넘어온 값 pickPart" + pickPart);
System.out.println(pickPart.equals("U")? "o":"x");
if(!pickPart.equals("U") || !pickPart.equals("D")){
System.out.println("잘못");
throw new IllegalArgumentException(Error.NOT_U_OR_D.getMessage());
}
}
바로 위의
System.out.println(pickPart.equals("U")? "o":"x");
에 의해서는 O 출력해놓고 바로 예외처리에 걸린다.
왜? 왜 인식 못하는 거야,,
말하기도 부끄럽다 && 로 했어야 한다. 멍청..
if(!pickPart.equals("U") && !pickPart.equals("D")){
리팩토링 시작
오랜 기간 코딩하다보니 요구사항을 놓쳤나보다.
- BridgeGame 클래스에서 InputView, OutputView 를 사용하지 않는다.
다음의 요구사항을 래픽토링 단계에서 발견하고 아찔했다. 현재 내 BridgeGame 클래스는 대부분 InputView, OutputView를 사용해서 로직을 딴 상황..
메서드분리하며 길이만 줄이면 된다고 생각했는데 생각보다 리팩토링이 오래걸릴것 같다.
1차 리팩토링 과정 해야할 것.
1. BridgeGame 클래스에서 InputView, OutputView 를 사용하지 않는다. -> 메인메서드에서 호출하고 받아온 값을 다리게임클래스에 넘겨주면될까?
2. 메서드 분리해서 10줄 이하로 줄이기
3. BridgeGame 내의 인스턴스 수 줄이기
4주차 소감
안녕하세요. 이번주는 마지막 미션이었던 만큼 아쉽고 시간이 짧게만 느껴졌던 한주였습니다. 가장 많은 요구사항이 추가된 미션인만큼, 조건을 충족시키기가 어려웠지만 또 그만큼 가장 명확했던 미션이라고 느껴졌습니다.
이번 미션을 진행하면서 가장 어려웠던 점은 “BridgeGame 클래스에서 InputView, OutputView 를 사용하지 않는다.” 라는 요구사항을 지키는 것이었습니다. MVC 패턴을 사용하기 위한 가장 기본적인 요구사항인데 구현과정에서 어려움을 겪다보니, 그동안 얼마나 컴포넌트의 역할을 명확하게 분리하지않고 코딩해왔는지를 느낄 수 있었습니다. 또한 이 과정에서 전 주차에 고민했던 private 변수를 외부에서 어떻게 사용할 것인지에 대한 고민이 이어졌습니다. 그러나 요구사항을 지키며 각 컴포넌트의 역할에 대해 고민하다보니, 자연스럽게 컨트롤러에서 각 클래스의 메서드를 호출할 때 매개변수로 값들을 넣어주는 방식으로 해결할 수 있었습니다.
한달간 프리코스에 참여하면서 스스로 참 많이 성장했다는 생각이 듭니다. 아직 부족함이 많은 코드이지만 야구미션 당시 제출했던 코드와 비교해보면 훨씬 깔끔하고 읽기좋은 코드가 된 것 같습니다. 무엇보다 공부하는 과정에서 가장 막연했던, “내가 무엇을 모르고, 무엇을 공부해야할 지” 라는 고민에 대해 그 방향이 어느정도 선명해져서 너무나도 뜻깊었던 시간이었습니다. 4주동안 미션을 진행하면서 아직 테스트 코드 작성이라는 산을 뛰어넘지 못한 것 같아 아쉬움이 있지만, 앞으로 정복해야할 목표라는 마음으로 열심히 해보려고 합니다. 감사합니다.
https://github.com/woowacourse-precourse/java-bridge/pull/790
'우테코 프리코스' 카테고리의 다른 글
[프리코스] 3주차 과제_ 로또게임 (0) | 2022.11.14 |
---|---|
[프리코스] 자바 기초 복습 (0) | 2022.11.12 |
Git 기본 개념 (0) | 2022.11.03 |
[프리코스] 1주차 미션 소감 (0) | 2022.10.31 |
코드 리팩토링 시 참고할 것 (0) | 2022.10.31 |