분류 전체보기 1313

바이브 코딩 - 개발자들이 없어진다고 하는데, 바이브 코딩 오해와 진실

요즘 인터넷에 보면 가장 많이 나오는 단어가 바이브 코딩(Vibe coding)이 아닌가 싶다. Cursor와 같은 AI 코딩 도구를 이용해서, 코딩을 모르는 사람도 자연어로 요구 사항을 설명하면 AI가 자동으로 코드를 생성해준다. 유투브 채널에 보면 온갖 바이브 코딩에 대한 이야기이고, 개발자는 이제 없어질 것이며 신입은 필요가 없다는 이야기도 나오는데, 잘못된 오해가 많은 것 같고, 제대로 바이브 코딩을 하는 방법에 대한 가이드가 상대적으로 적은 것 같아서, 바이브 코딩에 대한 오해와, 어떻게 하면 바이브 코딩을 제대로 할 수 있을지에 대해서 설명하고자 한다. 바이브 코딩의 정의바이브 코딩은 OpenAI의 공동 창립자인 Andrej Karpathy에 의해서 2025년 2월에 소개되었다. 바이브 코딩은..

MCP (Model Context Protocol) 2. 서버 개발하기

조대협 (http://bcho.tistory.com)지난 글을 통해서 MCP의 개념에 대해서 간략하게 이해해봤다. 이번글에서는 그러면 어떻게 MCP 서버를 실제로 구현하는지에 대해서 알아보도록 한다. MCP Local server & remote serverMCP server 는 구동 위치에 따라서, 로컬 서버와 리모트 서버로 분리된다. 아래는 Anthropic 의 아키텍처 다이어그램이다.   로컬 서버의 경우, MCP 애플리케이션 호스트 프로세스가 기동되는 로컬 데스크탑에서 실행되는 서버이고, 리모트 서버는 클라우드나 기타 네트워크로 접속될 수 있는 환경에서 기동되는 서버이다. 로컬 서버의 경우에는 같은 데스크탑에서 실행되기 때문에, 로컬 자원, 즉 데스크탑의 파일 등에 접근할 수 있다.(노트 : 이는..

MCP (Model Context Protocol) 1. 개념 이해

조대협 (http://bcho.tistory.com) 근래에 들어서 LLM 에 관련해서 가장 핫한 토픽중에 하나는 MCP (Model Context Protocol)이다. MCP는 Anthropic에서 발표한 프로토콜로 LLM 모델이 외부 애플리케이션과 연동할 수 있도록 해주는 스펙으로, 예를 들어 클로드 모델이 학습된 결과로 답변만할 수 있는데 비해서 MCP를 이용하여 외부 애플리케이션과 연동하게 되면, 구글 검색 결과를 통해서 최신 정보를 가지고 답변을 하거나, Spotify를 이용해서 음악을 플레이하도록 할 수 있다.  이번 글에서는 MCP에 대한 개념에 대해서 이해해보도록 한다. (아래는 본 글의 내용을 이해하기 쉽게 설명한 비디오 이다. ) Agent 개념의 이해MCP를 이해하려면 먼저 LLM과..

앤트로픽을 모델 사용 통계를 통한 LLM 사용 현황

조대협 (http://bcho.tistory.com 앤트로픽에서 운영중인 모델의 데이터를 분석해서, 앤트로픽 모델이 주로 누가 어디에 사용하는지를 정리한 논문이 있어서 정리해본다. https://arxiv.org/abs/2503.04761v1?fbclid=IwY2xjawJWyMVleHRuA2FlbQIxMAABHVWipyblGC0KyHFa9XOFI58D9_YyB-2OTRySYTyE2sQ1xAiR4QwW5wXIEg_aem_FxQeOTGerX42xiHBiCRZIQ Which Economic Tasks are Performed with AI? Evidence from Millions of Claude ConversationsDespite widespread speculation about artificial i..

2025년 Devops 트랜드 세미나 공지

2025년 Devops 트랜드에 대한 무료 세미나를 알려드립니다. https://docs.google.com/.../1FAIpQLScNuq7qBqEPVF.../viewform미국에서는 이제 Devops는 너무 필수적인 것이라 많이 이야기 하지 않습니다. 그보다 비용 효율화를 위한 Finops, 보안을 위한 Secops와 개발과/운영을 밀접하게 연계해서 비즈니스 임팩트를 주기 위한 부분을 많이 고민합니다.2025년 Devops트랜드에 대해서 구글의 정명훈님과 전 화해 CTO님 이재광님이 준비했습니다.

바이브 코딩 메뉴얼 - AI 에이전트를 활용한 더 빠르고 스마트한 개발

조대협 (http://bcho.tistory.com)소프트웨어를 작성하는 방식이 변화하고 있다. "바이브 코딩(Vibe Coding)"은 더 직관적이고 AI 주도적인 개발 프로세스를 일컫는 용어로 주목받고 있다. 온라인 커뮤니티에서 만들어지고 Cursor나 Windsurf 같은 도구를 통해 대중화된 이 방식은, 모든 코드를 직접 입력하기보다 지능형 에이전트를 통해 자신의 비전, 즉 "바이브(vibe)"에 기반하여 애플리케이션을 구축하도록 안내하는 것에 가깝다."에이전트 기반 코딩(Agentic Coding)"이라고도 알려진 이 방식은 단순히 멋진 자동 완성과는 다르다. 이는 Claude 3.7 Sonnet('Thinking' 버전이 특히)이나 Grok과 같은 AI 모델과 협력하여 초기 구조 설정부터 기능..

LLM 모델의 JDBC 드라이버 LiteLLM

조대협 (http://bcho.tistory.com) 최근 여러 LLM이 소개 되고 있는데, LLM 마다 가격이나 특성이 틀리기 때문에 여러 모델을 함께 사용하는 경우가 있는데, 이때 마다 SDK가 달라서 어려움이 있을 수 있다. (물론 Langchain을 써도 된다.) 또한 금액이나 요청 종류에 따라서 특정 LLM으로 라우팅을 하거나 또는 특정 LLM 모델이 응답을 하지 못할때 Fallback등의 기능을 구현해야 하는데, LiteLLM은 이런 기능을 제공하는 파이썬 라이브러리이다. 이글에서는 LiteLLM과, 대표적인 라우팅 기능에 대해서 알아보도록 한다. 1. LiteLLM이란 무엇이고 왜 필요한가?LiteLLM은 다양한 LLM 제공자(Provider)들의 API를 표준화된 단일 인터페이스로 호출할 ..

2025 DevOps의 본질과 최신 트렌드

정명훈 (구글 클라우드)IT에서의 효율성IT에서 효율성을 얻을 수 있는 최고의 방법은 무엇일까? 반복과 재사용이다. 아날로그 현실 세계와 달리 디지털 기반의 IT 세계에서는 동일한 결과물을 만드는 것이 매우 쉽다. 친구나 동료가 말한 목소리를 기억하고 전달하는 아날로그 방식은 내용을 빼먹기도 하지만, 디지털로 남겨지는 스마트폰 녹음은 10년이 지나도 그대로 전달할 수 있다. 한 번 녹음된 디지털 음성은 10개를 복제하던 100개를 복제하던 품질이 그대로 유지된다.  IT 발전의 역사는 반복과 재사용을 통한 효율화의 역사이다. 어떻게 하면 하드웨어 또는 소프트웨어를 모듈 단위로 만들어 재사용할 수 있게 고민한다. 함수를 통해서, 컴포넌트를 통해서 그리고 API를 통해서 소프트웨어를 재사용한다. 인텔과 AM..

파이썬 - 비동기 컨텍스트 매니저 async with .. as ..

async with 와 as 자세한 설명 및 예제 (Python Async)async with 와 as는 파이썬의 비동기 프로그래밍 (asyncio)에서 비동기 컨텍스트 관리자를 사용할 때 핵심적인 역할을 합니다. 일반적인 with 구문과 비슷하지만, 비동기 작업에 특화되어 리소스 관리를 더욱 강력하고 효율적으로 만들어줍니다.1. 컨텍스트 관리자 (Context Manager) 복습: with 구문과 as 절 (동기)먼저, 일반적인 (동기) 컨텍스트 관리자를 이해하는 것이 중요합니다. with 구문은 특정 리소스 (파일, 연결 등)를 안전하게 사용하고, 사용 후 자동으로 정리 (close, release 등)하도록 보장하는 메커니즘입니다.# 일반적인 with 구문 (동기 파일 I/O)with open("..

파이썬 - Function annotation ("->")

Python Function Annotations (100줄 이내 설명)Python Function Annotations는 함수 매개변수와 반환 값에 대한 타입 힌트 및 메타데이터를 제공하는 기능입니다. Python 3.5+ 부터 사용 가능하며, def 키워드 함수 정의 시 콜론 : 뒤에 표현식을 사용하여 어노테이션을 추가합니다.핵심은 리턴 타입을 강제하는 것이 아니라, 개발자나 IDE 와 같은 도구에게 가독성을 높이기 위한 방법이다.  문법:def function_name(param1: type_hint, param2: type_hint = default_value) -> return_type_hint: # 함수 내용 return valueparam1: type_hint: 매개변수 param..