no image
Entity LifeCycle
JPA에서 Entity의 생명주기는 엔티티가 생성되고 영속성 컨텍스트에 저장되며, 분리되거나 삭제되기까지의 과정을 말합니다. 엔티티는 비영속(New/Transient), 영속(Managed), 준영속(Detached), 삭제(Removed) 삭제로 구분됩니다.1. 비영속(New/Transient)비영속 상태는 엔티티가 단순히 메모리에 존재하지만 영속성 컨텍스트에 포함되지 않은 상태입니다. 따라서 JPA가 전혀 관리하지 않으며, 데이터베이스와도 연결되지 않습니다.Member member = new Member(); // 비영속 상태여기서 member는 영속성 컨텍스트에 저장되지 않았기에 비영속 상태입니다. 이 상태일 때는 EntityManager의 도움 없이 일반 객체로 사용할 수 있습니다. 2. 영속(M..
2024.10.25
no image
-parameters 플래그 Error
Spring MVC 애플리케이션 개발 시, @RequestParam 애너테이션을 사용할 때 종종 발생할 수 있는 오류가 있습니다. 이 오류는 컴파일 시 -parameters 플래그가 설정되지 않아 발생합니다. 오류 메시지는 다음과 같습니다Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not available via re..
2024.08.24
no image
Github Repository 병합
Github Repository 병합Git을 사용하여 여러 레포지토리를 하나로 병합하는 과정을 설명하겠습니다. 이 과정에서는 서브트리(SubTree) 기능을 사용하며 기존 레포지토리들을 하나의 새 레포지토리에 추가하는 방법입니다.1. 새로운 레포지토리 생성 및 클론먼저 GitHub에서 새로운 레포지토리를 생성하고, 해당 레포지토리를 gitbash & 터미널로 로컬에 클론 합니다. 이때, Test 폴더가 생성될 것입니다.git clone https://github.com/Joo-Veloper/Test.gitcd Test2. 각 레포지토리 서브트리로 추가하기 기존의 레포지토리들을 각각 서브트리로 추가합니다. 이때 각 레포지토리를 저장할 폴더 이름을 지정하고,--prefix 옵션을 사용합니다. (예를 들어 `..
2024.08.23
GIT
no image
[Redis] Geospatials, Bitmaps
Geospatial indexes 지리적 정보를 저장하고 검색하는 데이터 구조입니다. 이 데이터 구조는 지리적 좌표를 저장하고, 좌표들 간의 거리를 계산하거나 특정 범위 내의 좌표들을 검색하는 기능을 제공합니다. 지리적 데이터는 위도와 경도로 표시됩니다. Geospatial Indexes는 이러한 위도와 경도를 기반으로 하여 데이터를 구성하며, 공간상의 거리나 위치를 계산할 수 있는 기능을 포함합니다. 이러한 데이터 구조는 지리 정보 시스템이나 위치 기반 서비스에서 많이 사용됩니다.$ GEOADD seoul:station 126.923917 37.556944 hong-dae 127.027583 37.497928 gang-nam특정 키 `seoul:station`이라는 지리적 위치와 해당 위치의 이름을 추..
2024.05.06
DB
no image
[Redis] Sorted Sets, Streams
Sorted Set 일명 ZSets는 Redis 같은 데이터 베이스 시스템에서 사용하는 데이터 구조로, 각 요소가 유일한 문자열과 연관된 점수를 가지며 이 점수에 따라 자동으로 정렬되는 집합입니다. ZSets은 실시간 순위 표시나, 범위 검색, 점수 업데이트 와 같이 정렬된 데이터에 대한 빠른 접근이 필요한 애플리케이션에서 유용하게 사용됩니다.ZADD$ ZADD points 10 TeamA 10 TeamB 50 TeamCSorted Set에 하나 이상의 멤버와 그에 해당하는 점수를 추가합니다. 여기서 points라는 이름의 Sorted Set에 TeamA, TeamB에 각 점수 10, TeamC에 점수 50을 할당하고 있습니다. 만약 이미 존재하는 멤버의 점수를 업데이트할 때는 이 명령어를 다시 사용해서..
2024.05.03
DB
no image
[Redis]Sets,Hashes
Sets집합(SET)은 수학에서 유래된 개념으로, 중복을 허용하지 않고 순서에 상관없이 요소를 저장하는 데이터 구조입니다. 프로그래밍에서 집합은 자료형 중 하나로, 각각의 요소가 유일해야 하며 일반적으로 해시 테이블을 이용하여 구현됩니다. 이로 인해 집합 내의 요소들은 정렬되지 않습니다.주요 특징중복 없음집합에 같은 요소가 두 번 추가될 수 없습니다.순서 없음요소들은 특정 순서로 저장되거나 반환되지 않습니다.효율적인 연산레디스 집합 연산은 일반적으로 매우 빠르며, 요소의 추가, 삭제, 조회가 O(1) 시간 복잡도로 이루어질 수 있습니다.기본 연산SADD추가(SADD) 하나 이상의 요소를 집합에 추가합니다.$ SADD user:1:fruits apple banana orange orangeuser:1:fr..
2024.05.02
DB
no image
[Redis] String, List
StringRedis의 Strings는 여러 가지 타입의 데이터를 저장할 수 있는 가장 기본적인 구조이며 Strings는 문자열, 숫자, 직렬화된 객체등 다양한 형태의 데이터를 저장할 수 있습니다.$ SET lecture jooRedis에서 "lecture"라는 키에 "joo"라는 값을 설정합니다. 이것은 단일 키-값 쌍을 설정하는 일반적인 명령어입니다. $ MSET price 100 language koRedis에서 여러 개의 키-값 쌍을 한 번에 설정합니다. "price" 키에 100을, "language" 키에 "ko"를 설정합니다. $ MGET lecture price languageRedis에서 여러 개의 키에 대응하는 값을 가져옵니다. 여기서는 "lecture", "price", "lang..
2024.05.01
DB
no image
REDIS
Redis(Remote Dicionary Server)Redis는 "Remote Dictionary Server"의 약자로, 주로 애플리케이션 캐시나 빠른 응답 속도를 가진 데이터베이스로 사용되는 오픈 소스 인메모리 NoSQL 키/값 저장소입니다. Redis는 디스크나 SSD가 아닌 메모리에 데이터를 저장하여 탁월한 속도, 안정성 및 성능을 제공합니다. 이를 통해 데이터를 메모리에 저장하여 읽기 및 쓰기 성능을 극대화하고, 데이터를 사용자에게 더 가깝게 배치하여 대기 시간을 최소화할 수 있습니다. Redis는 다양한 데이터 구조를 지원하며, Lua 스크립팅과 여러 수준의 온디스크 지속성 및 고가용성을 제공하여 유연하고 확장 가능한 데이터 관리 솔루션을 제공합니다.Redis 특징In-Memory 데이터 저..
2024.04.30
DB
no image
벌크 연산
벌크 연산일괄 처리를 위해 대량의 데이터를 처리하는 작업입니다. 데이터베이스에서 UPDATE 또는 DELETE 쿼리를 사용하여 한 번에 여러 행을 변경하는 것이 일반적인 입니다. JPA에서 벌크 연산은 대량의 데이터를 변경하기 위한 메커니즘을 제공합니다. 일반적으로 영속성 컨텍스트를 통해 개별 엔티티의 변경을 추적하고, 트랜잭션을 커밋할 때 변경 사항을 데이터베이스에 반영합니다. 그러나 벌크 연산은 단일 엔티티의 변경을 추적하고, 트랜잭션을 커밋할 때 변경사항을 데이터베이스에 반영합니다. 그러나 벌크 연산은 단일 엔티티의 변경이 아닌 여러 엔티티에 대한 변경을 수행할 때 사용합니다. 이러한 변경은 일반적으로 JPA의 더티 채킹 메커니즘이나 트랜잭션 커밋 시점에만 적용되는 것이 아니라, 데이터 베이스에 대..
2024.04.29