Java 14에서 처음 도입되었으며, 간결하고 불변(immutable)한 데이터 객체를 정의하는 데 사용됩니다.데이터 클래스를 작성할 때 반복적으로 작성해야 하는 보일러플레이트 코드를 줄이기 위해 설계되었습니다. 1. 간단한 선언record 키워드를 사용하여 클래스를 선언하며, 기본적으로 불변 객체를 생성합니다.예를 들어, 아래의 record는 equals(), hashCode(), toString(), 그리고 불변 필드에 대한 getter 메서드를 자동으로 생성합니다.public record Point(int x, int y) {} 2. 자동 생성된 메서드Constructor: 모든 필드를 초기화하는 생성자가 자동으로 생성됩니다.Getter 메서드: 각 필드에 대해 자동으로 getter 메서드가 생성되..
유틸리티 클래스(Static 메서드만 포함하는 클래스)를 작성할 때 유용하게 사용할 수 있는 애노테이션1. Private 생성자 자동 생성@UtilityClass를 붙이면 Lombok이 자동으로 private 생성자를 생성합니다.이를 통해 해당 클래스의 인스턴스화가 불가능해집니다.@UtilityClasspublic class MathUtils { public int add(int a, int b) { return a + b; }}2. 모든 멤버가 자동으로 static 처리클래스 내부의 모든 필드와 메서드가 자동으로 static으로 변환됩니다.개발자가 static 키워드를 명시하지 않아도 됩니다.@UtilityClasspublic class StringUtils { public..
@Parameterized JUnit의 @ParameterizedTest 어노테이션은 동일한 테스트를 다양한 매개변수로 여러 번 실행할 수 있게 해줍니다. 이를 통해 같은 테스트 케이스에 대해 다양한 입력 값을 테스트할 수 있어 테스트의 포괄성과 효율성을 높일 수 있습니다.https://www.baeldung.com/parameterized-tests-junit-5 public class ParameterizedTestExample { @ParameterizedTest @ValueSource(strings = {"racecar", "radar", "able was I ere I saw elba"}) void testPalindrome(String candidate) { ..
JPASQLQuery네이티브 SQL 쿼리를 생성하고 실행하기 위한 QueryDSL 클래스SQL 힌트나 기타 데이터베이스에 종속적인 설정(예: 인덱스 힌트)을 적용반면, JPAQuery는 JPQL을 생성하는 데 사용됩니다.JPQL은 데이터베이스 독립적인 추상화 계층을 제공하기 때문에,힌트나 플래그 같은 SQL 종속적인 요소를 직접 추가하는 기능을 지원하지 않습니다.addFlag()addFlag(QueryFlag.Position, String) 메서드는 쿼리에 특정 플래그를 추가하여 QueryDSL이 생성하는 SQL에 원하는 텍스트(예: SQL 힌트)를 삽입할 수 있도록 해줍니다.첫 번째 인자: 플래그를 삽입할 위치 (QueryFlag.Position)두 번째 인자: 삽입할 텍스트 (예: SQL 힌트)htt..
https://www.lainyzine.com/ko/article/how-to-install-wsl2-and-use-linux-on-windows-10/ WSL로 윈도우에서 리눅스 설치 및 사용법WSL(Windows Subsystem for Linux)은 윈도우에서 리눅스를 심리스하게 사용할 수 있도록 도와줍니다. 이 글에서는 WSL2를 설치하고 사용하는 방법을 소개합니다.www.lainyzine.com https://www.lainyzine.com/ko/article/a-complete-guide-to-how-to-install-docker-desktop-on-windows-10/ 윈도우 Docker 설치 완벽 가이드(Home 포함)Docker는 경량 가상화 기술인 리눅스 컨테이너 도구입니다. 윈도우 ..
2진수 문자열 -> int 변환입력 문자열이 2진수 형식이어야 하며, 0과 1 이외의 값이 포함된 문자열을 입력하면 NumberFormatException이 발생public class Main { public static void main(String[] args) { String binaryString = "1101"; // 2진수 문자열 // 2진수 문자열을 int로 변환 int decimalValue = Integer.parseInt(binaryString, 2); System.out.println(decimalValue); // 출력: 13 }}int -> 2진수 문자열 변환public class Main..
동작 방식요소 삽입: 우선순위 큐에 값을 삽입할 때 해당 값의 우선순위가 큐의 규칙에 따라 저장됩니다.요소 삭제: 우선순위 큐에서 값을 삭제할 때는 큐에 저장된 값 중 가장 높은 우선순위를 가진 값이 먼저 삭제됩니다.특징우선순위 기준: 우선순위 큐에서는 각 요소가 우선순위(priority)를 가지고 있으며, 이 우선순위에 따라 처리 순서가 정해집니다.최대 우선순위 큐: 가장 큰 값(우선순위가 높은 값)이 먼저 처리됩니다.최소 우선순위 큐: 가장 작은 값(우선순위가 낮은 값)이 먼저 처리됩니다.내부 구현:우선순위 큐는 보통 힙(Heap) 자료 구조를 사용하여 구현됩니다. 힙은 완전 이진 트리로, 각 노드의 값이 그 자식 노드보다 크거나 작다는 성질을 가집니다.최소 힙(min-heap): 부모 노드의 값이 ..
힙의 주요 특징완전 이진 트리(Complete Binary Tree):힙은 항상 완전 이진 트리의 구조를 가집니다.완전 이진 트리란 트리의 모든 레벨이 꽉 차 있으며, 마지막 레벨은 왼쪽에서 오른쪽으로 순서대로 채워져 있어야 합니다.부모-자식 간의 순서 관계:최대 힙 (Max-Heap): 부모 노드의 값이 항상 자식 노드의 값보다 큽니다.즉, 루트 노드가 트리에서 가장 큰 값을 가집니다.최소 힙 (Min-Heap): 부모 노드의 값이 항상 자식 노드의 값보다 작습니다.즉, 루트 노드가 트리에서 가장 작은 값을 가집니다.우선순위 큐:힙은 우선순위 큐를 구현하는 데 적합합니다.우선순위 큐에서 가장 우선순위가 높은 요소를 빠르게 찾아내고 제거해야 할 때, 힙은 O(log n) 시간 복잡도로 이를 처리할 수 있..
오리지날 샤프란입니다!! :-)9월에 식재하세요!!구근을 받으시면 잠시 그늘에 보관했다가9월 초~중순에 식재하면 꽃이 귀한 10월 말~11월 초에 개화합니다.봄에 개화하는 크로커스가 아니고 오리지날 샤프란입니다.완숙 퇴비를 넣고 구근의 2배 깊이로 심으세요.꽃이 지고 나면 새순이 나오고 잎이 성장을 합니다.파란 솔잎 상태로 겨울을 나고 초여름까지 새 구근을 키웁니다.새순의 수만큼 자구가 생겨 보통 5~6개의 자구 번식을 하기도 합니다.화분에 식재한 경우 잎이 지고 나면 구근을 수확하여 양파망에 넣어 그늘에 보관했다가다시 가을에 심으면 됩니다.화단에 심으면 노지월동하고, 2~3년 동안은 캐지 않아도 됩니다.경험상 중부지방에서는 강추위가 오면 투명비닐 한장을 덮어주면잎이 동해..