LLM / RAG란?
·
CS(ComputerScience)
지난 월례조회에서 진행된 AI 기술 강의에서 LLM과 RAG라는 용어를 처음 접했다. 강의를 듣는 동안 이 기술들이 우리가 일상에서 사용하는 ChatGPT나 Claude 같은 AI 서비스의 핵심이라는 점이 흥미로웠다. 특히 최근 화제가 되고 있는 MCP 기술까지 알게 되면서, 이 세 기술이 어떻게 연결되어 있는지 더 자세히 알아보고 싶어 이 글을 작성한다.LLM: 대규모 언어 모델의 이해정의와 특징LLM(Large Language Model)은 수십억에서 수조 개의 매개변수를 가진 인공신경망 모델이다. 이 모델들은 인터넷상의 텍스트 데이터, 도서, 논문 등 방대한 양의 언어 자료를 학습하여 인간 수준의 언어 이해와 생성 능력을 보유한다. Untitled by 유레이나 (@zdixexqp-the-..
MCP(Model Context Protocol)란?
·
CS(ComputerScience)
최근 회사 월례조회시간에 진행된 기술 강의에서 MCP(Model Context Protocol)라는 흥미로운 개념을 접하게 되었다. 강의에서는 Azure Container Apps와 Node.js/TypeScript를 활용한 일정관리 MCP 구현 사례와 날씨 정보를 제공하는 MCP 예시를 통해 이 기술의 실용성을 확인할 수 있었다. 이에 MCP에 대한 더 깊은 이해를 위해 상세한 내용을 정리해보고자 한다.❓MCP란 무엇인가MCP(Model Context Protocol)는 AI 모델이 외부 데이터 소스와 안전하고 효율적으로 상호작용할 수 있도록 하는 표준화된 프로토콜이다. AI와 외부 프로그램이나 데이터베이스를 연결해주는 다리 역할을 한다. Claude와 같은 대화형 AI가 실시간 정보에 접근하고, 특정..
클로저(Closure)란 무엇일까? – 함수가 기억하는 환경
·
CS(ComputerScience)
어제 업무 시간 중 상사들끼리 “클로저가 뭐냐”는 이야기를 듣고,나는 자연스럽게 클로저라는 개념을 알아보게 되었다.프로그래밍을 하면서 자주 접하지만, 막상 이해하기 어려운 개념이 바로 클로저이다.1. 클로저란 무엇인가?클로저(Closure)란, 함수와 그 함수가 선언될 당시의 환경(변수들)을 함께 기억하는 구조이다.즉, 함수가 실행될 때 사라져야 할 외부 변수들을 계속 접근할 수 있도록 유지하는 기능이다.2. 클로저를 비유로 이해하기외부 함수 → 부모 집내부 함수 → 자식부모가 집을 떠나도, 자식이 부모 집의 물건(변수)을 계속 사용할 수 있는 구조이다.부모 집 = 외부 함수의 스코프자식 = 내부 함수(클로저)집의 물건 = 외부 함수의 변수이 비유를 통해 클로저가 함수가 외부 환경을 기억할 수 있는 이유..
[근무중 문제해결] 테스트 서버는 정상인데 운영서버는 느리고, 외부망에선 타임아웃? — 오라클 쿼리 성능/환경 이슈 종합 트러블슈팅 (ps.힌트절 사용)
·
SQL
같은 쿼리/같은(표기상) 오라클 버전인데 테스트 서버 환경에서는 정상, 운영db(운영성 데이터 대량 보유) 환경에서는 특정 쿼리만 1분 이상 지연 또는 Timeout(500에러가 발생). 원인은 파서/옵티마이저 동작(실행계획) 차이와 데이터양이 운영서버 환경에서 더 많았고, 응급 해결은 인덱스 힌트 강제 사용이었다. 🧩 문제 상황1테스트 서버: 동일 쿼리 즉시 응답(정상)운영 서버: 동일 쿼리만 심각하게 느려지거나 타임아웃핵심 단서: WITH /* 이건 그냥 텍스트임 */ TEST AS (...) SELECT ... FROM TEST; 형태로 WITH 바로 뒤에 주석이 있었을 때테스트 서버: 정상 실행운영 서버: 실행 불가/오류 양상주석을 제거하면 운영서버에서도 실행은 되지만 매우 느림1-1. 1차 가..
[exbuilder6]데이터 셋 바인딩
·
카테고리 없음
바인딩 타겟: 어디(속성, 스타일 속성, 클래스)에 바인딩을 할 것인지, 어떤 속성에 바인딩을 할 것인지 지정속성:대상속성 - 일반 탭에서 스피커 모양의 아이템(속성)만 바인딩 타겟 가능스타일 속성: 대상속성-스타일 영역 지정바인딩 소스: 어디에서 가지고 온 값인지 바인딩 유형을 통해 지정 ->바인딩 유형데이터 맵바인딩데이터 셋 바인딩상대 컬럼 바인딩앱 속성 바인딩Assist 뷰의 출판된 속성에서 추가된 앱속성을 가짐.다국어 사전 바인딩익스프레션 바인딩
[자료구조&알고리즘] 최소비용신장트리(Prim, Kruskal, Dijkstra 알고리즘)
·
자료구조&알고리즘
: 무방향 가중치 그래프에서 신장 트리를 구성하는 간선들의 가중치 합이 최소인 신장 트리🧩프림 알고리즘 (Prim Algorithm)목적: 그래프의 모든 정점을 최소 비용으로 연결하는 최소 신장 트리(MST, Minimum Spanning Tree)를 찾는 것.적용 과정:임의의 시작 정점을 선택해 트리를 시작한다.현재 트리에 인접한 간선들 중에서 가중치가 가장 작은 간선을 선택한다.해당 간선의 반대편 정점을 트리에 추가한다.모든 정점이 포함될 때까지 2~3단계를 반복한다.초기 상태:임의의 시작 정점: 0방문한 정점: {0}후보 간선: 0에서 연결된 모든 간선들1단계: 첫 번째 간선 선택정점 0에서 연결된 간선들:(0,2): 가중치 7(0,1): 가중치 15(0,3): 가중치 9(0,4): 가중치 4 ←..
[자료구조&알고리즘] 트리(Tree)
·
자료구조&알고리즘
❓트리(Tree)란?트리는 계층적인 구조를 표현하는 데 사용되는 대표적인 자료구조로, 여러 노드(node)와 이들을 연결하는 간선(edge)로 이루어진 비선형 자료구조. 실제 나무를 거꾸로 놓은 것과 같은 형태를 가지며, 컴퓨터의 디렉토리 구조, 조직도, 데이터베이스 인덱스 등 다양한 분야에서 활용🧩트리의 구조와 기본 용어 A / | \ B C D /|\ / \ E F G H I노드(Node): 트리의 기본 단위로, 데이터(값)와 하위 노드에 대한 포인터를 가짐. (위 그림의 A~I)간선(Edge): 노드와 노드를 연결하는 선.루트 노드(Root Node): 트리의 최상위에 위치하며, 부모가 없는 노드. A가 루트 노드부모 노드(Parent Node): ..
[자료구조&알고리즘] 탐색(Search)
·
자료구조&알고리즘
탐색(검색) 알고리즘: 저장된 데이터 중 원하는 값을 찾는 방법1. 선형 탐색 (Linear Search, 순차 탐색)방법: 데이터의 처음부터 끝까지 하나씩 차례대로 비교하며 원하는 값을 찾는 방식특징: 정렬 여부와 상관없이 사용 가능, 구현이 단순하지만 데이터가 많을수록 비효율적시간 복잡도: O(n)적용: 정렬되지 않은 배열, 리스트 등예시[3][8][2][7][5] ↑ ↑ ↑ ↑ ↑(순서대로 비교)2. 이진 탐색 (Binary Search)방법: 정렬된 데이터에서 중간값과 비교하여 더 작으면 왼쪽, 더 크면 오른쪽으로 인덱스를 이용해 절반씩 범위를 줄여가며 찾는 방식특징: 정렬된 배열이나 리스트에서만 사용 가능, 매우 빠름시간 복잡도: O(log n)적용: 정렬된 배열, 리스트예시:배열: [1..
[자료구조&알고리즘] 정렬(Sort)
·
자료구조&알고리즘
자료구조에서 **정렬(Sorting)**이란, **데이터를 일정한 순서(예: 오름차순, 내림차순)**로 재배열하는 과정.정렬은 많은 알고리즘 문제의 기본 작업으로, 탐색, 데이터 분석, 최적화 등에 필수적📌 정렬의 목적데이터 검색 속도 향상 (예: 이진 탐색 가능)시각화, 출력 등에서 보기 좋게 정리중복 제거, 군집화 등 다양한 처리 전 단계로 사용🔷 1. 버블 정렬 (Bubble Sort)원리: 인접한 두 원소를 비교해서 큰 값을 뒤로 보내는 방식.시간 복잡도: O(n²)공간 복잡도: O(1)안정성: ✅ 안정 정렬특징:구현이 매우 간단함거의 정렬된 상태에서는 빠르게 끝남 (최선 O(n))성능은 매우 낮아 실전에서는 거의 사용하지 않음과정:1회전: [5, 2, 4, 3, 1] → [2, 5, 4, 3..
[Linux] 리눅스에서 자주 사용하는 파일 관련 명령어들을 기능과 사용법
·
Linux
🧷 nano – 간단한 텍스트 편집기역할: 터미널에서 직접 텍스트 파일을 작성하거나 수정할 수 있는 편집기입니다.형식:nano 파일명예시:→ intro.txt 파일을 열거나 새로 만듭니다.편집 후에는 Ctrl + O (저장), Enter, Ctrl + X (종료)로 마무리합니다.nano intro.txt주요 단축키:Ctrl + O : 저장 (Write Out)Ctrl + X : 종료 (Exit)Ctrl + K : 줄 삭제Ctrl + Shift + 6 (또는 Ctrl + ^)Ctrl + KCtrl + U : 붙여넣기Ctrl + W : 검색1.텍스트의 시작 부분으로 커서를 이동합니다. 2.Ctrl + Shift + 6 (또는 Ctrl + ^)을 눌러 선택을 시작합니다. 3.방향키(위, 아래, 왼쪽, 오른쪽..