566 posts

클로드 코드에서 MCP 서버 연동하기

클로드 코드는 파일 읽기/쓰기, Bash 명령어 실행, 코드 검색처럼 개발에 필요한 핵심 도구를 기본으로 갖추고 있습니다. 그런데 실제 개발 작업을 하다 보면 GitHub에서 이슈를 만들거나 데이터베이스 스키마를 확인하거나 웹에서 최신 문서를 검색해야 할 때가 있잖아요? 이럴 때 MCP(Model Context Protocol) 서버를 연결하면 클로드 코드의 능력을 크게 확장할 수 있습니다. MCP 서버를 한번 설정해두면 "GitHub 이슈 42번 내용 알려줘", "users 테이블 스키마 보여줘" 같은 자연어 요청만으로 외부 시스

GitHub CLI(gh) 사용법: 터미널에서 GitHub 200% 활용하기

GitHub에서 이슈를 확인하려고 브라우저를 열고, PR을 만들려고 또 브라우저를 열고... 터미널에서 코딩하다가 브라우저와 터미널 사이를 왔다 갔다 하는 게 은근히 번거롭지 않으셨나요? GitHub REST API를 curl로 직접 호출하는 방법도 있지만 URL과 헤더를 매번 타이핑하는 건 솔직히 고통스럽죠. 그래서 GitHub이 만든 게 바로 gh라는 공식 CLI 도구입니다. 터미널을 떠나지 않고도 이슈부터 PR, 릴리스까지 다 처리할 수 있어요. 이번 글에서는 gh CLI의 설치부터 실무에서 자주 쓰는 핵심 명령어까지 살펴보겠

클로드 코드: 터미널 기반 코딩 에이전트

우리는 지난 몇 년간 소프트웨어 개발 방식에 혁명적인 변화를 가져온 AI 도구들을 경험했습니다. 초기에는 ChatGPT가 생성해주는 코드를 IDE로 복붙하다가, 깃허브 Copilot이나 Cursor와 같은 도구들이 코딩을 도와주는 시대를 지나 이제 새로운 패러다임이 등장하고 있습니다. 바로 Anthropic이 선보인 CLI(명령줄 인터페이스) 기반의 AI 코딩 도구, 클로드 코드입니다. 단순한 코드 완성이 아닌, 작업 위임의 시대 클로드 코드는 단순히 코드를 완성해주거나 코드를 생성하는 도구를 넘어섭니다. 이 도구의 핵심에는 사용자

Rust 기초: Box로 힙에 데이터 저장하기

Rust에서 대부분의 값은 스택에 저장됩니다. 스택은 빠르고 효율적이지만 컴파일 시점에 크기를 알 수 있는 데이터만 다룰 수 있다는 제약이 있죠. 그런데 프로그래밍을 하다 보면 크기를 미리 알 수 없는 데이터를 다루거나 큰 데이터를 복사 없이 전달하고 싶을 때가 있습니다. 이럴 때 쓰는 게 바로 Box입니다. Box는 Rust에서 가장 단순하면서도 자주 쓰이는 스마트 포인터로, 데이터를 힙 메모리에 저장하고 그 포인터를 스택에 두는 방식으로 동작해요. 이 글에서는 Box가 무엇이고 언제 필요한지, 실전에서 어떻게 활용하는지 예제와

Vim 완벽 가이드: 키보드만으로 코딩하기

VS Code나 IntelliJ를 잘 쓰고 있었는데, 어느 날 서버에 SSH로 접속해서 파일을 수정할 일이 생겼습니다. vim config.yaml을 입력했더니 화면이 바뀌면서 커서가 깜빡이고 있어요. 키보드를 누르는데 글자가 입력이 안 됩니다. 아니, 입력되는 것 같기도 한데 이상한 동작을 하고 있어요. 끄고 싶은데 Ctrl+C도 안 먹히고, Ctrl+W를 눌렀더니 창이 닫히는 대신 뭔가 다른 일이 벌어집니다. 이 상황, 개발자라면 한 번쯤 겪어보셨을 거예요. 😅 "Vim 종료하는 법"은 Stack Overflow에서 200만

Rust 기초: Copy와 Clone 트레이트 이해하기

Rust에서 변수를 다른 변수에 할당하면 값이 복사될 때도 있고 소유권이 이동할 때도 있습니다. 정수는 let y = x; 해도 x를 계속 쓸 수 있는데, String은 같은 걸 하면 원래 변수를 못 쓰게 되죠. 이 차이를 결정하는 게 바로 Copy와 Clone 트레이트입니다. 둘 다 "값을 복사한다"는 점은 같지만, 동작 방식과 쓰임새가 꽤 다릅니다. 이 글에서는 Copy와 Clone이 각각 무엇이고, 어떤 관계이며, 실제로 어떻게 쓰는지 알아보겠습니다. 소유권과 빌림에서 다룬 이동(move)과 복사(copy) 개념을 알고 있으면

Model Context Protocol: AI 애플리케이션의 통신 표준

Chat GPT와 같은 대형 언어 모델(LLM)이 급속도로 발전하면서 이를 활용한 다양한 AI 에이전트 및 확장 서비스들이 등장하고 있습니다. 하지만 LLM은 학습된 시점의 데이터에 갇혀 실시간 정보에 접근하거나 외부 시스템과 상호작용하는 데 한계가 있습니다. 뿐만 아니라, 비지니스 도메인에 맞는 문맥(Context)에서 AI 애플리케이션이 작동하도록 하는 것은 여전히 큰 도전입니다. 이러한 LLM의 한계를 극복하고 AI의 잠재력을 최대한 발휘하기 위해 등장한 것이 바로 Model Context Protocol, 줄여서 MCP입니다

달레 블로그의 SEO 비법 🎯

달레 블로그의 SEO 비법 🎯 "달레님 블로그 글은 어떻게 항상 구글 검색 맨 위에 나오나요?" 참 자주 여쭤 보시는 질문인데, 사실 저도 깜짝 놀랄 때가 있습니다. "어라? 어떻게 내 글이 공식 문서 보다도 위에 있지?" 하는 순간이 있거든요. 😅 많은 분들이 제게 숨겨진 SEO(검색 엔진 최적화) 비법이 있을 거라 생각하시지만, 사실 제 블로그는 아주 기본적인 SEO 공식조차 거의 따르지 않고 있습니다. SEO 전문가들이 말하는 Best Practice인 사이트맵이나 RSS 피드도 없고, 키워드 검색을 위한 메타 태그도 크게

Mise: 통합 런타임 버전 관리 (끝판왕)

여러 프로그래밍 언어를 자유자재로 넘나드는 풀스택 개발자들에게는 다양한 런타임의 버전을 관리하는 게 쉽지 않죠? 대개는 Node.js는 nvm, Python은 pyenv, Java는 SDKMAN과 같은 런타임 매니저를 사용해서 버전을 관리하실 거예요. 하지만 이 역시도 프로그래밍 언어마다 관리 도구와 설정 파일이 달라서 정신이 혼미해질 때가 있죠. 😵‍💫 Mise는 이러한 런타임 버전 관리에 대한 고민에 해결해주는 끝판왕 도구인데요. Mise만 있으면 하나의 표준화된 방식으로 여러 프로그래밍 언어의 런타임 버전을 빠르고 간편하게

Rust 오류 자료형: thiserror 라이브러리 사용법

Rust는 명시적이고 안전한 오류 처리를 중시하는 프로그래밍 언어입니다. 대표적으로 Result<T, E> 타입을 통해 다양한 에러 상황을 타입 시스템으로 포착할 수 있죠. 하지만 실무에서 직접 오류 자료형을 정의하고 Error 트레이트를 구현하다 보면, 반복적인 보일러플레이트 코드 작성에 지치는 경우가 많습니다. 이럴 때 thiserror 라이브러리가 여러분의 구세주가 될 수 있습니다. Error 트레이트 우선 표준 라이브러리의 Error 트레이트를 직접 구현하는데 필요한 최소한의 코드를 보여드리겠습니다. 아래 Validation

Rust 데이터 직렬화: Serde 라이브러리 사용법

Rust는 시스템 프로그래밍 언어이기 때문에 데이터를 외부로 안전하게 내보내거나 받아오는 일이 많은데요. 이러한 데이터 직렬화/역직렬화를 위해서 사실상 표준처럼 사용되는 라이브러리가 Serde입니다. 거의 모든 Rust 프로젝트가 사용되는 크레이트(Crate)라고 봐도 과언이 아니죠. 이 글에서는 왜 Serde 라이브러를 어떻게 사용하는지 예제와 함께 살펴보겠습니다. Serde란? 직렬화는 데이터를 Rust 자료형에서 JSON이나 YAML, TOML 등의 형식으로 변화하는 과정을 의미하고, 역직렬화는 변환된 데이터를 다시 원래대로

Rust 기초: From과 Into 트레이트

자료형 간의 명시적이고 안전한 데이터 변환은 Rust의 중요한 철학 중 하나입니다. Rust는 From과 Into라는 표준 트레이트을 제공하여 데이터 변환을 안전하고 명확하게 할 수 있도록 돕는데요. 이 글에서는 이 두 트레이트의 관계와 차이점, 그리고 활용법을 살펴보겠습니다. From 트레이트란? From 트레이트은 다른 자료형부터(from) 현재 자료형으로 변환하는 방법을 정의할 때 사용합니다. From 트레이트의 from() 메서드는 다른 제네릭(generic) 타입을 인자로 받고 자신의 타입을 반환합니다. 예를 들어, Rus

Rust 기초: match로 시작하는 패턴 매칭

Rust를 쓰는 이유 패턴 매칭 시스템이라는 말이 있을 정도로 Rust는 강력한 패턴 매칭 시스템을 자랑하는데요. 이러한 패턴 매칭은 바로 안전성과 가독성을 동시에 만족시키는 표현식 match에서 시작됩니다. 이 글에서는 match 표현식의 기본 사용법부터 자주 사용되는 패턴 매칭 기법, 그리고 실무에서 볼 수 있는 활용 예시까지 살펴보겠습니다. 기본 문법 match는 어떤 값에 대해 가능한 여러 가지 경우를 "패턴"으로 나눠 처리할 수 있게 해줍니다. 다른 프로그래밍 언어에서는 보통 switch 문으로 비슷한 기능을 제공하지만,

Rust 기초: 열거형(Enum) 사용법

Rust에서 구조체가 데이터 구조를 표현하는 방법라면, 열거형은 선택지를 추상화하는데 특화된 자료형입니다. 이 글에서는 Rust에서 열거형이 무엇이고 어떻게 사용하는지 예제와 함께 살펴보겠습니다. 열거형이란? 열거형(Enum)은 여러 가지 가능한 값(variant) 중 하나만 가질 수 있는 사용자 정의(custom) 자료형(type)입니다. enum 키워드로 열거형의 이름을 붙이고, 중괄호 안에 모든 배리언트 이름을 나열하면 됩니다. 예를 들어, 웹에서 발생할 수 있는 4가지 이벤트로 이루어진 열거형으로 다음과 같이 정의할 수 있습

Rust 기초: 구조체 (Structure) 사용법

Rust에 내장된 원시 자료형만으로는 실제 비지니스에서 필요한 복잡한 구조의 데이터를 표현하는데는 한계가 있습니다. 그래서 구조체(Structure)를 통해서 여러 개의 관련된 데이터를 한 곳에 묶어서 추상화하게 되죠. 이 글에서는 Rust에서 구조체가 무엇이고 어떻게 사용하는지 예제와 함께 살펴보겠습니다. 구조체란? 구조체(Structure)는 여러 필드를 가진 사용자 정의(custom) 자료형(type)입니다. struct 키워드로 구조체의 이름을 붙이고, 중괄호 안에 각 필드의 이름과 자료형을 나열하면 됩니다. 예를 들어, 번

Rust 기초: assert와 assert_eq 매크로로 검증하기

Rust로 코드를 작성하다 보면 "이 값이 정말 내가 기대한 것과 같을까?"를 확인해야 하는 순간이 많습니다. 단위 테스트를 작성할 때는 물론이고, 개발 중에 특정 조건이 반드시 성립하는지 검증하고 싶을 때도 그렇죠. 이럴 때 Rust가 제공하는 assert!, assert_eq!, assert_ne! 매크로가 딱입니다. 이번 글에서는 이 매크로들을 어떻게 쓰는지, 그리고 테스트에서 어떻게 활용하면 좋은지 알아보겠습니다. assert! 매크로 assert!는 가장 기본적인 검증 매크로입니다. 주어진 조건이 true인지 확인하고, 만

Rust 기초: 원시 자료형(Primitives) 정리

어떤 프로그래밍 언어를 학습하든 Primitives, 즉 원시 자료형에 대한 이해은 매우 중요합니다. 나중에 배우게 될 struct과 enum과 같은 커스텀(Custom) 자료형의 근간이 되는 중요한 개념이기 때문입니다. 이번 글에서는 Rust의 주요 원시 자료형들을 살펴보고, 각 타입이 어떤 특성을 가지는지, 그리고 실제로 어떻게 사용하는지 예제를 통해 알아보겠습니다. 원시 자료형이란? Rust의 원시 자료형은 언어에 내장되어 있는 가장 기본적인 데이터 유형(type)입니다. 변수나 함수 선언 시 명시적으로 자료형을 지정할 수도

Rust 기초: 출력 매크로와 Display, Debug 트레이트

Rust를 배우다 보면 화면에 무언가를 출력하기 위해 println! 같은 매크로를 많이 사용하게 됩니다. 그런데 이 매크로들 뒤에는 Display와 Debug라는 트레이트가 숨어 있고, 이 둘의 차이를 이해하면 Rust의 출력 메커니즘을 더 깊이 있게 다룰 수 있습니다. 출력 매크로 Rust에는 표준 출력 및 에러 출력을 위한 다양한 매크로(macro)가 있습니다. 아래는 가장 많이 사용하는 출력 관련 매크로들입니다. println!: 표준 출력(stdout)에 줄바꿈과 함께 문자열을 출력합니다 print!: 줄바꿈 없이 출력합니

🧊 급격하게 얼어붙고 있는 해외 취업 시장 🥶

최근 한국에 아는 개발자 분께서 미국에서 근무할 수 있는 포지션의 최종 면접을 앞두고 있었는데 갑자기 채용이 무기한 연기되었다는 황당한 소식을 듣게 되셨습니다. 다른 개발자 분께서는 심지어 최종 합격을 하고 리로케이션 패키지까지 받았는데, 느닷없이 오퍼가 취소되어 멘붕에 빠지셨다고 하네요... 🫠 주변에서 일어나는 이런 안타까운 일들을 보며 해외 취업 시장이 진짜 예전같지 않다는 것을 체감하게 됩니다. 미중 관세 전쟁으로 오랫동안 지속되었던 자유 무역과 세계화의 시대가 점점 저물고 있는 것이 아닌가 싶어요. 미국을 비롯한 여러 나

🙉 달레의 찐팬이 되어주실래요? 💕

여러분 안녕하세요! 오늘은 정말 설레는 소식을 하나 전해드리려 해요. 크레에이터와 팬을 이어주는 플랫폼 에손토리(essentory)와 파트너십을 맺고, 저만의 특별한 멤버십 콘텐츠를 새롭게 선보이게 되었습니다. 해외에서는 Patreon 같은 플랫폼을 통해 수많은 크리에이터들이 자신만의 멤버십 커뮤니티를 만들고, 진짜 팬들과의 관계에 집중하며 지속 가능한 창작 활동을 이어가고 있죠. 에센토리는 이런 흐름을 한국에서 이끌고 있는 플랫폼이며, 저도 감사하게 초기 창작자로 함께하게 되었습니다. 제가 18년 동안 개발자로 지내며 깨달은 가장

Discord