Skip to content

Conversation

Ohgyu-kwon
Copy link

No description provided.

@neojjc2 neojjc2 self-requested a review April 8, 2025 23:51
@neojjc2 neojjc2 self-assigned this Apr 8, 2025
@neojjc2
Copy link

neojjc2 commented Apr 8, 2025

#tag @neojjc2

Copy link

@neojjc2 neojjc2 left a comment

Choose a reason for hiding this comment

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

안녕하세요 오규님 🙇

2단계 사다리 생성 잘 구현해주셨습니다.
최소한의 코드로 요구사항을 만족시켜주셨네요 👍

조금 개선될 부분이 보여서 소소한 의견 드렸는데요,
보시고 검토 해주시면 감사하겠습니다.

그리고 테스트코드가 하나도 없네요
커밋이 누락된 것 같기도 한데 이 부분도 한번 확인해주시면
좋겠습니다 🙇

그럼 재 리뷰 요청 기다리고 있겠습니다 🙏

public static void main(String[] args) {

InputView inputView = new InputView();
OutputView outputView = new OutputView();
Copy link

Choose a reason for hiding this comment

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

이 코드는 사용하지 않는 것 같습니다 😄
InputView, OutputView 모두 정적 method를 제공하고 있으므로
초기화 하는 코드는 제거하셔도 될 것 같네요 🙏

if (input.length() > 5) {
throw new IllegalArgumentException("자동차 이름은 5자를 초과할 수 없습니다: " + input);
}
}
Copy link

Choose a reason for hiding this comment

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

비즈니스 요구사항은 도메인에서 가져가는게 맞는 것 같습니다.
콘솔 입력을 사용하지 않을 경우 누락될 수 있습니다 🙏

// 검증이 누락 될 수 있습니다. 
List<String> Names = List.of("ABCDEFGHIJKLMN", "1", "2");

System.out.println();
}

}
Copy link

Choose a reason for hiding this comment

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

테스트 코드가 없는 것 같습니다 🙇

프로그래밍 요구사항
모든 기능을 TDD로 구현해 단위 테스트가 존재해야 한다. 단, UI(System.out, System.in) 로직은 제외

throw new IllegalArgumentException("입력 값이 null 이거나 빈 문자열 입니다.");
}

if (input.length() > 5) {
Copy link

Choose a reason for hiding this comment

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

매직넘버이므로 상수로 추출 되어야 할 것 같습니다. 그리고 자동차이름은 아닙니다 😅

}
builder.append("|");
System.out.println(builder);
}
Copy link

Choose a reason for hiding this comment

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

잘 아시겠지만 이 부분은 UI를 담당하는 로직입니다 😄
비즈니스 요구사항이 아닌, 출력 포맷에 따라 계속 수정이 발생할 수 있는 부분이므로
OutputView로 이동이 필요할 것 같습니다 🙇

프로그래밍 요구사항
핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.


for (int i = 0; i < countOfPoints; i++) {
boolean previous = (i > 0) && points.get(i - 1);
points.add(!previous && random.nextBoolean());
Copy link

Choose a reason for hiding this comment

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

요구사항 구현 최소한의 코드로 잘 구현해주셨네요 💯


public void printline() {
lines.forEach(Line::print);
}
Copy link

Choose a reason for hiding this comment

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

여기도 OutputView로 이동이 필요할 것 같습니다 🙇

InputView inputView = new InputView();
OutputView outputView = new OutputView();

List<String> Names = InputView.getInputNames();
Copy link

Choose a reason for hiding this comment

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

원시객체 포장이 되면 좀 좋을 것 같습니다 🙏

프로그래밍 요구사항
규칙 3: 모든 원시값과 문자열을 포장한다.

Copy link

@neojjc2 neojjc2 left a comment

Choose a reason for hiding this comment

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

안녕하세요 오규님 🙇

개선 깔끔하게 잘 진행해주셨습니다 😄
다음단계로 가시죠 🏃

이만 merge 하겠습니다 🙇

public String getName() {
return name;
}
}
Copy link

Choose a reason for hiding this comment

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

원시 객체 포장의 정석을 보는 것 같네요 👍

if (name.length() > MAX_LENGTH) {
throw new IllegalArgumentException("이름은 5자를 초과할 수 없습니다: " + name);
}
}
Copy link

Choose a reason for hiding this comment

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

💯 💯 💯 💯 💯

void 라인이_사람수_기준으로_생성되는지_확인() {
int countOfPoints = 3;
Line line = new Line(countOfPoints);
assertNotNull(line);
Copy link

Choose a reason for hiding this comment

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

아주 소소한 의견이긴 합니다만, not null을 검증하는게 아니라 사람수 기준으로 생성되는지 확인이므로
Linepoint가 3개씩인지 확인이 되어야 할 것 같습니다 🙇

@neojjc2 neojjc2 merged commit f608a18 into next-step:ohgyu-kwon Apr 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants