전체 글 62

Neo4j DBMS 구조와 포트별 역할

Neo4j DBMS 구조Neo4j 는 DBMS 로 데이터베이스를 포함하여 그 주변 관리, 보안, 쿼리 처리, 클라이언트 통신, API 서비스 등을 총괄하는 시스템입니다. http://localhost:7474 에 접속 시 보이는 Neo4j Browser 또한 Neo4j DBMS 에서 제공하는 웹 기반 클라이언트 애플리케이션입니다. Neo4j DBMS 는 운영체제에 설치되어 포트를 통해 기능을 분리 제공하게 됩니다.포트는 DBMS 가 외부 요청을 수신하는 입구 역할일 뿐, 그 자체에 프로그램을 설치하는 개념은 아닙니다.Neo4j 포트별 역할Bolt port: 7687Neo4j DBMS 가 제공하는 핵심 기능인 쿼리 처리를 위한 쿼리 처리용 포트HTTP port: 7474Neo4j Browser 웹 애플리케..

CS/DB 2025.04.10

RAG

RAG (Retrieval-Augmented Generation)R (Retrieval, 검색): 외부 데이터베이스에서 관련 정보를 검색A (Augmented, 증강): 검색된 정보를 LLM 입력 (prompt) 에 추가하여 활용G (Generation, 생성): 프롬프트를 통해 제공된 외부 데이터를 참고하여 최종 답변을 생성즉, RAG 는 시스템 설계자가 LLM 을 외부 데이터베이스와 미리 연결한 후, 질의가 들어올 때마다 외부 정보를 검색하여 프롬프트를 통해 정보를 증강시켜 답변 품질을 향상시키는 방식입니다. 검색 자체는 단순한 데이터 조회이며, 검색한 데이터가 LLM 의 모델 자체에 축적되지는 않기 때문에 검색해온 데이터를 프롬프트를 통해 LLM 에 직접 추가해주어야 합니다. RAG 는 LLM 자체..

AI/LLM 2025.02.20

NLP 간단 정리

텍스트 전처리 (Preprocessing)텍스트를 모델이 이해할 수 있는 형태로 변환하는 과정텍스트를 정제하여 학습 데이터 불균형을 방지하고 성능 저하를 막음학습과 테스트 과정 모두 사용모델을 평가할 때, 학습 데이터와 동일한 방식으로 전처리해야 일관된 결과가 나옴딥 러닝 모델 사용 여부에 따라 전처리 정도가 달라질 수는 있으나, 전통적인 NLP 방식과 딥 러닝 기반의 NLP 방식 모두에서 전처리는 중요한 과정텍스트 전처리의 주요 단계텍스트 정제 (Cleaning)HTML 태그, 이모지, 특수문자 제거ex. "Hello!" → "Hello!"토큰화 (Tokenization)문장을 단어 또는 서브워드 단위로 분리ex. "I love NLP!" → ["I", "love", "NLP", "!"]정규화 (Nor..

AI/NLP 2025.02.11

PyTorch 자주 쓰이는 함수

torch.randn:주어진 크기의 텐서를 생성하고, 그 안에 평균 0, 표준편차 1 인 정규분포에서 랜덤 샘플링된 값을 채우는 함수ex.torch.randn(3)size: (3)torch.randn(3, 4, 5)size: (3, 4, 5)torch.rand:주어진 크기의 텐서를 생성하고, 그 안에 0 이상 1 미만의 균등분포에서 랜덤 샘플링된 값을 채우는 함수ex.torch.rand(3)size: (3)torch.rand(3, 4, 5)size: (3, 4, 5)torch.randint:주어진 크기의 텐서를 생성하고, 그 안에 low 이상 high 미만의 정수값을 랜덤하게 채우는 함수텐서의 크기는 튜플 형태로 제공ex.torch.randint(low=0, high=10, size=(3, 4))size..

AI/PyTorch 2025.02.03

시계열 데이터 딥 러닝 모델

RNN 파라미터 설명batch size:한 번의 순전파동안 처리되는 시퀀스 묶음의 개수만약 batch_size=3 이라면, 한 번에 3 개의 시퀀스 묶음을 입력으로 처리seqence length: 각 시퀀스가 몇 개의 타임스텝으로 이루어져있는지 나타내는 길이. 즉, 한 시퀀스 안에 몇 개의 입력이 있는지 나타내는 길이만약 seq_len=5 라면, 각 시퀀스는 5 개의 타임스텝으로 구성ex. 하나의 문장이 5 개의 단어로 이루어져 있다면, 그 문장의 시퀀스 길이는 5input size: 각 타임스텝에서 입력되는 데이터의 특성 (feature) 수만약 input_size=4 라면, 각 타임스텝에서 4 개의 특성이 입력ex. 온도, 습도, 바람 속도, 기압 네 가지 특성을 포함한 날씨 데이터라면, input..

AI/Spatio-temporal 2025.01.28

데이터베이스 간단 정리

Database vs DBMS (Database Management System)데이터베이스 (Database): 데이터를 구조적으로 저장한 정보의 집합으로, DBMS 가 관리하고 운영하는 대상DBMS (Database Management System): 데이터베이스에 저장된 데이터를 효율적으로 관리하고 조작할 수 있도록 돕는 소프트웨어 시스템으로, 데이터베이스의 생성, 수정, 검색 등을 처리DBMS 가 서버처럼 동작하는 이유와 네트워크 접속DBMS 는 서버-클라이언트 모델에 기반하여 동작하는 네트워크 서비스이기 때문에 로컬에 설치하더라도 여전히 네트워크 프로토콜을 사용하여 연결이 이루어지므로 IP 주소와 포트를 입력해야 접속할 수 있습니다.SQLite 와 같은 임베디드 DBMS 는 별도의 서버 없이 로..

CS/DB 2025.01.07

Labeled Property Graph (LPG)

Labeled Property Graph (LPG)Labeled Property Graph (LPG) 는 그래프 데이터베이스에서 사용되는 데이터 모델의 한 종류로 노드 (Node), 관계 (Relationship), 레이블 (Label), 속성 (Property) 을 활용하여 데이터를 구조화합니다. LPG 는 관계형 데이터베이스보다 직관적으로 데이터 간의 관계를 표현할 수 있어 네트워크, 소셜 미디어, 지식 그래프, 추천 시스템 등 다양한 응용 분야에서 사용됩니다.Relationship 은 그래프 이론에서의 Edge (간선) 와 같은 것을 지칭합니다. 그래프 이론에서의 Edge 는 관계의 물리적 연결선을 의미하지만 LPG 에서는 의미적 관계를 더욱 강조하기 위해 Relationship 이라는 표현을 선호..

CS/DB 2025.01.07

nvidia-smi, nvcc --version, CUDA, cuDNN

nvidia-smiGPU 상태를 모니터링하는 CLI 도구NVIDIA 드라이버 설치시 제공 (단독으로 설치 불가)NVIDIA GPU 만 지원하는 도구로 다른 제조사의 GPU 에는 사용할 수 없음nvidia-smi 는 출력 내용중 NVIDIA 드라이버가 지원하는 최대 CUDA Runtime 버전 (해당 GPU 가 최대 지원하는 버전 내에서) 을 함께 출력하는데 이는 현재 설치된 CUDA Toolkit 버전 (CUDA 버전) 과는 무관합니다.Runtime 은 프로그램이 실행될 때 필요한 함수와 라이브러리를 제공하는 동적 실행 환경을 의미합니다. 즉, CUDA Runtime 은 NVIDIA 가 제공하는 CUDA 실행 환경으로, GPU 를 이용한 병렬 컴퓨팅을 쉽게 할 수 있도록 지원하는 API 와 라이브러리 집..

기타 지식 2025.01.06

PR 작성과 리뷰

PR 작성 컨벤션PR 작성에 대한 공식 표준은 없지만 흔히 사용되는 컨벤션은 존재합니다.PR 제목Conventional Commits 스타일을 따르는 경우가 많습니다.PR 제목은 PR 에 포함된 여러 커밋들의 핵심 내용을 대표하는 제목으로 새롭게 작성하는 것이 일반적입니다.만일 커밋이 1개인 경우 해당 커밋 메시지가 잘 작성된 Conventional Commits 메시지라면 해당 커밋의 header 를 PR 의 제목으로 그대로 사용하기도 합니다.이는 Merge 수락시에도 적용되는 내용으로 단일 커밋에 대한 PR 을 Squash and merge 방식으로 병합하는 경우 Commit message 는 단일 커밋의 header 를, Extended description 은 단일 커밋의 body 를 그대로 사용..

Dev/VCS 2024.12.31

Git 태그

tagGit 에서 태그 (tag) 는 특정 커밋을 식별하기 위해 붙이는 일종의 이름표로 릴리즈나 특정 버전을 표시할 때 사용되어 프로젝트의 버전 관리와 릴리즈 관리를 체계적으로 할 수 있도록 돕는 중요한 도구입니다. Git 태그는 경량 태그와 (Lightweight Tag) 주석 태그 (Annotated Tag) 두 가지 종류로 나눌 수 있습니다.경량 태그 (Lightweight Tag)단순히 특정 커밋을 가리키는 포인터 역할입니다.추가적인 메타 데이터 (작성자, 날짜 등) 가 포함되지 않습니다.주로 내부적이거나 임시적으로 사용할 때 적합합니다.git tag # 현재 HEAD 가 가리키고 있는 커밋에 적용 (다른 브랜치에서도 해당 커밋에 자동 적용)git tag # 특정 커밋에 경량 태그 추가주..

Dev/VCS 2024.12.31