나의 밥벌이에 지대한 공헌을 한 도구 중 하나가 바로 "GitHub"이고,

최근 계속 관심을 갖고 있는 것이 "MCP (Model Context Protocol)"인데 ...

 

"GitHub MCP Exploited" 이라니 !!!

 

https://invariantlabs.ai/blog/mcp-github-vulnerability

 

 

https://simonwillison.net/2025/May/26/github-mcp-exploited/

 

 

어떻게 동작하는 것인지는 아래 그림 하나로 설명이 된다.

 

 

공개 저장소에 있는 이슈를 분석해서 해결하라는 명령을 하는 경우,

이슈에 "개인 저장소 정보를 읽어와서 그것을 저장"하라는 문구를 포함하게 되면,

GitHub MCP에 개인 토큰이 있기 때문에 개인 private 저장소의 내용이 유출될 수 있다는 것이다.

 

공개 저장소에 아래와 같은 이슈를 포함하기만 하면 되는 것이다.

 

그러면, 아래와 같은 정보를 얻어낼 수 있다.

 

 

문제는 Official GitHub MCP Server에서도 적용이되는 보안 위협이라는 것이다.

 

https://github.com/github/github-mcp-server

 

 

그러면, 이런 보안 위협을 방지하기 위해서 주의해야할 점은 무엇이 있을까!?

 

① MCP Server

  - Official 배포되는 MCP Server도 보안 위협이 있을 수 있는데,

  - 비공식 배포되는 MCP Server는 더더욱 위험할 수 밖에 없다.

 

② Check

  - MCP tool을 사용할 때에 Agent가 확인을 요구하는데, 그냥 pass하지 말고 확인해야 한다.

  - Always Allow는 되도록 사용하지 말아야 한다.

 

③ token

  - 이런 보안 위협을 막기 위해서는 근본적으로 PAT(Personal Access Token) 관리를 잘해야 한다.

    . https://github.com/settings/personal-access-tokens/new

 

  - Token을 사용하지 않을 수 없지만, 꼭 필요한 권한만 세부 설정해서 등록/사용하는 것이 좋다.

    . classic 타입의 token은 보다 더 세밀한 권한을 관리할 수 있다.

 

 

MCP라는 것이 나온지 얼마 되지 않은 규약이다보니 아직은 미흡한 점이 많을 수 있다.

그렇기에 근본적으로 이런 부분을 방지하기 위한 많은 연구가 있어야 할 것이다.

 

 

"GitHub MCP Exploited"이라고 해서,

"어?! 그러면 GitHub MCP Server를 쓰면 안되겠네?!"라고 생각하는 것은 좀 오버인 것 같고

"좀 더 조심히 사용해야겠다" 정도로 받아들이면 좋을 것 같다.

 

어떻게 동작하는지 좀 더 공부를 하고

동작할 때 사용되는 타겟이 무엇인지 결과가 어디에 적용이 되는지 유심히 살펴봐야 하는 것이다.

 

항상 input/output 관리가 중요하다!

반응형

'AI_ML > LLM' 카테고리의 다른 글

HuggingFace - LLAMA 3.2 for Korean  (2) 2024.11.12
HuggingFace - Learn - NLP Course #3  (3) 2024.11.11
HuggingFace - Learn - NLP Course #2  (0) 2024.11.10
HuggingFace - Learn - NLP Course  (1) 2024.11.09
Gemini 잔소리꾼 만들기  (1) 2024.11.08

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

"박해선"님의 명작 도서, "혼자 공부하는 머신러닝+딥러닝"의 "개정판"이 나왔다 !!!

 

AI 관련하여 공부를 했던 사람들이라면 아마도 모두 가지고 있을 책이 아닐까 싶은데,

물론 나도 기존 도서를 가지고 있어서 비교 사진을 찍어봤다.

 

동그라미도 하나 추가되었고, 페이지도 더 많아진 새로운 개정판이다.

그래서인지 정가도 2.6만원에서 3.2만원으로 인상되었다. ㅋㅋㅋ

 

 

초판 발행 뒤, 4-5년 정도가 지났으니 물가 인상을 고려하면 정가 인상에 대해서도 충분히 이해가 간다!

벌써 4-5년이 흘렀다니... 처음 이 책으로 공부했던 때가 어제 같은데... 

 

이 책의 장점은 머신러닝에서부터 딥러닝까지 전반적인 사항을 모두 담고 있다는 것이다.

 

 

책에서도 말해주다 싶이, 반드시 순차적으로 공부해야하는 것은 아니다.

 

머신러닝에 대해서 공부하고 딥러닝을 살펴보는 것이 도움이 되기는 하지만,

필수는 아니기에 과감히 점프하고 딥러닝을 공부하는 것도 나쁘지는 않다.

 

 

이 책의 초판이 나오는 시점에서는 Tensorflow가 많이 사용될 때라 괜찮았지만,

최근에는 대부분 Pytorch를 많이 사용하기에 개정판에서 파이토치에 대한 내용을 추가해 준 것은 정말 반갑다.

 

혼공 시리즈의 책답게 동영상 강의도 멋지게 제공을 해준다.

- https://www.youtube.com/playlist?list=PLJN246lAkhQihHwcbrZp9uuwgxQen5HS-

 

 

큰 변화가 없는 챕터의 경우에는 기존 동영상 강의를 재활용하셨을거라 생각했는데, 전부 새로 등록하신 것 같다! 와우!

 

깃허브에 친절하게도 주피터노트북 파일들을 모두 등록해주셨다.

- https://github.com/rickiepark/hg-mldl2

 

"박해선"님의 블로그를 참고하면 좋다. 정오표도 확인할 수 있다.

- https://tensorflow.blog/hg-mldl2/

 

 

개인적으로 처음에 공부할 때에 이 책을 보고선 좀 당황한 적이 있었다.

다른 곳에서 설명하는 것들과는 조금 다른식으로 접근하거나 설명하는 것들이 있어서였다.

 

그래서 잠시 이 책을 끊고(?) 이렇게 저렇게 시간이 흘러

"혼공학습단"을 통해 다시 이 책을 공부해 보고자 시작하게 되었는데 !!!

 

머신러닝이나 딥러닝을 조금 공부하고 다시 이 책을 봤더니 감탄을 할 수 밖에 없었다.

아! 이래서 박해선님이 이 부분을 이렇게 설명을 하셨구나!

 

혼자 공부할 수 있도록 잘 정리되고 친절한 설명이 되어 있는 책이지만,

사실 이 책의 일부 챕터만 가지고도 책 한권이 나올 수가 있을만큼

크고 방대한 내용을 다루는 책이 바로 이 "혼공머신"이다.

 

그렇기에 이 책을 제대로 공부하기 위해서는 좀 더 꼼꼼하게 살펴보는 것을 권해본다.

 

이 책에 대해서 서평을 한 마디로 남겨 본다면,

"머신러닝, 딥러닝"을 공부해보고 싶다면 무조건 추천해드립니다!!!

반응형

이것 저것 살펴보다가 발견한 너무나 매력적인 제목

 

"내가 아는 최고의 개발자들이 공통적으로 가진 특성"

 

어?! 나는 그 특성을 얼마나 갖고 있을까? 하는 생각이 들면서 링크를 클릭하지 않을 수 없었다.

https://news.hada.io/topic?id=20244

 

언제나 그렇지만 이런 글들을 읽게 되면 다시 한 번 깨닫게 되는 것이 있다.

아! 결국은 내가 다 알고 있는 것이구나 😅

 

하지만, 진짜 찐!인 글들은 그 안에 디테일이 있다.

 

그리고, 오랜기간 기술 블로거 생활을 하고 있는 나이기에 느끼는 뿌듯함도 있었다!

"글을 쓸 것"

 

그리고, 중형차 한 대 값을 불태우며 늦깎이 대학원생 생활을 마쳤기에 또 한 번 느끼는 뿌듯함!

"배움을 멈추지 말 것"

 

명성을 쌓아야 한다는 것에도 백번 동감 한다.

어둠의 실력자는 멋있어 보이지만, 손 발이 고생한다!

 

이 아티클의 원본은 다음과 같다.

https://endler.dev/2025/best-programmers/

 

 

이 글은 저자가 말한 바와 같이

훌륭한 개발자들을 관찰해보니 이런 공통적인 특징들이 보이더라...라는 내용이다.

 

그러면 반대로

이런 특성들을 갖기 위해 노력하게 되면 훌륭한 개발자가 될 수 있을까?

 

음... 그래도 학창 생활 이후 필드에서 나름 20년 넘게 S/W개발 이라는 직무로 살아온 입장에서

어느정도 확신을 갖고 "훌륭한 개발자가 될 수 있다!"라고 말할 수 있다.

 

앞으로 누가 나에게 좋은 개발자가 되려면 어떻게 해야해요?라고 물어보면

여기에서 언급된 내용들을 말해야겠다.

 

반응형

MCP에 대해서 개괄적인 부분을 알고 싶으면 지난 포스팅을 참고하세요.

- MCP (Model Context Protocol) Overview

 

이번 포스팅에서는 MCP라는 것을 어떻게 사용하는지 살짝 체험 해보고자 한다.

 

 

VSCode(Visual Studio Code)에 GitHub Copilot까지는 등록된 환경에서 시작하겠다.

 

오른쪽 채팅창을 잘 살펴보면 3가지 모드를 선택할 수 있는 것을 알 수 있다.

 

Ask / Edit / Agent 3가지 모드가 있는데, 지금 우리가 관심있는 것은 Agent 모드이다.

 

사실 Edit 모드와 Agent 모드는 비슷 인터페이스를 보인다.

하지만, 왼쪽 밑을 보면 살짝 차이가 있는 부분을 발견할 수 있다.

 

Agent 모드에 대한 자세한 설명은 Visual Studio Code의 문서를 참고하면 된다. (GitHub Copilot 설명을?)

- https://code.visualstudio.com/docs/copilot/chat/chat-agent-mode

 

Agent 모드에서도 Edit 모드와 거의 동일하게 동작한다.

 

Agent 모드이기 때문에 채팅창을 벗어나 터미널 명령어들을 사용할 수도 있다.

 

채팅창에서만 동작한 것이 아니라 실제로 'Copilot' 터미널이 열리면서 스스로 동작을 한 것이다.

 

하지만, GitHub 관련한 동작을 시키면 못한다. (당연한 이야기!?)

 

GitHub 관련된 일도 시킬 수 있으면 좋을텐데....

 

이럴 때 필요한 것이 MCP Server 이다 !!!

 

GitHub에서 공식으로 공개한 GitHub MCP Server를 찾아보자.

https://github.com/github/github-mcp-server

 

사전에 준비해야할 사항들이 보인다.

 

Docker를 사용할 수 있는 환경이어야 하는데, 이미 설치되어 있다 ^^

 

GitHub Personal Access Token도 있어야 한다니,

GitHub에 접속해서 내 token을 미리 생성하고 복사해 두자.

 

이제 GitHub MCP Server를 설치하면 되는데,

GitHub 페이지에서 보이는 Badge를 클릭하면 바로 설치가 되기는 하지만... 직접 설치해보자.

 

설치 방법을 잘 살펴보자.

https://github.com/github/github-mcp-server?tab=readme-ov-file#installation

 

VSCode에서 "Ctrl + Shift + P" 단축키를 눌러서 나오는 화면에서

"Preferences: Open User Settings (JSON)"를 선택하자.

 

편집탭에 "settings.json" 파일이 열려있을텐데,

GitHub Installation 부분에 나와있는 json 내역을 추가해주면 된다. (기존 내용이 있으면 그 안에 덧붙이기)

 

그리고 저장을 하면 Copilot 채팅창의 왼쪽 밑에 뭔가 변화가 보일 것이다.

 

그리고 Personal Access Token 값을 넣으라는 창이 나타날 것이다.

 

미리 복사해둔 내용을 붙여넣기 하고 엔터를 치면 된다.

그러면, 도구 정보를 잘 읽어온 것을 볼 수 있을 것이다.

 

무려 30개의 도구를 읽어온 것이 보일텐데, 어떤 도구들이 있는지 궁금하면 클릭해보면 된다.

 

그러면 이제 GitHub MCP Server를 활용하는 사례를 진행해보자.

 

github.com의 내 정보를 알려달라고 했더니, "get_me"라는 도구를 찾아서 사용해도 되는지를 묻는다.

 

이슈 정보를 불러오게 할 수도 있다.

 

MCP Server는 어디에 있는 것일까?

 

내 local pc에 docker가 하나 돌고 있는 것을 확인할 수 있다.

뭔가 기분 나쁨?!

 

나중에 이거 뒤처리 내가 해야할 것 같은데!?

반응형

최근 너무나 핫한 MCP에 대해서 알아보자.

 

구글 트렌드를 보면 알겠지만, 인기가 아주 급성장을 했다.

그것도 엄청 짧은 시간에 확~

 

MCP는 2024년 11월 26일에 ANTHROPIC에서 첫 발표를 했다.

- https://www.anthropic.com/news/model-context-protocol

 

CURSOR.AI에서 지원을 하기로 하면서 인기를 얻다가

Sam Altman이 2025년 3월 27일 X.com에서

MCP 지원을 한다는 메시지를 남긴 이후 정말 급격히 각광을 받기 시작했다.

 

 

Model Context Protocol(MCP)는

AI Agent가 외부의 여러 도구나 데이터들을 연결하기 위한 표준 프로토콜이다.

https://norahsakal.com/blog/mcp-vs-api-model-context-protocol-explained/

 

여러 H/W들을 지원하기 위한 HAL(Hardware Abastract Layer)과 같은 역할이라고 보면 된다.

아니면, 위의 그림처럼 USB-C 표준 프로토콜 처럼 생각하면 된다.

 

 

MCP의 아키텍처는는 아래와 같다.

https://modelcontextprotocol.io/introduction#general-architecture

 

중요한 개념은 볼드로 강조했다.

 

 MCP Hosts

    : Programs like Claude Desktop, IDEs, or AI tools that want to access data through MCP


 MCP Clients

    : Protocol clients that maintain 1:1 connections with servers


 MCP Servers

    : Lightweight programs that each expose specific capabilities through the standardized Model Context Protocol


 Local Data Sources

    : Your computer’s files, databases, and services that MCP servers can securely access


 Remote Services

    : External systems available over the internet (e.g., through APIs) that MCP servers can connect to

 

 

그래서, 결국 정리하자면 다음과 같은 문장으로 MCP를 설명할 수 있다.

 

" Host가 시키면, Client는 전달하고, Server는 수행한다.

 

 

MCP는 태어난지도 얼마 되지 않았고,

그렇기 때문에 아직 기술적 성숙도가 충분히 올라와 있지 않다.

 

그리고, 24년 11월 26일 최초 발표 이후, 25년 03월 26일에 업데이트가 이루어졌다.

아직 업데이트 된지가 얼마되지 않아 관련된 사항을 확인하기도 쉽지는 않다.

 

구글링된 결과들을 참고해도 좋긴 하지만, 공식 문서부터 확인하는 것을 강추 한다.

https://modelcontextprotocol.io/

 

샘플 코드 같은 공식적인 자료들도 아래 GitHub에서 확인을 하면 좋다.

- https://github.com/modelcontextprotocol

 

 

MCP Server들을 모아놓은 Marketplace는 아래 사이트들을 참조하면 좋다.

https://mcp.so/

 

- https://smithery.ai/

 

- https://mcpservers.org/

 

다음 포스팅에서는 간단한 활용법을 알아보도록 하겠다.

반응형

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

 

그렇지 않아도 최근에 LLM과 연관된 스터디를 하고 있던 중에 만나게 된 반가운 책

"NLP와 LLM 실전가이드"

 

 

원서의 제목은 "Mastering NLP from Foundations to LLMs"인데,

한글로 번역하자면... '기초부터 LLM까지, 자연어 처리 완전 정복!' 정도로 될 것 같다 ^^

 

여기서 또 하나 주목해야할 이름이 보인다. "박조은"

데이터분석, Kaggle, Python 같은 것들을 공부하신 분들이라면 한 번쯤은 들어보셨을 이름 ^^

그래서인지 아래와 같이 동영상 강의도 유튜브로 계속 올려주고 계신다. 와우~

 

 

그리고, 실습을 위한 노트북 파일도 새롭게 손봐서 따로 올려주셨다.

- https://github.com/corazzon/Mastering-NLP-from-Foundations-to-LLMs

 

 

원래 제공하는 실습 파일과 비교해보는 것도 재미(?)가 있을 수 있다.

 

 

위에서 볼 수 있는 원서의 표지 그림을 보면 알겠지만

이 책의 본질은 NLP(자연어 처리) 책이다.

그 기반이 되는 수학적인 요소들을 포함해 LLM까지 언급하고 있는 것이다.

 

 

책에서는 "대상 독자"를 아래와 같이 말하고 있다.

 

 

내가 생각했을 때에는 "NLP(자연어 처리)와 관련된 전체적인 내용을 훑어보고 싶은 사람"이라고 말해야 하지 않나 싶다.

 

이 책의 목차는 다음과 같다.

 

CHAPTER   1   자연어 처리 개요 살펴보기
CHAPTER   2   머신러닝과 자연어 처리를 위한 선형대수, 확률, 통계 마스터하기
CHAPTER   3   자연어 처리에서 머신러닝 잠재력 발휘하기
CHAPTER   4   자연어 처리 성능을 위한 텍스트 전처리 과정 최적화
CHAPTER   5   텍스트 분류 강화: 전통적인 머신러닝 기법 활용하기
CHAPTER   6   텍스트 분류의 재해석: 딥러닝 언어 모델 깊게 탐구하기
CHAPTER   7   대규모 언어 모델 이해하기
CHAPTER   8   대규모 언어 모델의 잠재력을 끌어내는 RAG 활용 방법
CHAPTER   9   대규모 언어 모델이 주도하는 고급 응용 프로그램 및 혁신의 최전선
CHAPTER 10   대규모 언어 모델과 인공지능이 주도하는 과거, 현재, 미래 트렌드 분석
CHAPTER 11   세계적 전문가들이 바라본 산업의 현재와 미래

 

전체 목차와 함께 이 책의 쪽수 424쪽인 것을 보면 알겠지만

"기초 수학부터 실전 AI 문제 해결까지" 살펴볼 수 있는 책인 것은 맞지만

깊이 있게까지 살펴보려면 다른 자료들을 더 많이 찾아봐야할 것이다.

 

기초 수학부터 언급한다고 하여 좋아할 사람도 있고, 싫어할 사람도 있을텐데....

그냥 말 그대로 한 번 쭉 훑어보고 지나가는 수준의 수학이기 때문에

너무 큰 기대도 너무 큰 걱정도 할 필요는 없을 것 같다.


이 책은 원서 제목 그대로가 딱 적당한 제목인 것 같다.

 

"Mastering NLP from Foundations to LLMs"

(기초부터 LLM까지, 자연어 처리 완전 정복!)

반응형

Windows 환경에서 NVIDIA 그래픽카드의 드라이버 및

AI 공부를 위한 CUDA, cuDNN을 설치하는 과정을 알아보고자 한다.

 

① 그래픽 카드 확인

GPU-Z 유틸리티를 활용해 내가 갖고 있는 그래픽카드를 확인해보자.

- https://www.whatwant.com/entry/GPU-Z

 

 

② 드라이버 설치

확인한 정보를 바탕으로 나에게 적합한 드라이버를 선택해서 설치해보자.

https://www.nvidia.com/ko-kr/drivers/

 

 

다운로드 받아서 잘 설치 진행하면 된다.

 

 

 

③ PyTorch 확인

CUDA 등이 필요한 이유는 AI 관련된 뭔가를 실습해보기 위해서일테고,

그 중 가장 대표적인 라이브러리가 바로 PyTorch 일 것이다.

 

설치하고자 하는 PyTorch에 맞춰서 CUDA 버전을 확인해보자.

https://pytorch.org/

 

 

CUDA 12.6 버전을 선택했다면,

CUDA 버전에 맞춰 PyTorch를 설치하도록 해야 한다.

 

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

 

 

 

④ CUDA 버전 확인

그런데, 내가 가지고 있는 그래픽카드에서 CUDA 12.6 버전을 지원할까?

 

일단, 그래픽카드 종류에 따라 호환되는 버전을 확인해보자.

https://developer.nvidia.com/cuda-gpus

 

 

어?! 내 그래픽카드는 안보인다! 😅

위키피디아에서 확인해보자.

https://en.wikipedia.org/wiki/CUDA

 

 

7.5 버전이 호환되네!?

그러면, CUDA 버전은 어디까지 쓸 수 있을까?

https://en.wikipedia.org/wiki/CUDA

 

 

오! 다행히 최신 버전까지 모두 호환된다 !!!

CUDA 12.6 사용하는데, 아무런 문제가 없다.

 

 

⑤ CUDA 설치

원하는 버전을 골라서 다운로드 받아 설치하면 된다.

https://developer.nvidia.com/cuda-toolkit-archive

 

 

각자 환경에 맞춰서 잘 선택해서 다운로드 받으면 된다.

 

 

예전에는 직접 설정을 했어야 했던 것 같은데, 지금은 환경 변수에 알아서 잘 셋팅 되는 것 같다.

 

 

CUDA_PATH 부분을 살펴보면 된다.

 

 

 

⑥ cuDNN 설치

설치한 CUDA 버전을 기준으로 cuDNN 버전을 골라서 설치하면 된다.

https://developer.nvidia.com/rdp/cudnn-archive

 

NVIDIA Developer 사이트에 가입이 필요하다. 딱히 손해볼 것 없으니 가입 후 진행하면 된다.

 

 

다운로드 받으면 zip 압축 파일이 보일 것이고,

일단 압축을 풀어주면 된다.

 

 

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6

경로 밑에 저 압축을 풀어서 나온 bin, include, lib 디렉토리들을 그냥 덮어 쓰기로 복사해서 넣어주면 된다.

 

 

기존에 이미 경로가 있을텐데, 동일 이름의 디렉토리에 파일들을 추가하는 개념이다.

 

 

⑦ 테스트

잘 설치가 되었는지 확인을 해보자.

 

먼저, Python 환경이 필요하니 Python 설치부터 진행해야 한다.

- https://www.whatwant.com/entry/Python-397-Windows-10

 

좀 더 편한 개발환경을 위해 VSCode를 설치해보자.

- https://code.visualstudio.com/

 

CUDA 테스트를 위한 가상 환경을 만들어서 진행해보자.

 

> python -m venv .venv

> .venv/Scripts\activate.bat

 

PyTorch 라이브러리 설치는 다음과 같이 하면 된다.

 

> pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

 

VSCode 터미널에서 실행해본 결과는 아래와 같다.

 

 

설치 중간에 WSL 관련해서 아래와 같은 메시지가 나올 수도 있다.

 

 

설치가 잘 되었으면

아래와 같이 import torch 해서 아래와 같이 동작을 확인해볼 수 있다.

 

 

그리고 당연히 드라이버 등이 잘 설치되었기에 nvidia-smi 실행 결과도 볼 수 있다.

 

 

이제 뭔가 환경이 준비 되었다!!!

 

반응형

AI Model 관련하여 공부/실습을 하기 위해서는 GPU 환경이 필요하다.

그리고, 주로 Linux 기반의 환경을 선호한다.

 

문제는 쓸만한 그래픽 카드가 달려있는 PC가

게임 등을 위해서 주로 Windows 환경이라는 것이다.

 

개인적으로 개발환경으로서 Windows는 선호하지 않지만

GPU가 필요한 개발환경이 필요하기에

어쩔 수 없이 Windows 환경을 꾸며야하는 상황이 생긴 것이다.

 

일단 내가 갖고 있는 그래픽 카드 정보를 확인하는 것이 필요한데,

이를 간단하게 살펴볼 수 있는 도구가 있다.

- https://www.techpowerup.com/download/techpowerup-gpu-z/

 

 

CPU 정보를 알려주는 CPU-Z 처럼

GPU 정보를 알려주는 GPU-Z 유틸리티가 있는 것이다.

 

설치 후 실행해보면...

내가 갖고 있는 미천한 그래픽 카드의 정보는 다음과 같다.

 

 

간단하게 포스팅 완료~

반응형

+ Recent posts