"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다."https://www.hanbit.co.kr/books/ai-%EC%8B%9C%EB%8C%80%EC%9D%98-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-%EC%A0%84%EB%9E%B5?code=B9394344903 📌 이 책을 한 문장으로"엔지니어링은 단순히 코드를 구현하는 일이 아니라, 사용자의 문제를 발견하고 제품의 성공까지 연결하는 과정이라는 것을 알려주는 책."『AI 시대의 엔지니어링 전략』이라는 제목을 처음 봤을 때는 AI를 활용해 개발하는 방법이나, AI 시대에 개발자가 어떤 기술을 익혀야 하는지를 다루는 책이라고 생각했다.그런데 읽어보니 이 책에서 AI는 주제가 아니라 배경에 가..
MCP란 AI 애플리케이션이 외부의 데이터와 기능을 사용할 수 있도록 연결 방식을 표준화한 프로토콜이다.이번 글에서는 MCP가 왜 등장했는지부터 Host, Client, Server의 관계, 그리고 Tools, Resources, Prompts가 무엇인지까지 차근차근 정리해보려고 한다. 이 글은 MCP 26.07.28 프로토콜을 기준으로 정리했다. MCP는 빠르게 발전하고 있기 때문에 과거 문서나 예제를 볼 때는 사용 중인 프로토콜 버전을 함께 확인하는 것이 좋다. MCP의 필요성먼저 아주 간단한 상황을 하나 생각해보자. AI에게 다음과 같이 요청한다고 가정해보자. "내 캘린더에서 다음 주 일정을 찾아서 정리해줘."사람 입장에서는 간단한 요청처럼 보인다.하지만 LLM 자체는 내 Google Calenda..
aircloud 컨테이너에 ssh로 접속하여 영상 전처리 작업을 돌리던 중, SSH 연결이 반복적으로 끊기는 문제를 겪었다.에러 메시지는 다음과 같다. WebSocket closed: 1006.로그도 제대로 남지 않아 처음엔 막막했지만, 하나씩 단서를 좁혀가며 원인을 찾아낸 과정을 정리했다. 환경aircloud 컨테이너 (Ubuntu 24.04, RTX 4090, 16코어, 62GB RAM)SSH 접속 방식: CLI가 로컬에 터널을 열고(127.0.0.1:2222), 서버의 ssh-proxy와 WebSocket으로 연결한 뒤 그 위로 SSH를 태우는 구조VS Code Remote-SSH로 터널에 접속해서 개발작업 내용: ffmpeg 다수 + Python 전처리 스크립트를 동시 실행하는 영상 전처리일반적인..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." https://www.hanbit.co.kr/books/%ED%94%BC%EC%A7%80%EC%BB%AC-ai-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%84%A4%EA%B3%84?code=B5960109847 📌 이 책을 한 문장으로"로봇 만드는 법을 알려주는 책이 아니라, AI가 어떻게 '몸'을 얻는지를 알려주는 책."제목에 '시스템 설계'가 있어서 로봇공학 전공서를 예상하고 펼쳤는데, 1장부터 예상이 빗나갔다. 이 책은 챗GPT 이후 우리가 익숙해진 LLM과 VLM이 어떻게 VLA(Vision-Language-Action)로 넘어가고, 그 지능이 어떻게 실제 관절의 움직임으로 내려오는지를 따라가는 책이다.Say..
유튜브 video ID만 제공하는 학술 데이터셋의 영상 수천 개를 yt-dlp로 받다 보면 반드시 한 번은 만나게 되는 에러가 있다.ERROR: [youtube] xxxx: Sign in to confirm you're not a bot.Use --cookies-from-browser or --cookies for the authentication. See ...이 봇 확인 에러를 쿠키로 해결하는 과정을 정리했다. 환경은 macOS + 크롬 + yt-dlp 최신 버전 기준이다. 먼저 정확히 구분해야 할 것이 있다. yt-dlp 로그에는 "Sign in"이 들어간 비슷한 에러가 두 종류 나온다.# A. 영상이 비공개로 전환된 경우 — 대응 불가ERROR: [youtube] xxxx: Private vid..
상황feat/new-feature 브랜치에서 작업을 마치고 PR을 올렸는데 GitHub에서 Merge Conflict가 발생했다.그런데 이상한 점이 하나 있었다.이 브랜치는 새 기능(B)을 개발하기 위한 브랜치였는데, 충돌이 발생한 파일들은 전부 다른 기능(A) 과 관련된 파일들이었다.src/__init__.pysrc/a.pysrc/b.pysrc/c.pytests/d.py정작 내가 수정한 적도 없는 파일들인데, 왜 충돌이 발생한 걸까? 원인 파악1. 브랜치 커밋 구조 확인먼저 브랜치에 어떤 커밋이 있는지 확인했다.git log --oneline origin/main..feat/new-feature 결과는 다음과 같았다.abcdefg feat(feature-b): implement new feature ..
회사에서 "다운로드한 데이터셋 S3에 올려달라"라는 요청을 받고, S3가 뭔지부터 찾아보며 삽질한 기록을 남긴다. 나처럼 AWS를 처음 만지는 분들에게 또 까먹고 버벅거릴 미래의 나에게 도움이 되길 바라며 마주했던 모든 에러까지 전부 정리해 봤다. 0. 상황대용량 데이터셋(약 몇백기가, 파일 몇만개)을 로컬에 다운로드하고 있었는데, 이걸 회사 AWS S3에 올려달라는 요청을 받았다. 문제는 내가 S3를 한 번도 안 써봤다는 것...! 1. S3란 무엇인가s3는 용량 무제한 클라우드 외장하드 + 웹 API에 가깝다는 걸 알게 되었다.EC2 같은 서버처럼 안에서 프로그램이 돌아가는 게 아니라, 파일을 넣고(put) 꺼내는(get) 저장소다.요금은 서버처럼 "켜져 있는 시간"이 아니라 저장한 용량과 전송량 기..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다."https://www.hanbit.co.kr/store/books/look.php?p_code=B4003944332📌 이 책을 한 문장으로"랭체인으로 챗봇 만드는 법을 알려주는 책이 아니라, 그 챗봇이 왜 그렇게 동작하는지를 알려주는 책."제목에 '랭체인 & 랭그래프'가 큼지막하게 박혀 있어서 가벼운 실습서를 기대하고 펼쳤다가, 1장부터 한 대 맞는 느낌을 받았다. 이 책은 도구 사용법을 빠르게 훑는 책이 아니다. 오히려 절반 이상을 자연어 처리와 딥러닝의 기초 이론에 쏟는다. 토큰화, 임베딩에서 시작해 강화학습, RNN, LSTM, seq2seq, 어텐션을 거쳐 트랜스포머까지 차곡차곡 쌓아 올린 다음에야 비로소 랭체인과 랭그래프가 ..
tailscale은 무료 버전으로 사용하면 디바이스는 100대까지 사용가능하지만 등록된 디바이스에 초대할 수 있원은 최대 6명까지이다.최근에 무료 플랜으로 사용 가능한 최대 인원수인 6명이 꽉 찬 상황에서 특정 머신에 추가로 사람들이 접속을 할 수 있도록 해야 했다. 머신 탭에서 공유하고자 하는 머신의 우측에 있는 점 3개를 클릭하면 아래처럼 Share가 뜬다.Share를 클릭하면 해당 머신을 공유할 수 있는 링크를 생성할 수 있다.직접 머신을 공유하고자 하는 사람들의 메일 주소를 입력해서 링크를 전송할 수도 있고 Reusable link를 생성해서 생성된 링크를 공유해도 된다.링크를 전달받은 사용자들은 tailscale을 가입한 계정으로 꼭 해당 링크에 접근해야 한다.링크를 전달받은 사용자들이 초대 수..
Narrating the Video: Boosting Text-Video Retrieval via Comprehensive Utilization of Frame-Level Captions, Chan Hur et al., 2025 를 읽고 요약, 정리한 글입니다. ◼️ Abstract최근 텍스트-비디오 검색에서 비전-언어 모델이 생성한 추가 캡션을 활용하는 방식이 성능 향상에 효과적임이 드러났다. 그러나 기존 모델들은 비디오에 내재된 시간적 변화를 포함한 풍부한 의미를 제대로 포착하지 못했고, 생성 모델이 만들어낸 잘못된 정보가 부정확한 검색을 유발하는 문제가 있었다.이를 해결하기 위해 본 논문은 NarVid(Narrating the Video)라는 새로운 프레임워크를 제안한다. 이 프레임워크는 프레임 단..