목록분류 전체보기 (116)
헬창 개발자

Hash Ring 이란?분산 시스템에서 데이터(키)를 여러 서버에 고르게 분산시키기 위한 방법이다.🍩 원형 구조의 해시 공간 위에키와 서버를 같은 방식으로 매핑해서가장 가까운 서버에 데이터를 저장하는 구조예시로 들어보자노드 3개에 데이터를 분산 저장하는 상황이 있다. 제일 쉬우면서 분산 저장하는 법은 데이터의 특정 값을 이용해 해싱 결과 값을 구하고, 해당 값의 노드로 배치하는 법이다.hash(data-key) % 3이러한 예시에서 노드의 수가 세상이 끝날 때까지 변함이 없다는게 보장된다면 문제 없이 동작할 수 있다. 하지만 역시나 그럴 확률은 적다. 주변 환경에 따라, 유저의 수가 증감함에 따라, 회사/서비스의 상황에 따라 분산저장 노드의 개수는 변할 수 있고, 그렇게 상황에 따라 변하는 것이 효율적..

Blocking & Non-blocking 이란 무엇일까?동기/비동기에 들어가기 전 먼저 필수적으로 짚고 넘어가야 할 개념이 바로 Blocking 과 Non-blocking 개념입니다. 이 부분은 관점을 제어로 바라보는 부분입니다. CPU에 대한 제어권을 넘겨주지 않는다면 Blocking 이며, 넘겨준다면 Non-blocking 입니다.보통 이 Non-blocking을 수행할 때는 I/O를 빼먹을 수 없는데요. 이것이 대표적인 Non-blocking의 사례이기 때문입니다. I/O 처리는 굉장히 무겁고 시간이 걸리는 작업이기 때문에, 이를 요청했던 작업이 이 I/O처리가 다 될때까지 기다리는 것이 굉장히 비효율적이게 됩니다. 그래서 Non-blocking으로 I/O 처리를 해주어 작업을 계속하다가 커널 영..

Submodule과 Subtree를 활용한 외부 종속성 관리 및 프로젝트 통합이 문서에서는 Submodule과 Subtree를 활용하여 외부 종속성의 코드를 안정적으로 관리하고, 이를 프로젝트에 효과적으로 통합하는 방법을 다룹니다.1. Submodule목적하나 이상의 외부 저장소를 현재 저장소에 링크 형태로 포함시키기 위해 사용예: 프로젝트 A 안에 외부 저장소 B를 독립적인 버전 상태로 포함 가능작동 방식부모 저장소는 서브모듈이라 불리는 외부 저장소에 대한 참조(링크)만 유지서브모듈은 독립적인 Git 저장소로 관리되며, 별도의 .git 디렉토리를 가짐부모 저장소는 서브모듈의 특정 커밋 해시만 기록함2. Subtree목적외부 저장소의 코드를 현재 저장소에 복사하여 포함시키기 위해 사용하나의 Git 저장소..

✏️ Redis란?Redis(REmote DIctionary Server)는 인메모리 기반의 오픈소스 NoSQL 데이터 저장소입니다.데이터를 RAM에 저장하여 빠른 읽기/쓰기 성능을 제공합니다.주요 특징NoSQL: 키-값(key-value) 기반 저장소기본 자료구조 지원: String, List, Set, Hash, Sorted Set 등싱글 스레드 기반: 구조는 단순하지만 성능은 매우 뛰어남다양한 언어 지원: Python, Node.js, Java, Go 등 클라이언트 제공💡 기존 DB가 있는데도 Redis를 사용하는 이유가 뭘까?DB는 데이터를 디스크에 직접 저장(write)하기 때문에 서버에 문제가 발생하여 다운되더라도 데이터가 손실되지 않는데매번 디스크에 접근해야하기 때문에 사용자가 많아질 수록..

마이크로서비스 환경에서는 수많은 컨테이너가 돌아갑니다. 그런데… "얘 지금 진짜 정상 작동 중인가?" 확인 안 하고 그냥 running 상태만 믿었다가 낭패 보는 경우, 많지 않나요?그래서 Docker는 healthcheck라는 멋진 기능을 제공합니다.이걸 설정해두면 컨테이너 내부 서비스의 진짜 상태를 주기적으로 점검하고, healthy / unhealthy 상태를 자동으로 판별해줍니다.✅ fastapi 서비스에 헬스체크 추가 예시FastAPI에 /health 라우트 구현@app.get("/health")async def health_check(): return {"status": "ok"}compose file fastapi: ... healthcheck: test: ["CM..

arXiv 2025. [Paper] [Github]Niklas Muennighoff, Zitong Yang, Weijia Shi, Xiang Lisa Li, Li Fei-Fei, Hannaneh Hajishirzi, Luke Zettlemoyer, Percy Liang, Emmanuel Candès, Tatsunori HashimotoStanford University | University of Washington | Allen Institute for AI | Contextual AI31 Jan 2025개요해당 논문은 Test-time scaling이라는 개념을 활용하여 언어 모델의 성능 향상시키는 방법을 탐구한다. 최근 OpenAI의 o1모델이 이 기술을 사용하여 뛰어난 성능을 보였으나, 구체적인 ..

🤔들어가기전에 알고가기1. DeepSeek-V3 개요DeepSeek-V3는 671B(6710억) 개의 총 파라미터를 가진 Mixture-of-Experts (MoE) 기반 대규모 언어 모델이다. 하지만 한 번의 토큰 예측 시 활성화되는 파라미터는 37B로 효율성을 극대화하였다.주요 특징:Multi-Head Latent Attention (MLA): 메모리 절약과 빠른 추론을 위한 새로운 주의(attention) 기법DeepSeekMoE with Auxiliary-Loss-Free Load Balancing: 부가적인 손실(auxiliary loss) 없이 부하 균형(load balancing)을 유지하는 새로운 MoE 아키텍처Multi-Token Prediction (MTP): 여러 개의 토큰을 한 번..

✅개요Phi-4 모델: 14억 파라미터의 언어 모델로, 데이터 품질에 중점을 둔 새로운 학습 방식을 적용.기존 Phi-3 모델의 구조를 기반으로 개발되었으나, 합성 데이터의 활용 및 사후 학습(post-training) 혁신을 통해 성능을 크게 개선.주요 목표: 추론 및 문제 해결 능력을 강화한 모델 제공.phi-4의 개발은 세 가지 핵심 기둥에 의해 진행됨.사전 훈련 및 중간 훈련을 위한 합성 데이터고품질 유기 데이터의 큐레이션 및 필터링SFT 데이터 세트의 새로운 개량된 버전과 핵심 토큰 검색을 기반으로 DPO 쌍을 생성하는 새로운 기술을 개발💡정리 비교 대상Phi-4, Phi-3, GPT-4o, GPT-4o-mini, Qwen 2.5, Llama-3.3결과Phi-4는 MATH(80.4), GPQ..

핵심 개념Graph RAG (Retrieval-Augmented Generation)대규모 언어 모델(LLM)이 전체 문서 집합에 대한 질문에 답변하기 위해, 지식 그래프를 생성하고 이를 활용해 질의 중심 요약(Query-Focused Summarization)을 수행하는 새로운 접근법기존 RAG의 한계지역적 텍스트 추출은 전체 문서 요약을 다루기에 충분하지 않음LLM의 컨텍스트 윈도우 크기 제한으로 인해 텍스트의 중요한 정보 손실제안된 해결책그래프 기반 지식 인덱스를 생성하고 커뮤니티 탐지 알고리즘(Leiden)을 적용해 효율적이고 종합적인 응답 제공문제 의식기존 RAG는 Chunk 단위로 전체 맥락을 가져오기 때문에, 전체 맥락을 가져오지 못 할 수도 있고, 전체 코퍼스에 대한 질의 중심의 추상적인 ..

윈도우(Host) WSL Docker 위와 같은 환경으로 웹 서버를 열어 통신을 하려고 서버를 열었지만, localhost:8888은 통신이 되지만, 내 아이피:8888은 통신이 안되는 현상을 겪었다. 도커 브릿지 문제인가 확인을 했지만 이상이 없었고 Docker IP:8888, WSL IP:8888 도 접속이 가능했다. 나중에 패킷을 분석해보니 윈도우(Host) WSL 이 통신이 안되고 있었다. 그러다가 포트를 8000번으로 바꿔서 통신이 되는걸 보고.. 아하 포트 포워딩을 안해줬구나 하고 깨달았다. 그래서 이 글은 윈도우 powershell 환경에서 wsl로 포트 포워딩을 하는 방법을 알려주는 글 이다.먼저 호스트에서 포트 포워딩 상태를 확인 해 보자netsh interface portproxy..