분류 전체보기 170

ROS2 Humble + MoveIt2로 Doosan E0509 좌표 시퀀스 이동 만들기 (PyQt5 GUI 포함)

한 줄 요약ROS2 Humble 환경에서 Doosan E0509 + MoveIt2를 사용해 입력한 목표 좌표들을 순차 이동시키고, /assignment/status 커스텀 메시지로 상태를 통합해 PyQt5 GUI에서 실시간 모니터링/정지까지 구현했다.1. 요구사항 정리목표 좌표(x,y,z) 1개 이상 입력ABS/REL 모드 선택vel/acc scaling 반영PyQt5 GUI(코드 UI), 버튼 동작은 별도 스레드연결 상태 / 동작 상태 / 로그 / joint / EE pose 표시2. 전체 구성(아키텍처)MoveIt2: /move_action (MoveGroup action)ros2_control: dsr_moveit_controller (FollowJointTrajectory)내 노드movegroup..

해외 축구 뉴스를 Claude AI로 자동 요약하는 서비스 만들기

⚽ 해외 축구 뉴스를 Claude AI로 자동 요약하는 서비스 만들기Node.js + TypeScript + Claude API로 RSS 수집 → AI 요약 → 대시보드까지 풀스택 개발💡 프로젝트 개요해외 축구 뉴스를 매일 챙겨보는데, 영어 기사를 하나하나 읽기가 번거로웠습니다. BBC Sport, ESPN, Goal.com 등의 RSS 피드를 자동으로 수집하고, Claude AI가 한국어로 요약해주는 서비스를 만들었습니다.🎯 목표RSS 피드에서 최신 축구 뉴스 자동 수집기사 본문 크롤링Claude AI로 한국어 요약 + 카테고리 분류웹 대시보드에서 보기 좋게 표시🛠 기술 스택Runtime: Node.js + TypeScript서버: Express.jsDB: SQLite (better-sqlite3..

OpenCode, oh-my-opencode 설치 및 사용 가이드

🧩 OpenCode(opencode) 설치 및 사용 가이드 (macOS / Windows)macOS 및 Windows 환경에서 OpenCode(opencode)를 설치하고Gemini / Claude 기반으로 정상 사용하기까지의 전체 과정 정리1️⃣ Node.js 설치 (공통)📌 목적opencode는 Node.js 기반 CLI 도구Node.js 필수✅ 설치공식 사이트👉 https://nodejs.org/ko/downloadLTS 버전 권장✅ 설치 확인 node -v npm -v 버전 출력 시 정상 설치 완료2️⃣ OpenCode(opencode) 설치🔹 OS별 차이OS설치 방식macOSHomebrewWindowsnpm (global)✅ macOS 설치 (Homebrew) brew install op..

벡터 데이터베이스

1. 벡터 데이터베이스벡터 데이터베이스(Vector Database)는 텍스트, 이미지, 오디오와 같은 데이터를 고차원 벡터 형태로 변환해 저장하고, 이 벡터 간의 유사도를 빠르게 검색할 수 있도록 최적화된 데이터베이스입니다. 일반적인 관계형 데이터베이스가 정확한 값 기반 검색(SQL 쿼리 등)에 적합하다면, 벡터 데이터베이스는 의미적 유사성(semantic similarity)에 기반한 검색을 지원하여 예를 들어 "강아지"와 "개"처럼 다른 표현이라도 비슷한 의미의 데이터를 찾아낼 수 있습니다. 이를 위해 코사인 유사도, 내적(dot product), 유클리드 거리와 같은 수학적 거리 계산을 활용하며, 대규모 임베딩(embedding) 데이터를 효율적으로 관리하고 검색할 수 있어 추천 시스템, 검색 엔..

랭그래프 Reflection

1. ReflectionReflection은 에이전트가 스스로 결과를 평가·비판 한 뒤 그 피드백을 상태(state)에 기록하고, 필요하면 수정 루프로 되돌아가 답을 개선하는 설계 패턴입니다. 보통 “작성 노드(답 생성) → 리플렉션 노드(자기평가) → 라우팅(조건부 엣지)”로 구성되며, 리플렉션 노드는 품질 기준(예: 정확성, 근거, 형식)을 점수·코멘트(score, critique)로 남깁니다. 라우터는 이 정보를 읽어 임계값 미달이면 작성 노드로 되감기, 충족하면 종료 노드로 이동합니다. 무한 루프를 막기 위해 max_iters 같은 반복 한도를 두며, 툴 호출과는 별개로 LLM의 자기검토 능력을 활용해 코드 생성, 질의응답, 체인드 리저닝 등의 정확도·일관성을 높이는 데 쓰입니다. import g..

랭그래프를 이용한 간단한 챗봇

1. Tool Calling AgentTool Calling Agent는 자신이 가진 지식만 사용하는 것이 아니라, 외부 도구(API, 데이터베이스, 코드 실행기 등)를 호출해 문제를 해결하는 에이전트입니다. 사용자의 질문을 이해한 뒤 필요한 경우 적절한 툴을 선택하고, 입력값을 구성해 호출하며, 반환된 결과를 다시 가공해 최종 답변을 만듭니다. 쉽게 말해, 단순히 대화만 하는 AI가 아니라 “필요할 때 계산기, 검색엔진, 데이터 조회 도구 같은 도구를 직접 쓸 수 있는 AI”가 Tool Calling Agent입니다. 2. 웹 검색을 하는 챗봇1. TavilyTavily는 웹을 실시간으로 검색해 AI가 최신·정확한 정보를 답변할 수 있도록 돕는 AI용 검색·브라우징 API 플랫폼입니다. pip ins..

랭그래프 기초

1. 그래프의 상태 업데이트HumanMessage : 사용자(사람)의 메시지AIMessage : AI(LLM)의 메시지AnyMessage : HumanMessage, AIMessage를 포함하는 메시지!pip install langgraph from langchain_core.messages import AnyMessagefrom typing_extensions import TypedDictclass State(TypedDict): messages: list[AnyMessage] extra_field: int from langchain_core.messages import AIMessagedef node(state: State): messages = state["messages"] ..

랭그래프

1. 랭그래프랭그래프(LangGraph)는 LangChain 생태계에서 에이전트나 RAG 시스템을 단계별로 구성하고 실행할 수 있게 해주는 그래프 기반 오케스트레이션 프레임워크입니다. 기존 RAG가 직선형 파이프라인이었다면, 랭그래프는 노드(작업 단위)와 엣지(흐름)를 그래프 형태로 정의해 분기, 반복, 조건 처리, 에이전트 루프 같은 복잡한 흐름을 명확하게 표현하고 실행할 수 있습니다. 이를 통해 “검색 → 답변 생성 → 자기평가 → 재검색” 같은 Agentic RAG 워크플로우를 안정적으로 설계·관리할 수 있으며, 디버깅과 모니터링도 쉬워집니다. 그래프 구조그래프 구조(Graph Structure)는 객체(노드, vertex)와 그 객체들을 잇는 관계(간선, edge)로 표현되는 데이터 구조입니다. ..

AI Agent

1. AI AgentAI Agent는 환경으로부터 정보를 지각(Perception)하고, 주어진 목표를 달성하기 위해 의사결정(Decision Making)을 거쳐 적절한 행동(Action)을 수행하는 지능형 주체입니다. 단순히 입력에 반응하는 프로그램과 달리, AI Agent는 데이터와 경험을 바탕으로 학습하며 상황에 맞게 적응할 수 있습니다. 이를 위해 텍스트·이미지·음성 등을 동시에 이해하는 멀티모달 모델, 외부 지식을 검색해 활용하는 RAG 구조, 다양한 도구와 시스템과 연결해 실행 능력을 확장하는 MCP 같은 기술이 결합되어 더욱 강력한 에이전트로 발전합니다. 결국 AI Agent는 환경과 상호작용하며 목표를 수행하는 인공지능 시스템의 핵심 개념이라고 할 수 있습니다. RAGRAG(Retriev..

수화 인식 데이터

1. 동영상 데이터컴퓨터 비전에서 동영상 데이터는 연속된 이미지 프레임들의 집합으로, 단순히 공간적 정보(픽셀, 객체의 위치, 형태 등)뿐만 아니라 시간에 따른 변화(움직임, 동작, 상호작용)를 함께 포함한다는 점에서 정적인 이미지와 구별됩니다. 이러한 시공간적 특성을 활용하여 객체 추적, 행동 인식, 장면 이해, 비디오 요약 등의 다양한 응용이 가능하며, 처리 과정에서는 프레임 간 상관관계와 움직임 정보를 효과적으로 추출하는 것이 핵심 과제입니다. 2. 동영상 분석 기법1. 시계열 분석 (3D CNN)시계열 분석에서 사용하는 3D CNN은 동영상 데이터를 단순히 독립된 이미지 프레임으로 보지 않고, 공간(가로·세로) + 시간 축(프레임 순서)을 함께 고려하여 특징을 추출하는 방법입니다. 즉, 2D C..