💻 computer science
-
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) 라고 합니다. ⭐ 벡터화가 필요한 이유 컴퓨터는 텍스트 데이터를 직접 처리할 수 없습니다.따라서 우리가 사용하는 언어를 컴퓨터가 이해하고 연산할 수 있도록 수치형 데이터인 벡터로 변환하는 과정이 필..
-
함수형 프로그래밍이란?!💻 computer science/⚙️ 프로그래밍 2025. 7. 27. 21:41
프로그래밍 패러다임의 큰 흐름 속에서 함수형 프로그래밍이 무엇이며 왜 중요하고 어떤 특징을 가지는지 깊이 있게 살펴보겠습니다.특히, 함수형 프로그래밍의 핵심 개념들을 다양한 예시와 함께 쉽게 이해할 수 있도록 구성했습니다. 🎯 프로그래밍 패러다임이란?프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해 주고 결정하는 역할을 한다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호작용하는 객체들의 집합으로 볼 수 있게 하는 반면 함수형 프로그래밍은 상태값을 지니지 않는 함수값들의 연속으로 생각할 수 있게 해준다.- 위키피디아: 프로그래밍 패러다임 크게 보면 프로그래밍 패러다임은 선언형(Declarative) 과 명령형(Imperative) 두 가지로 나뉩니다. 1️⃣ 명령형 프로그..
-
📒 위상정렬💻 computer science/🤔 알고리즘 2024. 6. 17. 15:46
💡 위상 정렬(Topological Sort)이란?유향 그래프의 꼭짓점들(vertex)을 변의 방향을 거스르지 않도록 나열하는 것 그래프와 관련된 알고리즘 중 하나방향 그래프에서 간선으로 주어진 정점 간 선후 관계를 위배하지 않도록 나열하는 정렬 ❗선후 관계가 정의된 그래프 구조에서 정렬을 하는데 사용할 수 있다. ⚠️ 그래프내에 사이클이 존재하는 경우에는 올바른 위상 정렬이 존재할 수 없다.선후 관계에 모순이 생기기 때문 따라서, 위상 정렬은 사이클이 존재하지 않는 방향 그래프에서만 잘 정의가 된다. 사이클이 존재하지 않는 방향 그래프 = DAG(Directed Acyclic Graph) 🧑🏻💻 구현 🏃 구현 순서 1️⃣ 먼저, 위상 정렬상에서 제일 앞에 오는 정점(A, C, G)로 가능..
-
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..
-
🎒 Knapsack 알고리즘 (배낭 알고리즘)💻 computer science/🤔 알고리즘 2024. 5. 9. 15:21
🎒 배낭 알고리즘DP 알고리즘 중 하나주어진 공간(배낭)에 최대 가치를 가지는 물건들을 넣도록 물건들을 선택하는 것이다. 배낭 알고리즘에는 2가지 유형이 존재한다. 1️⃣ Fraction Knapsack물건을 쪼갤 수 있는 경우이 경우는 그리디 알고리즘이 사용될 수 있다.단위 무게당 가치가 높은 물건을 차례대로 배낭에 넣는 방식 2️⃣ 0-1 Knapsack물건을 배낭에 넣을지 (1) 또는 넣지 않을지(0)을 결정하는 경우 🤔 왜 배낭 알고리즘이 Dynamic Programming 일까? 결국 최대 이익을 구하기 위해서는 물건을 배낭에 넣어야 한다.이때, 배낭에 물건을 넣는냐 마느냐 가 중요한 선택이다.2가지 선택지가 존재 만약, 배낭에 넣을 수 있는 양이 N 이고, 넣고자 하는 물건의 무게가 M 이..