본문 바로가기

시리즈/자바10

[JAVA] Enum 열거 타입에 대해 알아보기 ② Enum 고급 문법. Enum 매핑enum 에 열거된 상수에는 특정 값을 매핑할 수 있다. 아래 예시는 로또 등수에 맞게 맞힌 갯수와 그에 따른 금액을 매핑한 것을 볼 수 있다. 한 개만 가능한 것이 아닌 여러 정보를 매핑할 수 있으며 매핑 하기 위해선 필드를 선언하고 그에 맞는 생성자를 선언하면 된다.public enum Rank { FIRST_PLACE(6, 2000000000), SECOND_PLACE(5, 30000000), THIRD_PLACE(5, 1500000), FOURTH_PLACE(4, 50000), FIFTH_PLACE(3, 5000), NOTHING(0, 0); private int matchedCount; private long w.. 2024. 10. 31.
[JAVA] Enum 열거 타입에 대해 알아보기 ① 들어가며. 프리코스 3주차가 시작됐습니다. 지난 2주차 결과물을 보면 상수를 단순히 클래스를 선언하고 static final 로 관리해왔는데요. 이번 요구 사항을 보니 "Java Enum 을 적용하여 프로그램을 구현한다." 라는 문구를 보고 적용해보고자 글을 작성하게 되었습니다. 적용하기에 앞서 Enum 에 대해 알아보고 배운 것을 바탕으로 3주차 과제에 적용해보고자 합니다.Enum 열거 타입. Enum 은 "Enumeration" 의 약자로 "열거, 목록, 일람표" 라는 뜻을 가지고 있습니다. 즉, 열거형(enum)은 요소, 멤버라 불리는 명명된 값의 집합을 이루는 자료형으로 관련있는 상수 데이터들의 집합이라 생각하면 됩니다.Enum 이전 상수의 정의. final 상수가장 먼저 떠오르는 것은 final.. 2024. 10. 29.
[JAVA] static 과 final 의 의미와 관계 들어가며.이전에 진행했던 프로젝트를 보면서 static 과 final 을 전혀 사용하지 않거나 의미 없이 사용한 부분이 너무 많다는 것을 알았습니다. 단순히 의존성 주입을 할 때만, 정적 팩토리 메서드를 작성할 때 등 의미를 모른체 사용해왔는데요. 이번 프리코스 피드백을 보면서 이 둘에 대한 사용처와 의미가 중요하다는 생각이 들었습니다. 그래서 2주차 과제에서는 적극적으로 적용해보고자 static 과 final 의 의미와 관계에 대해 작성해보겠습니다.Static.Static 은 '정적인', '고정된' 이라는 뜻을 가지고 있습니다. Static 키워드를 사용하여 정적 변수와 정적인 메소드를 만들어 낼 수 있죠. Static 을 사용한 변수와 메서드들은 Heap 영역이 아닌 Static 영역에 할당됩니다. .. 2024. 10. 27.
[TEST] 테스트를 위한 JUnit 5 와 AssertJ ② AssertJ 의 장점.메소드 체이닝을 지원하기 때문에 깔끔하고 읽기 쉬운 테스트 코드를 작성할 수 있다.JUnit 만으로는 부족한 테스트 기능을 거의 대부분 제공합니다.간단한 예.모든 테스트 코드는 assertThat() 메소드에서 출발합니다.assertThat().메소드().메소드2().메소드3() # 문자열 테스트assertThat("Hello, world! Nice to meet you.") // 주어진 "Hello, world! Nice to meet you."라는 문자열은 .isNotEmpty() // 비어있지 않고 .contains("Nice") // "Nice"를 포함하고 .contains("world") // "world"도 포함하고 .doesNotContain("ZZZ") .. 2024. 10. 25.
[TEST] 테스트를 위한 JUnit 5 와 AssertJ ① 들어가며.프리코스 2주차가 벌써 절반이 지났습니다. TDD 를 적용하고자 개발 전에 우선 테스트를 작성하고 기능 구현을 하는 식으로 적용하고 있는데요. 아직은 JUnit 과 AssertJ 관련 문법이 어색해서 보면서 사용하고 정리할 겸 작성하게 되었습니다.JUnit 5 와 AssertJ.JUnit 5 : 자바 단위 테스트를 위한 테스팅 프레임워크AssertJ : 자바 테스트를 돕기 위해 다양한 문법을 지원하는 라이브러리JUnit 만으로도 단위 테스트를 충분히 작성할 수 있지만 JUnit 에서 제공하는 assertEquals() 와 같은 메소드는 AssertJ 가 주는 메소드에 비해 가독성이 떨어지기에 순수 Java 애플리케이션에서 단위 테스트를 위해 JUnit 5와 AssertJ 조합이 많이 사용됩니다... 2024. 10. 24.
[JAVA] 몰라서 못 썼던 정규 표현식을 알아보자 ④ [ 정규표현식 시리즈 ]몰라서 못 썼던 정규 표현식을 알아보자 ①몰라서 못 썼던 정규 표현식을 알아보자 ②몰라서 못 썼던 정규 표현식을 알아보자 ③몰라서 못 썼던 정규 표현식을 알아보자 ④ # 욕심 수량자와 겸허 수량자*, +, ? 등의 수량자가 포함된 경우 서브 매치의 할당은 앞서 포스팅한 왼쪽부터 오른쪽이라는 원칙으로 설명할 수 있었지만, 욕심 수량자와 겸허 수량자의 차이를 이해한다면 이 원칙을 벗어날 수 있습니다.수량자 종류욕심겸허스타**?플러스++?물음표???범위 수량자{n}, {n,m}{n}?, {n,m}? 위 표를 보면 알 수 있듯이 기본적으로 연산자는 욕심의 성질을 가지고 있고 뒤에 물음표을 붙이면 겸허 연산자가 됩니다. 둘의 차이는 캡션에 대하는 동작으로 최대한 많은 패턴을 일치시키려는 욕.. 2024. 10. 22.