본문 바로가기
반응형

전체 글158

JPA - @DynamicUpdate @DynamicUpdate 어노테이션에 대해서 알아보자! 사용하다 보면 엔티티의 업데이트가 예상치 못하게 전체 컬럼을 업데이트하는 상황을 마주칠 때가 있다. 특히 큰 테이블이나 자주 업데이트되는 테이블에서는 성능 문제가 생길 수 있다. 이럴 때 유용하게 사용할 수 있는 것이 바로 @DynamicUpdate 어노테이션이다.@DynamicUpdate란?@DynamicUpdate는 Hibernate에서 제공하는 어노테이션으로, 엔티티의 변경된 필드만 업데이트 한다. 기본적으로 Hibernate는 엔티티를 업데이트할 때 모든 컬럼을 업데이트하는 SQL을 생성한다. 하지만 @DynamicUpdate를 사용하면 실제 변경된 컬럼만 업데이트하는 SQL을 생성하도록 설정할 수 있다.참고 : @DynamicUpdate .. 2024. 7. 17.
JPA - Spring Data JPA에서 엔티티의 생성 시간과 수정 시간을 자동으로 관리하기 Spring Data JPA에서 엔티티의 생성 시간과 수정 시간을 자동으로 관리하기Spring Data JPA를 사용하다 보면 엔티티의 생성 시간과 수정 시간을 자동으로 관리하고 싶을 때가 있다. 이를 위해 보통 createdTime과 updatedTime 필드를 추가하고, 이 필드를 자동으로 업데이트해주는 방법을 고민하게 된다. 이번 포스팅에서는 이러한 과정을 간단하게 해결해줄 수 있는 BaseTime 클래스를 소개 해보겠다.. ! 1. Lombok으로 간편하게 Getter 생성먼저, Lombok의 @Getter 어노테이션을 사용하여 클래스의 모든 필드에 대한 getter 메서드를 자동으로 생성해준다. 요즈음 다 .. Lombok 사용함. 물론 나도 사용함 이유는 코드의 간결성과 가독성을 높일 수 있음.. 2024. 7. 17.
JPA - @EntityListeners 엔티티의 생명주기 이벤트 리스닝 EntityListeners란 무엇일까?오늘은 JPA(EntityListeners)에 대해 알아볼까 한다. EntityListeners는 엔티티의 생명주기 이벤트를 처리하기 위해 사용하는 기능이다. 이 기능을 사용하면 엔티티가 생성되거나 업데이트될 때 특정 로직을 실행할 수 있다.EntityListeners의 기본 개념EntityListeners는 엔티티 클래스에 리스너를 등록해서 엔티티의 상태 변화에 따라 특정 메서드를 호출하는 방식으로 동작한다. 예를 들어, 엔티티가 저장되기 전에, 저장된 후에, 삭제되기 전에, 삭제된 후에 등 다양한 시점에 원하는 작업을 수행할 수 있다.주요 애노테이션@EntityListeners: 엔티티 클래스에 리스너 클래스를 지정할 때 사용@PrePersist: 엔티티가 저장.. 2024. 7. 17.
RUST 설치 방법 RUST 소개러스트는 모질라 리서치에서 개발한 다중 패러다임, 범용 프로그래밍 언어이다. 2006년 개발자 그레이든 호아레의 개인 프로젝트로 시작되었으며, 2009년 호아레의 고용주인 모질라가 개발에 참여모질라의 정책에 따라, 러스트는 전적으로 오픈 소스로 개발되고 있으며, 커뮤니티로부터 피드백을 받고 있다.  특징러스트 프로그래밍 언어는 사용자가 더 자신감 있게 프로그래밍할 수 있도록 역량을 강화한다. 주로 저수준 시스템 프로그래밍(메모리 관리, 동시성 등)에서 어려운 문제들을 해결하고, 사용자에게 친숙한 도구를 제공해준다. 이를 통해서 보안이나 허점의 위험 없이 효율적이고 신뢰할 수 있는 코드를 작성 할 수 있다.기존 저수준 프로그래머는 러스트를 사용해 병렬화 같은 고급 기능을 더 안전하게 도입할 수.. 2024. 6. 11.
JPA - @NoArgsConstructor & @AllArgsConstructor 개념 및 사용법 개요Spring Boot와 JPA에서 @NoArgsConstructor 및 @AllArgsConstructor 애노테이션은 주로 엔터티 클래스에서 사용된다. 이러한 애노테이션은 Lombok 프로젝트에서 제공되며, 코드를 간소화하고 반복적인 작업을 줄이는 데 도움이 된다. @NoArgsConstructor@NoArgsConstructor 애노테이션은 해당 클래스에 파라미터 없는 기본 생성자를 자동으로 생성한다. 이 생성자는 JPA에서 엔터티 클래스를 사용할 때 특히 유용하다import javax.persistence.Entity;import javax.persistence.Id;import lombok.*;@Entity@Data@NoArgsConstructorpublic class MyEntity { .. 2024. 5. 16.
Spring & Spring Boot - @Accessors @Accessors@Accessors(chain = true)는 Lombok 라이브러리에서 제공하는 애노테이션이다. 이 애노테이션은 자동으로 생성된 Getter 및 Setter 메소드의 동작을 변경하는 데 사용된다.기본적으로 Lombok은 @Getter 및 @Setter 애노테이션을 사용하여 필드의 Getter 및 Setter 메소드를 생성한다. 그러나 @Accessors(chain = true)를 사용하면 체인 형식의 호출을 지원하는 메소드들을 생성한다. 이것은 객체의 메소드 호출을 연결하여 단일 표현으로 나타낼 수 있게 해준다예를 들어, 다음과 같은 클래스가 있다고 가정해보자import lombok.Getter;import lombok.Setter;import lombok.AccessLevel;imp.. 2024. 5. 9.
Mosquitto 설치 및 설정 Mosquitto 란?Mosquitto는 Eclipse Foundation에서 개발한 오픈 소스 MQTT(Message Queuing Telemetry Transport) 브로커이다. MQTT는 경량 프로토콜로, IoT(Internet of Things) 디바이스와 애플리케이션 간에 메시지 통신을 위해 사용된다. Mosquitto는 이러한 MQTT 프로토콜을 구현하고, 메시지 브로커로서의 역할을 수행하여 클라이언트 간의 안정적이고 신속한 통신을 지원한다.Mosquitto의 주요 특징경량성: Mosquitto는 리소스 사용량이 적고 경량적인 디자인을 가지고 있어서, 리소스가 제한된 환경에서도 효율적으로 동작한다.오픈 소스: Mosquitto는 오픈 소스 프로젝트로, 누구나 소스 코드를 확인하고 기여할 수 .. 2024. 5. 3.
Java - 컬렉션(Collection) By Ji Min-Jae 17 분읽는 시간 컬렉션(collection)이란? 많은 데이터를 그 사용 목적에 적합한 자료구조로 묶어 하나로 그룹화한 객체를 말한다. 컬렉션은 배열, 리스트, 세트, 맵 등 다양한 형태로 구현될 수 있으며, 각각의 형태는 다른 종류의 데이터를 효과적으로 저장하고 관리하기 위해 사용됩니다. 💡 배열(Array)이 있는데 왜 Collection을 사용하는 걸까? 배열은 정적 메모리 할당이고, Collection은 정적 메모리 할당이 아닌 동적 메모리 할당을 하게 된다. 배열은 new int[2]는 2개 공간으로 제한되고, 미리 선언을 통해 4개의 공간을 만들어야 하지만(정적 메모리), Collection 공간이 계속 필요한 만큼 추가할 수 있다(동적 메모리) 컬렉션 프레임워크의 .. 2024. 4. 17.
SDM - Software Design Pattern 의 종류 SDM - Software Design Pattern 의 종류 게시 2024/04/04 By Ji Min-Jae 11 분읽는 시간 Design Pattern Design Pattern이란? 소프트웨어 디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 재사용 가능한 솔루션을 제공하는 패턴이다. 디자인 패턴은 자주 겪는 설계 문제와 그에 대한 해결 방법을 문서화하여 개발자들이 해당 문제에 직면했을 때 쉽게 적용할 수 있게 돕는다. 디자인 패턴의 역사 1970년대와 1980년대, 소프트웨어 설계 및 개발 방법론이 점차 발전하면서 다양한 설계 원칙과 기법들이 탄생하여 객체 지향 프로그래밍(OOP)의 기본 원칙들이 정립되기 시작했고, 이러한 원칙들이 후에 디자인 패턴의 발전에 중요한 기초를 제.. 2024. 4. 4.
Jira - 기초 사용 법 JIRA SOFTWARE 로그인 홈페이지 접속 우측 상단 my account 눌러서 atlassain 에 로그인 후 링크 위 링크 클릭 후 atlassain 과 같은 아이디 정보로 로그인 사용할 도메인명을 입력하고 agree 누르면 도메인 생성 ( .atlassian.net ) 프로젝트 생성 팀 단위로 사용 할 계획이니 스크럼 선택 프로젝트 유형 선택 : 회사에서 관리가 더 많은 권한부여에 대한 조건이 있음. 프로젝트 이슈 생성 상단의 만들기 버튼을 클릭 이슈 유형을 선택하기 전 아래 설명을 참고 이슈 유형 종류 / 참고 Epic : 큰 단위의 업무(여러 User Story, Task 등을 묶은 단위) User Story : 최종 고객에게 가치를 제공하는 기능 - 작성 방법 : “I as WHO want.. 2024. 3. 6.
LIST