💻 computer science/📦 database
-
벡터 데이터베이스💻 computer science/📦 database 2025. 8. 4. 22:49
🔍 벡터 데이터베이스벡터 데이터베이스는 벡터 임베딩 을 효율적으로 저장, 인덱싱하고, 이를 기반으로 유사성 검색(Similarity Search) 을 수행하는 데 특화된 데이터베이스입니다. 🤖 벡터 데이터베이스는 어떻게 동작?기존 데이터베이스는 문자열, 숫자와 같은 스칼라 데이터를 행과 열에 저장합니다. 반면 벡터 데이터베이스는 벡터를 기반으로 작동하기 때문에 최적화 및 쿼리 방식이 다릅니다.벡터 데이터베이스에서는 유사성 지표를 적용하여 쿼리와 가장 유사한 벡터를 찾습니다. 여러 알고리즘을 사용해 근사 최인접 이웃(ANN) 검색을 수행합니다.이러한 알고리즘은 쿼리된 벡터의 이웃들을 빠르고 정확하게 검색하는 파이프라인으로 구성됩니다. 1️⃣ 인덱싱벡터 데이터셋에서 쿼리와 유사한 벡터를 빠르게 찾아내기 ..
-
벡터 유사도 검색💻 computer science/📦 database 2025. 8. 4. 22:42
⭐ 벡터 유사도 검색입력으로 주어진 벡터와 유사한 벡터를 데이터베이스에서 빠르게 찾아내는 것을 말합니다. ✅ 벡터 유사도 검색이 필요한 이유현대의 데이터는 텍스트, 이미지, 음성, 비디오 등 다양한 형태의 비정형 데이터가 대부분.이런 비정형 데이터는 기존의 관계형 데이터베이스로는 효율적인 검색이 어렵습니다.벡터 유사도 검색은 이 문제를 해결할 수 있습니다. 예시 - 사용자가 쇼핑몰 검색창에 "맥북 노트북"이라고 입력검색어("맥북 노트북")가 벡터(쿼리 벡터)로 변환벡터 데이터베이스에 저장된 수많은 상품 설명(제품명, 제품 설명 등)들 또한 미리 벡터로 변환되어 있습니다.쿼리 벡터와 데이터베이스에 저장된 상품 설명 벡터들 간의 유사도를 비교합니다.가장 비슷한 벡터들(=가장 관련된 상품들, 예를 들어 'Ma..
-
Word2Vec💻 computer science/📦 database 2025. 8. 4. 22:37
🌠 Word2Vec워드 임베딩 방법론 중 하나 단어의 의미적 유사성을 파악하여 이를 수치형 벡터로 표현해줍니다.Word2Vec은 단어가 사용되는 문맥(context)을 분석하여 단어의 의미를 학습해 단어 간의 복잡한 관계를 벡터 공간에 나타낼 수 있습니다. 🧪 Word2Vec 벡터 연산 Word2Vec으로 학습된 단어 벡터들은 의미론적 연산 능력을 보여줍니다.- 실제로 연산해보기: http://w.elnn.kr/search/한국 - 서울 + 도쿄 ≈ 일본손흥민 - 토트넘 + 맨유 ≈ 박지성 단어가 가지고 있는 의미들을 가지고 연산을 하는 것처럼 보입니다.이런 연산이 가능한 이유는 각 단어 벡터가 단어 벡터간 유사도를 반영한 값을 가지고 있기 때문입니다.Word2Vec이 단어간의 유사도 및 관계를 벡터..
-
벡터화와 임베딩💻 computer science/📦 database 2025. 8. 4. 22:31
컴퓨터는 모든 정보를 0과 1로 구성된 이진수로 표현합니다.이는 전기 신호의 두 가지 상태, 즉 전류가 흐르거나(1) 흐르지 않는(0) 상태를 이용한 것입니다.두 가지 상태를 통해 컴퓨터는 방대한 양의 정보를 효율적으로 처리할 수 있습니다.📌 벡터화 (Vectorization)우리가 일상생활에서 사용하는 언어(단어, 문장) 또한 0과 1로 이루어진 행렬, 즉 숫자의 집합으로 표현될 수 있습니다.이렇게 자연어를 컴퓨터가 이해할 수 있는 수치형 데이터인 벡터로 변환해주는 과정을 벡터화(Vectorization) 라고 합니다. ⭐ 벡터화가 필요한 이유 컴퓨터는 텍스트 데이터를 직접 처리할 수 없습니다.따라서 우리가 사용하는 언어를 컴퓨터가 이해하고 연산할 수 있도록 수치형 데이터인 벡터로 변환하는 과정이 필..
-
MySQL - 트랜잭션 격리 수준 실습💻 computer science/📦 database 2024. 5. 11. 21:24
⚙️ 실습 세팅트랜잭션 격리 수준을 실습해보기 위해서 테이블을 만들고 데이터를 넣어두었다. 👤 Member TableCREATE TABLE MEMBER ( id bigint auto_increment primary key, name varchar(255) not null, constraint UK_name unique (name)); ➕ 데이터 추가INSERT INTO MEMBER (id, name) VALUES(1, 'Beomsic');INSERT INTO MEMBER (id, name) VALUES(2, 'Beomseok');INSERT INTO MEMBER (id, name) VALUES(3, 'KO'); 💻 2개의 데이터베이스 세션 설정set autocommit = FALSE; // 현..
-
MySQL - 스토리지 엔진 수준의 락💻 computer science/📦 database 2024. 5. 11. 14:25
🔒 MySQL 의 락MySQL에서 사용되는 락은 크게 스토리지 엔진 레벨과 MySQL 엔진 레벨로 나눌 수 있다. 🧩 스토리지 엔진 레벨의 락테이블의 데이터를 다루기 위한 락 🧩 MySQL 엔진 레벨의 락테이블이나 데이터베이스 등과 같은 부분을 위한 락 🆎 스토리지 엔진 레벨의 락의 종류레코드 락 (Record Lock)갭 락 (Gap Lock)넥스트 키 락 (Next Key Lock)자동 증가 락 (Auto Increment Lock) 1️⃣ 레코드 락🎯 레코드 락은 테이블 레코드 자체를 잠그는 락을 의미한다. ❗MySQL에서 레코드 락은 테이블의 레코드가 아닌 인덱스의 레코드를 잠근다는 점이 다른 DBMS와의 차이점이다.MySQL에서는 레코드 자체를 잠그는 것이 아닌 인덱스를 잠그기 때문에..
-
📂 MySQL - 트랜잭션 격리 수준💻 computer science/📦 database 2024. 5. 11. 14:14
🔝 트랜잭션 격리 수준 🌟모든 DB 트랜잭션은 격리수준을 갖고 있어야 한다.서버 환경에서는 여러 개의 트랜잭션이 동시에 진행될 수 있다.적절하게 격리수준을 조정해 가능한 한 많은 트랜잭션을 동시에 진행시키면서도 문제가 발생하지 않게 해야 한다. 🌠 트랜잭션 격리 수준 격리 수준설명 발생하는 이상 현상SERALIZABLE트랜잭션을 순차적으로 진행- 여러 트랜잭션이 동시에 같은 행에 접근할 수 없다.- deadlock이 일어날 확률도 높고 성능이 가장 떨어짐 ❌REPEATABLE_READ특정 행을 조회시 항상 같은 데이터를 응답하는 것을 보장하는 격리 수준 하나의 트랜잭션이 수정한 행을 다른 트랜잭션이 수정할 수 없다- 새로운 행을 추가하는 것은 막지 않는다. phantom read READ_COMMI..
-
인덱스💻 computer science/📦 database 2022. 10. 5. 18:13
인덱스 🔖 추가적인 쓰기 작업과 저장공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료 구조 ex) 책의 마지막 장에 있는 찾아보기 인덱스를 활용하면, 데이터를 조회하는 SELECT 외에도 UPDATE, DELETE 의 성능이 함께 향상된다. → 해당 연산을 수행하기 위해서는 해당 대상을 조회해야만 작업을 할 수 있기 때문이다. 인덱스 관리 DBMS는 index를 항상 최신의 정렬 상태로 유지해야 원하는 값을 빠르게 탐색할 수 있다. 인덱스가 적용된 컬럼에 INSERT, UPDATE, DELETE가 수행되면 각각의 연산을 추가적으로 해주어야 한다. 그에 따른 오버헤드가 발생 INSERT : 새로운 데이터에 대한 인덱스 추가 UPDATE : 기존의 인덱스를 사용하지 않음 처리 후 갱신된..