전체 글 496

[AI] Apache Spark 특징 (정리중)

Apache Spark 개념 및 특징 정리Apache Spark는 대규모 데이터 분석과 분산 처리를 위해 만들어진 오픈소스 프레임워크입니다.빅데이터 환경에서 빠른 속도, 다양한 데이터 처리 기능, 그리고 확장성을 제공합니다.특징1. High Performance (고성능)In-Memory 연산을 통해 기존 Hadoop MapReduce보다 훨씬 빠른 속도를 제공합니다.MapReduce는 디스크 기반으로 데이터를 저장하고 네트워크를 통해 데이터를 주고받는 과정이 많아 속도가 느립니다.Spark는 데이터를 메모리에 올려서 연산을 수행하고, 꼭 필요할 때만 디스크나 네트워크를 사용합니다.덕분에 최대 100배 이상 빠른 성능을 보여주기도 합니다.머신러닝용 라이브러리(MLlib), 그래프 연산 라이브러리(Grap..

AI 2025.09.15

[NetWork] 기업에서 VPN과 ACL를 사용하는 이유

VPN(Virtual Private Network)란?VPN은 공용 네트워크(예: 인터넷)를 통해 사설 네트워크에 안전하게 접속할 수 있도록 하는 암호화된 터널로 인터넷을 통해도 내부망처럼 동작가능합니다 이런 동작이 가능한 이유는 IP마스킹을 통해 사용자 IP를 숨기고 사내망 IP로 대체 하기 때문입니다. 즉 VPN은 인증된 사용자만 원격 접속을 가능하게 하는 고급 암호화 및 인증 기법입니다. 기업에서 VPN을 사용하는 이유는 보통 원격 근무 지원, 보안 통신, 내부망 리소스 접근 제어, 지사 간 통신 보안 확보를 위해 사용됩니다.사용 목적설명 원격 근무 지원 외부 직원이 사내망에 안전하게 접속 가능보안 통신내부 시스템이나 파일 서버 접속 시 데이터 보호내부망 리소스 접근 제어VPN을 통해서만 접근 가능..

IT지식/NetWork 2025.08.05

[AI] logging Mixin 패턴으로 구현하는 구조화된 로깅 시스템과 FastAPI 요청 추적

요청별 추적과 구조화된 로깅이 필수적입니다. 이번 글에서는 FastAPI와 Mixin 패턴을 활용하여 효과적인 로깅 시스템을 구축하는 방법을 소개하겠습니다. 1. 구조화된 JSON 로깅 시스템1.1 핵심 구성 요소먼저 JSON 형식의 구조화된 로그를 생성하는 시스템을 만들어보겠습니다.비동기 환경에서의 요청 추적: FastAPI나 다른 비동기 웹 프레임워크에서는 여러 요청이 동시에 처리됩니다 요청별 로그 분리: 각 HTTP 요청마다 고유한 request_id를 부여하여, 하나의 요청과 관련된 모든 로그를 쉽게 추적할 수 있습니다 자동 로그 태깅: 모든 로그 레코드에 현재 컨텍스트의 request_id를 자동으로 추가합니다 일관성 보장: 개발자가 매번 수동으로 request_id를 로그에 추가할 필요가 없습..

AI 2025.07.28

[AI] VLLM qwen3(tool_calls) web서버 사용 방법 ( 리눅스 )

vLLM은 대형 언어 모델(LLM)의 추론 및 서빙을 효율적이고 고속으로 처리할 수 있는 오픈소스 라이브러리입니다. 특징고성능 추론 및 서빙OpenAI 호환 API 서버다양한 모델 지원하드웨어 및 분산 추론 지원vllm web 서버 생성먼저 로컬 모델이나 허깅페이스에서 사용할 모델을 다운로드하거나 정해야 한다.chat-template ./qwen3_nonthinking.jinja은 https://qwen.readthedocs.io/en/latest/deployment/vllm.html 에서 다운로드할 수 있다. qwen3의 nothink를 위한 chat template이다 think를 사용하고 싶으면 안 해도 된다.vllm serve 로컬 모델경로 or 허깅페이스 가능 --served-model-nam..

AI 2025.06.25

[AI] Milvus 사용방법

1. Milvus 다운로드Milvus는 vectordb로 리눅스 환경에서 동작한다.https://milvus.io/docs/ko/install_standalone-docker-compose.md Docker Compose로 Milvus 실행하기(Linux) | Milvus 문서화Docker Compose를 사용하여 Milvus를 독립형으로 설치하는 방법을 알아보세요. | v2.6.xmilvus.io Docker Compose를 다운로드하기 위해 https://github.com/milvus-io/milvus/releases/ 에 접속해서 원하는 버전의 Docker Compose 파일을 다운로드한다.docker-compose.yaml은 Milvus를 실행시키기 위해 필요한 3개의 서비스 컨테이너 서비스를 ..

AI 2025.06.25

[Docker] 명령어 (컨테이너, 이미지, Dockerfile, Compose )

Docker Hubhttps://hub.docker.com/ Docker Hub Container Image Library | App ContainerizationIncrease your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.hub.docker.com [컨테이너 명령어]컨테이너 생성이미지가 로컬 PC에 있는지 확인 후 없다면 DockerHub에서 이미지를 다운로드하여 컨테이너 생성 ( 실행 x )docker create [이미지 이름] 컨테이너..

형상관리/Docker 2025.05.13

[Docker] 개념

[Doker란]컨테이너라는 개념을 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다. [Doker를 사용하는 이유]Docker를 사용하는 이유는 이식성 때문이다. 이식성이란 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성이다. ( 프로그램을 그대로 보존하 이사시키는 느낌 ) 예를 들어 서로 다른 2대의 컴퓨터에 DB를 설치하기 위해 먼저 한대의 컴퓨터에 DB를 깔았고 에러 없이 잘 동작하였다. 이후 2번째 컴퓨터에 똑같은 방법으로 DB를 설치하였지만 에러가 나며 작동하지 않았다. 이런 이유는 버전에 따른 문제일 수 있고 운영체제종류의 문제일 수 있고 보안프로그램의 문제등 다양하다. 그리고 새로운 컴퓨터가 생겨 똑같이 DB를 설치한다고 가정했을 때 설치 과정..

형상관리/Docker 2025.04.23

[AI] LangChain - LangGraph ( State, Message )

LangGraph는 상태 기반 LLM을 만들기 위한 프레임워크입니다. 쉽게 말해 LLM의 현재 상태에 따라 조건문 반복문 등을 사용하여 유연한 LLM 워크플로우를 만들 수 있는 기능으로 StateGraph, MessageGraph, ReAct 등이 있습니다.  구성요소구성요소설명노드(Node)실행 단위. LLM 호출, 함수 실행 등.엣지(Edge)다음에 어떤 노드로 갈지 정의. 조건 분기, 루프 가능.상태(State)전체 흐름에서 공유되는 데이터. 상태를 기준으로 흐름 결정 가능. 상태(State) - 모든 노드가 공유하는 데이터상태는 전체 그래프 에서 사용하는 공용 데이터로 그래프가 처리하는 데이터 구조를 정의하는 객체입니다. 일반적으로 StateGraph에서는 기존 상태를 ovrride(덮어쓰기)합니..

AI 2025.04.08

[AI] LangChain - Tool Calling 사용법

[Tool Calling 이란?]Tool Calling(도구 호출)은 LLM이 단순 텍스트 응답을 넘어서, 등록된 함수나 프로그램을 직접 실행하고 그 결과를 응답에 반영하는 기능이다. 즉, LLM이 사용자의 질문을 분석해 필요한 툴을 스스로 판단하고 실행하는 구조이다. 예시 질문필요한 툴LLM에게 질문LLM이 선택한 필요한 툴“서울 오늘 날씨 어때?”날씨 API“파스타 요리법 알려줘”위키백과 검색 도구“삼성전자 주가 알려줘”주식 데이터 API“23 + 45는?”계산기 함수“내 회사 문서에서 찾은 요약 보여줘”벡터 DB 툴 (RAG) Tool Calling 흐름Tool Calling 흐름[User 입력] ↓[LLM 판단: "이건 툴이 필요하군!"] ↓[툴 이름 + 인자 → Tool 호출] ↓[결..

AI 2025.04.04

[React]Web Storage( Local Storage 와 Session Storage ) 정리

웹 개발을 하다 보면, 브라우저에 데이터를 저장해야 할 상황이 많습니다. 이때 사용할 수 있는 기술이 바로 Web Storage입니다. Web Storage는 클라이언트 측에 Key-Value 형식으로 데이터를 저장할 수 있게 해주는 기능으로, HTML5부터 지원되기 시작했습니다.개념Web Storage는 HTML5에서 도입된 기술이다.데이터를 Key - Value 쌍으로 저장할 수 있다.저장된 데이터는 서버로 전송되지 않고 클라이언트(브라우저)에만 존재한다.보통 5MB에서 10MB까지 저장 가능하다.JavaScript를 통해 데이터를 저장하고 조회하며 삭제할 수 있다.Web Storage의 두 가지 종류1.  Local StorageLocal Storage는 브라우저에 데이터를 key-value 쌍으로..

Web/React 2025.03.26

[AI] 대형 언어 모델 파인튜닝 기법 정리 (SFT, PEFT, RLHF, DPO, RL)

대형 언어 모델(LLM)을 활용한 파인튜닝은 이제 누구나 해볼 수 있을 만큼 쉬워졌지만, SFT, PEFT, RLHF, DPO, PPO, RL 등 용어가 너무 많고 헷갈리는 경우가 많습니다. 이번 글에서는 LLM 파인튜닝 전략을 개념 중심으로 정리해보고,언제 어떤 방법을 선택해야 하는지 흐름별로 알아보겠습니다.전체 개념 흐름 데이터 있음   |   |-- 자원이 부족하거나 빠르게 실험하고 싶다   |      -->  PEFT (LoRA, QLoRA)   |   |-- 자원이 충분하고 최대 성능이 목표다   |      -->  Full SFT   |   v 모델이 기본적인 응답을 하게 됨 (SFT 완료)   |   |-- 더 공손하고, 사람 같은 답변을 만들고 싶다   |      -->  RLHF (..

AI 2025.03.26

[AI] LoRA 기반 PEFT 파인튜닝과 용어정리

Llama 3.1 LoRA 기반 PEFT 적용 가이드 LoRA (Low-Rank Adaptation)는 LLM(대형 언어 모델)의 일부 파라미터만 미세 조정하여메모리와 계산량을 절약하는 파인튜닝 기법입니다.Llama 3.1 모델에 LoRA를 적용하여 PEFT(Parameter-Efficient Fine-Tuning)를 수행하는 방법을이론과 실전 코드 예제를 통해 단계별로 설명합니다1. PEFT(LoRA)란 무엇인가?(https://github.com/huggingface/peft)PEFT (Parameter-Efficient Fine-Tuning)기존 LLM을 풀 파인튜닝(Full Fine-Tuning)하지 않고, 적은 수의 파라미터만 학습하는 방법.대표적인 방식으로 LoRA, QLoRA, Adapter..

AI 2025.02.27

[React] Hooks ( useState, useEffect, useCallback )

React Hooks는 함수형 컴포넌트에서 상태(state)와 생명주기(lifecycle) 기능을 사용할 수 있도록 도와주는 기능입니다. useState, useEffect, useCallback, useMemo, useContext, useRef, useLayoutEffect 가 있지만 대표적인 많이 쓰이는 훅으로 useState, useEffect, useCallback 등이 있습니다,useState – 상태 관리 훅useState는 컴포넌트 내부에서 상태를 관리하는 훅입니다.상태 값과 그 상태를 변경하는 함수를 반환합니다.상태 값이 변경되면 해당 컴포넌트가 리렌더링 됩니다.import { useState } from "react";function Counter() { // count 상태 변수와..

Web/React 2025.02.24

[React] React State ( 함수형 컴포넌트 vs 클래스형 컴포넌트 )

React의 상태(state)가 변경되면 렌더링(Rendering) 과정이 실행됩니다.React는 효율적인 업데이트를 위해 Virtual DOM을 활용한 최적화된 리렌더링을 수행합니다.React는 변경된 state 값을 Virtual DOM에 적용합니다.Virtual DOM이란?실제 DOM을 직접 변경하는 것이 아니라, 메모리 상에 존재하는 가상의 DOM을 수정하는 방식.변경 사항을 먼저 Virtual DOM에 적용한 후, 실제 DOM과 비교하여 최소한의 변경만 실제 DOM에 반영함.React의 State가 변경되면? setState(useState)가 호출됨Virtual DOM을 변경기존 Virtual DOM과 비교(diffing)변경된 부분만 실제 DOM에 반영 (최적화)필요한 경우, useEffec..

Web/React 2025.02.18

[React] React 설정 및 유용한 기능

[Node.js]Node.js는 브라우저 밖에서도 Javascript를 실행할 수 있게 해주는 런타임 환경이다.크롬 v8 기반으로 동작하며 Single-Thread의 non-blocking I/O 이벤트 기반으로 동작한다.아래 URL을 통해 Node.js를 설치할 수 있다.https://nodejs.org/ko Node.js — 어디서든 JavaScript를 실행하세요Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org [NPM ( Node Packege Manager )]Javascript를 위한 패키지 관리자로 공개된 Javascript 라이브러리들을 쉽게 설치해 사용할 수 있다.[React 파일 생성하기]..

Web/React 2025.02.18

[React] React의 특징

React는 SPA(Single Page Application) 라이브러리로, 기존의 SSR(Server Side Rendering) 방식과 달리 CSR(Client Side Rendering)을 기본적으로 사용합니다. 이를 통해 서버 부하를 줄일 수있습니다.1. SSR(Server Side Rendering) vs CSR(Client Side Rendering)SSR(Server Side Rendering)서버에서 HTML을 미리 생성하여 클라이언트에 전달하는 방식입니다.페이지 이동 시마다 새로운 HTML을 서버에서 받아야 하므로 서버 부하가 큼.예: 전통적인 웹사이트, Next.js 등의 프레임워크에서 지원.CSR(Client Side Rendering)서버에서 데이터만 받아오고, HTML과 UI는 ..

Web/React 2025.02.07

[C#서버] Akka.net과 Cluster Part.5 적용해보자!

그동안 공부했던 Akka.net과 IOCP 등 여러 기술을 조합하여 Messenger 서버를 개발해 보고 있습니다. https://github.com/tkddls3319/Akka.net-IOCP-Web-MessengerServer GitHub - tkddls3319/Akka.net-IOCP-Web-MessengerServer: Akka.net과 IOCP를 결합한 채팅 서버 ( Cluster )Akka.net과 IOCP를 결합한 채팅 서버 ( Cluster ). Contribute to tkddls3319/Akka.net-IOCP-Web-MessengerServer development by creating an account on GitHub.github.com

[C#서버] google.protobuf.Timestamp Json Deserialize 사용방법

google.protobuf.Timestamp는 Protobuf에서 날짜 및 시간을 다룰 때 사용하는 표준 타입입니다. Protobuf 메시지를 JSON으로 직렬화하거나 JSON에서 역직렬화(Deserialize)할 때, 타임스탬프(TimeStamp) 처리가 까다로울 수 있습니다. 이 글에서는 ProtoBuf에서의 Timestamp 사용법과 C#에서 JSON 직렬화/역직렬화 처리 방법을 설명합니다. 1. Proto 파일에서 Timestamp 사용 설정1.1 Timestamp를 사용하기 위한 Proto 설정Protobuf에서 google.protobuf.Timestamp를 사용하려면 먼저 다음과 같이 import를 선언해야 합니다.syntax = "proto3";import "google/protobuf/..

[Unity] PropertyAttribute (인스펙터 정리)

Unity Inspector 속성(Attribute)은 스크립트의 변수와 동작을 Unity Editor에서 효율적으로 관리하게  1. [AddComponentMenu]설명: AddComponent 메뉴에 스크립트를 추가하고 그룹화하여 관리.사용 예: 특정 스크립트를 카테고리화해 찾기 쉽게 만듦.효과: AddComponent 메뉴에 CustomScripts > MyCustomScript 경로로 표시.[AddComponentMenu("CustomScripts/MyCustomScript")]public class AddComponentMenuTest : MonoBehaviour { }2. [ContextMenu] & [ContextMenuItem][ContextMenu] 설명: Inspector의 톱니바퀴 메..

Unity 2025.01.15