반응형

전체 글 70

MCP란 무엇일까? AI 에이전트가 도구를 사용하는 원리와 구조

MCP(Model Context Protocol)는 AI 애플리케이션이 파일, 데이터베이스, 검색 서비스 같은 외부 시스템과 연결되는 방식을 표준화한 오픈소스 프로토콜입니다.ChatGPT나 Claude 같은 AI는 대화만으로도 많은 일을 할 수 있지만, 기본 상태에서는 내 컴퓨터의 파일을 읽거나 회사 데이터베이스를 조회하고 캘린더에 일정을 추가할 수 없습니다. 이런 작업을 하려면 외부 도구와 안전하게 연결되는 통로가 필요합니다. MCP는 그 통로의 공통 규칙을 정의합니다.이번 글에서는 MCP가 왜 등장했는지, Host·Client·Server가 어떤 역할을 하는지, Tools·Resources·Prompts의 차이와 API·RAG·Function Calling과의 관계까지 개발자 관점에서 정리해 보겠습니..

카테고리 없음 2026.08.02

시간 복잡도란 무엇일까?

안녕하세요.개발 공부를 시작하면 언젠가는 반드시 만나게 되는 개념이 있습니다.바로 시간 복잡도(Time Complexity)입니다.처음 시간 복잡도를 접하면 다음과 같은 기호들이 등장합니다.O(1)O(log n)O(n)O(n log n)O(n²)기호만 보면 수학 공식처럼 보여서 어렵게 느껴질 수 있습니다.하지만 시간 복잡도의 핵심은 생각보다 단순합니다.이번 글에서는 복잡한 수학적 설명보다는 일상적인 예시와 Java 코드를 사용해 시간 복잡도를 쉽게 이해해 보겠습니다.시간 복잡도가 필요한 이유다음과 같이 숫자가 들어 있는 배열이 있다고 가정해 보겠습니다.int[] numbers = {3, 7, 2, 9, 5};이 배열에서 숫자 9가 있는지 확인하려면 어떻게 해야 할까요?가장 단순한 방법은 배열의 첫 번째 ..

CS 2026.07.27

비관적 락, 낙관적 락, 조건부 원자적 UPDATE 차이와 선택 기준

안녕하세요.지난 글에서는 여러 요청이 같은 데이터를 동시에 수정할 때 발생하는 Lost Update를 살펴봤습니다.초기 잔액이 10,000원인 계좌에서 3,000원 출금 요청이 두 번 동시에 실행됐지만, 최종 잔액이 4,000원이 아닌 7,000원이 되는 문제였습니다.요청 A: 10,000원 조회 → 7,000원 계산요청 B: 10,000원 조회 → 7,000원 계산요청 A: 7,000원 저장요청 B: 7,000원 저장정상 결과: 4,000원실제 결과: 7,000원이 문제를 해결하려면 여러 트랜잭션이 같은 데이터를 수정할 때 충돌을 제어해야 합니다.대표적인 방법은 다음 세 가지입니다.비관적 락낙관적 락조건부 원자적 UPDATE세 방법 모두 동시성 문제를 해결하기 위해 사용하지만, 동작 방식과 충돌 처리 ..

CS 2026.07.26

@Transactional만으로 동시성 문제가 해결되지 않는 이유: Lost Update 재현

안녕하세요.이번 글에서는 Spring Boot 애플리케이션에서 발생할 수 있는 대표적인 동시성 문제인 Lost Update를 직접 살펴보겠습니다.많은 개발자가 서비스 메서드에 @Transactional을 붙이면 데이터 정합성 문제도 자동으로 해결될 것이라고 생각합니다.하지만 @Transactional은 여러 작업을 하나의 트랜잭션으로 묶어 줄 뿐, 여러 요청이 동시에 같은 데이터를 수정하는 상황까지 항상 안전하게 처리해 주는 것은 아닙니다.실제로 계좌 출금, 상품 재고 차감, 포인트 사용처럼 동일한 값을 읽고 수정하는 로직에서는 별도의 동시성 제어가 없다면 변경 내용이 사라지는 문제가 발생할 수 있습니다.이를 Lost Update, 한국어로는 갱신 손실이라고 합니다.이번 글에서 다룰 내용이번 글에서는 다..

CS 2026.07.26

멱등성(Idempotency)이란? 중복 결제부터 재시도까지, 안전한 API를 만드는 방법

서비스를 개발하다 보면 이런 상황을 만나게 됩니다.사용자가 결제 버튼을 눌렀지만 화면에는 계속 로딩만 표시됩니다. 사용자는 결제가 실패했다고 생각해 버튼을 다시 누릅니다.하지만 첫 번째 결제 요청은 이미 서버에서 정상적으로 처리된 상태였습니다.1. 사용자가 결제 요청을 보낸다.2. 서버가 결제를 완료한다.3. 응답을 보내기 직전에 네트워크 연결이 끊어진다.4. 사용자는 실패했다고 생각하고 다시 결제를 요청한다.5. 동일한 결제가 두 번 처리된다.이처럼 네트워크 요청은 한 번만 전송된다고 보장할 수 없습니다.사용자가 버튼을 여러 번 누를 수도 있고, 프론트엔드나 API Gateway가 요청을 재시도할 수도 있으며, 메시지 큐가 동일한 메시지를 다시 전달할 수도 있습니다.이때 필요한 개념이 멱등성(Idemp..

CS 2026.07.26

중국 AI 키미 K3 공개, 2.8조 파라미터와 100만 토큰이 중요한 이유

안녕하세요.최근 중국 AI 기업들의 모델 개발 속도가 상당히 빨라지고 있습니다.DeepSeek와 알리바바의 Qwen이 주목받은 데 이어, 이번에는 중국 AI 스타트업 Moonshot AI가 새로운 플래그십 모델인 Kimi K3를 공개했습니다.Kimi K3는 단순히 파라미터 수가 큰 모델이 아닙니다.장시간 코딩 작업, 대규모 코드베이스 분석, 이미지 기반 프론트엔드 개발, 도구를 사용하는 AI 에이전트를 주요 사용 사례로 내세우고 있습니다.이번 글에서는 Kimi K3가 어떤 모델인지, 기존 코딩 AI와 무엇이 다른지, 그리고 개발자가 실제로 사용할 가치가 있는지를 살펴보겠습니다.Kimi K3란?Kimi K3는 중국 베이징에 본사를 둔 AI 기업 Moonshot AI가 2026년 7월 16일 공개한 대규모 ..

카테고리 없음 2026.07.20

Claude Code에 Codex를 붙였다: OpenAI 공식 플러그인으로 AI 교차 코드 리뷰하기

안녕하세요.최근에는 Claude Code나 Codex 같은 AI 코딩 에이전트를 실제 개발에 사용하는 개발자가 많아지고 있습니다.AI에게 기능 구현을 맡기면 개발 속도는 빨라집니다. 하지만 한 가지 문제가 있습니다.Claude Code가 작성한 코드를 다시 Claude Code에게 리뷰시키면, 처음 코드를 작성할 때 사용했던 판단과 논리를 그대로 유지하는 경우가 있습니다.그렇다면 Claude Code가 개발한 코드를 OpenAI의 Codex가 다시 검토하게 만들면 어떨까요?OpenAI는 Claude Code 안에서 Codex를 코드 리뷰어 또는 보조 에이전트로 호출할 수 있는 공식 플러그인 codex-plugin-cc를 공개했습니다.이 플러그인을 사용하면 다음과 같은 구조를 만들 수 있습니다.개발자 요청..

카테고리 없음 2026.07.13

공부부터 하지 말고 먼저 만들어라, 안드레 카파시의 탑다운 공부법

개발 공부를 시작하면 가장 먼저 이런 고민을 하게 됩니다.“자바를 어느 정도까지 공부해야 스프링을 시작할 수 있을까?”“스프링을 배우기 전에 네트워크와 운영체제를 먼저 공부해야 할까?”“데이터베이스, Docker, AWS까지 공부한 다음 프로젝트를 시작해야 할까?”공부해야 할 목록을 하나씩 적다 보면 끝이 없습니다.자바 문법, 객체지향, 자료구조, 알고리즘, HTTP, 네트워크, 데이터베이스, 스프링, 테스트, Docker, AWS까지 모두 공부한 후 프로젝트를 시작하려고 합니다.하지만 대부분은 프로젝트를 시작하기도 전에 지치거나, 공부했던 내용을 잊어버립니다.이 문제를 해결할 수 있는 학습 방식이 바로 안드레 카파시가 이야기한 프로젝트 중심의 깊이 우선 학습법입니다.흔히 이를 탑다운 공부법이라고 부릅니..

카테고리 없음 2026.07.12

내가 다시 개발자 취준생이라면 이렇게 준비한다|프로젝트·이력서·면접까지 현실적인 취업 전략

안녕하세요.개발자로 취업한 뒤 다시 취업 준비 시절을 돌아보면, 당시에는 중요하지 않은 것에 상당한 시간을 사용했다는 생각이 듭니다.새로운 기술을 하나라도 더 배우려고 했고, 프로젝트 개수를 늘리기 위해 비슷한 서비스를 반복해서 만들기도 했습니다.이력서에는 사용할 수 있는 기술을 최대한 많이 적었고, 자기소개에는 성실함과 열정을 강조했습니다.하지만 실제 채용 과정에서 중요한 것은 얼마나 많은 기술을 공부했는지가 아니었습니다.기업이 확인하려는 것은 조금 더 단순했습니다.이 지원자가 기본적인 개발 업무를 수행할 수 있는가?문제가 발생했을 때 원인을 찾고 해결할 수 있는가?다른 개발자와 함께 프로젝트를 진행할 수 있는가?제가 다시 신입 개발자로 취업을 준비한다면 프로젝트, 이력서, 코딩 테스트, 기술 면접을 ..

카테고리 없음 2026.07.12

개발 문서에서 보이는 프로시저(Stored Procedure)는 무엇일까?

개발 문서를 보다 보면 가끔 “프로시저를 호출한다”, “프로시저를 수정한다” 같은 표현을 보게 됩니다.처음 보면 Java 코드와 관련된 개념인지, 아니면 DB와 관련된 개념인지 헷갈릴 수 있습니다.결론부터 말하면 보통 프로시저는 데이터베이스에서 사용하는 개념입니다.왜 프로시저라는 것이 존재할까일반적으로 Java 백엔드에서는 이런 흐름으로 DB를 사용합니다.Java 코드에서 SQL을 작성한다DB로 쿼리를 보낸다결과를 받아온다예를 들어 회원을 조회하는 코드라면 보통 이런 SQL을 사용합니다.SELECT * FROM users WHERE id = 1;하지만 실제 서비스에서는 단순 조회가 아니라 여러 SQL이 함께 실행되는 작업이 많습니다.예를 들어 주문 생성 과정은 보통 이런 작업을 포함합니다.주문 테이블 저..

DB 2026.03.05
반응형