@JsonPropertyJSON 데이터의 필드 이름과 Java 객체의 필드 이름이 다를 때 매핑을 도와줍니다.주로 직렬화(Serialization, Java 객체 → JSON) 및 역직렬화(Deserialization, JSON → Java 객체) 시 사용됩니다.import com.fasterxml.jackson.annotation.JsonProperty;public class User { @JsonProperty("user_name") // JSON에서 "user_name"을 Java 객체에서 name 필드에 매핑 private String name; @JsonProperty("user_age") // JSON에서 "user_age"를 Java 객체에서 age 필드에 매핑 ..
Spring MVC에서 HTTP 요청의 데이터를 객체로 바인딩할 때 사용하는 어노테이션입니다.주로 폼 데이터를 DTO(또는 VO) 객체로 매핑할 때 사용됩니다.컨트롤러 메서드의 매개변수나 모델에 추가할 객체에 적용할 수 있습니다.HTTP 요청의 parameter(쿼리 스트링, 폼 데이터)를 자동으로 객체에 바인딩함.GET/POST 요청 모두 지원.내부적으로 setName(), setAge() 같은 setter 메서드를 사용하여 값을 할당함.import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.ann..
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): 부모 노드의 값이 ..