java -version
을 실행하여 Java 버전이 21인지 확인한다. Eclipse 또는 IntelliJ IDEA와 같은 IDE에서 Java 21로 실행되는지 확인한다.gradlew.bat clean test
또는 ./gradlew.bat clean test
명령을 실행할 때 모든 테스트가 아래와 같이 통과하는지 확인한다.// text가 공백일 경우 0 반환
if (text == null) {}
if (text.isEmpty()) {}
// 구분자를 기준으로 문자열을 나누어 저장
String[] numbers = text.split(",|;");
if (text == null) {}
if (text.isEmpty()) {}
String[] numbers = text.split(",");
출력
java.util.regex.Matcher[pattern=//(.)\n(.*) region=0,7 lastmatch=]
결과: 6
덧셈할 문자열을 입력해 주세요.
1,2:3
결과: 6
자바에서 정규 표현식 전문적으로 다루는 클래스인 java.util.regex 패키지를 사용,
패키지 안의 클래스중 주로 Pattern 클래스와 Matcher 클래스가 사용된다.
정규식 클래스의 장점은 정규식을 Pattern 객체로 미리 컴파일 해둘수 있어,
처리 속도 빠르고, 매칭된 데이터들을 좀더 상세히 다룰 수 있다.
Pattern pattern = Pattern.compile("//(.)\n(.*)");
String text = "//;\n1;2;3";
Matcher m = pattern.matcher(text);
호출자가 인수로 부적절한 값을 넘길 때 던지는 예외로,
간단히 설명하면 사용자가 값을 잘못 입력한 경우에 발생하는 예외이다.
public void setMonth(int month) {
if (month > 12) {
throw new IllegalArgumentException("달은 12월까지 입니다.")
}
this.month = month;
}
대상 객체의 상태가 호출된 메서드를 수행하기에 적절하지 않을 때 발생시킬 수 있는 예외로,
간단히 설명하면 체스 게임을 진행하는데, 체스판이 생성되지 않은 경우 발생하는 예외이다.
public void start() {
if(this.board == null) {
thorow new IllegalStateException("보드판이 준비되지 않았습니다.")
}
null 값을 허용하지 않는 메서드에 null을 건낼 때 발생시킬 수 있는 예외로,
IllegalArgumentException를 발생시킬 수 있으나 관례상 null을 건낼 경우
NullPointerException 예외를 발생시킨다.
public void setMonth(int month) {
if (month == null) {
throw new NullPointerException("달은 1월부터 12월까지 입니다.")
}
if (month > 12){
throw new IllegalArgumentException("달은 12월까지 입니다.")
}
this.month = month;
}
한 주 동안 리팩토링 방법이나 TDD 등 프로젝트에 접목해보지 못한 것 들을 알 수 있는
소중한 시간들이었던 것 같다.
리팩토링 방법이나 TDD를 좀 더 응용해서 2주차를 진행하고,
공통 피드백을 받아 부족한 부분을 한 단계 더 보완해낼 예정이다.
정신없이 지나간 1주일이었지만 정말 소중한 시간이었으며,
예상보다 더 많은 것들을 배울 수 있어 좋았다.
특히나 부족하게 여겨졌던 기초를 한 번 더 다질 수 있었고,
사람들과 디스코드에서 대화하며 다양한 정보를 얻을 수 있어 좋았던 것 같다.
이를 토대로 2주차도 나아가볼 예정이다.