본문 바로가기

전체 글41

[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.
[우아한 테크코스] 프리코스 2주 차 회고록 들어가며.프리코스 2주차를 마치면서 시간이 참 빨리 간다는 생각이 들었네요. 나름 알차게 보냈다는 생각이 들지만 한편으로는 다른 분들은 얼마나 열심히 하셨을 지, 아직 양이나 질적으로 부족한게 아닌 지에 대해 초조함이 느껴지는 건 어쩔 수가 없는거 같네요. 그래도 이렇게 프리코스를 하고 있자니 개발자가 될 수 있다는 희망을 계속 가지고 공부해 나갈 수 있는거 같습니다.자동차 경주.이번 프리코스 2주차는 자동차 경주 게임을 만드는 과제였습니다. 이름을 입력받고 횟수만큼 진행하여 우승자를 판별하는 프로그램이었는데요. 1주차보다 많은 기능 요구 사항과 프로그래밍 요구 사항을 확인할 수 있었습니다. 특히 눈에 들어온 것은 JUnit 5 와 AssertJ 를 이용해서 테스트 코드로 확인한다는 점이었는데요. JUn.. 2024. 10. 28.
[JAVA] static 과 final 의 의미와 관계 들어가며.이전에 진행했던 프로젝트를 보면서 static 과 final 을 전혀 사용하지 않거나 의미 없이 사용한 부분이 너무 많다는 것을 알았습니다. 단순히 의존성 주입을 할 때만, 정적 팩토리 메서드를 작성할 때 등 의미를 모른체 사용해왔는데요. 이번 프리코스 피드백을 보면서 이 둘에 대한 사용처와 의미가 중요하다는 생각이 들었습니다. 그래서 2주차 과제에서는 적극적으로 적용해보고자 static 과 final 의 의미와 관계에 대해 작성해보겠습니다.Static.Static 은 '정적인', '고정된' 이라는 뜻을 가지고 있습니다. Static 키워드를 사용하여 정적 변수와 정적인 메소드를 만들어 낼 수 있죠. Static 을 사용한 변수와 메서드들은 Heap 영역이 아닌 Static 영역에 할당됩니다. .. 2024. 10. 27.
[TEST] 우아한 프리코스 테스트 코드 알아보기 들어가며.@Testvoid 기능_테스트() { assertRandomNumberInRangeTest( () -> { run("pobi,woni", "1"); assertThat(output()).contains("pobi : -", "woni : ", "최종 우승자 : pobi"); }, MOVING_FORWARD, STOP );}@Testvoid 예외_테스트() { assertSimpleTest(() -> assertThatThrownBy(() -> runException("pobi,javaji", "1")) .isInstanceOf(IllegalArgumentException... 2024. 10. 26.
[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.