이야기를 디버깅하는 개발자.

개발과 창작 사이에서, 사람들이 자기만의 이야기를 만들 수 있는 도구와 기록을 만듭니다.

roslyn.dev 자세히보기

2026/10 5

MCP OAuth 권한·PKCE·resource indicator 적용 점검표

MCP 서버가 내 서비스의 데이터나 작업을 대신 실행하기 시작하면 ‘연결된다’는 사실보다 누가 무엇을 할 수 있는지가 중요해집니다. 토큰을 발급받았다는 이유만으로 모든 도구를 호출할 수 있게 만들면 권한 경계가 사라집니다.이번 글에서는 MCP Authorization 사양에서 강조하는 resource indicator와 PKCE를 중심으로, 구현 전에 확인할 보안 질문을 정리합니다. 인증 라이브러리와 사양 버전은 구현 시점에 다시 확인해야 합니다.인증과 권한을 분리해서 설계합니다인증은 요청자가 누구인지 확인하는 절차이고, 권한은 그 요청자가 특정 리소스와 도구를 사용할 수 있는지 확인하는 절차입니다. OAuth가 성공했다고 해서 서버의 모든 기능을 허용하면 안 됩니다.저는 서버를 연결할 때 데이터 읽기,..

MCP Tasks로 장시간 작업 상태를 설계하는 법

AI 도구 호출이 짧을 때는 요청과 응답만 있으면 충분합니다. 하지만 파일 변환, 배포, 대량 분석처럼 오래 걸리는 작업은 사용자가 기다리는 동안 상태를 확인하고, 중단하거나 다시 이어야 합니다.MCP 생태계에서 Tasks와 관련된 논의가 확장되고 있지만 사양과 구현은 계속 변할 수 있습니다. 이번 글은 특정 SDK의 복사 예제가 아니라 장시간 작업을 설계할 때 필요한 상태를 정리하는 글입니다.작업 상태와 결과를 분리합니다작업이 실행 중이라는 사실과 결과 파일이 준비됐다는 사실은 다릅니다. 상태 조회는 진행률·마지막 업데이트·실패 이유를 보여 주고, 결과 조회는 완료된 산출물의 위치와 검증 상태를 보여 줘야 합니다.저는 작업을 만들 때 사용자에게 보이는 상태와 내부 실행 상태를 따로 둡니다. 내부가 여러..

1인 서비스의 OpenTelemetry Collector export topology

OpenTelemetry를 처음 붙일 때 애플리케이션에서 로그·메트릭·트레이스를 원하는 백엔드로 바로 보내면 간단해 보입니다. 하지만 백엔드를 바꾸거나 샘플링·필터링을 조정할 때 애플리케이션을 다시 배포해야 합니다.혼자 운영하는 서비스에서도 Collector를 둘 가치가 있는지 판단하기 위해서는 멋진 다이어그램보다 데이터가 어디에서 사라질 수 있는지를 먼저 봐야 합니다. 이번 글에서는 최소 구성의 책임 경계를 정리합니다.세 신호는 서로 다른 질문에 답합니다트레이스는 한 요청이 어디를 지나갔는지 알려 주고, 메트릭은 시스템이 얼마나 바쁜지 보여 주며, 로그는 특정 사건의 맥락을 설명합니다. 셋을 모두 수집한다고 자동으로 장애 원인을 찾을 수 있는 것은 아닙니다.저는 알림에는 메트릭을, 원인 추적에는 트레이..

Next.js Server Actions와 캐시 무효화 — revalidatePath와 revalidateTag를 함께 설계하기

Server Actions로 폼 제출과 데이터 변경 코드를 가까이 둘 수 있지만, 저장이 끝난 뒤 화면이 왜 갱신되지 않는지는 별도의 문제입니다. 서버 데이터, 전체 경로, 브라우저 라우터 캐시가 서로 다른 층에 있기 때문입니다.이번 글에서는 액션을 도입하는 방법보다 액션 이후 어떤 캐시를 언제 무효화할지에 집중합니다. 문서 버전과 현재 App Router 동작은 발행 전에 다시 확인해야 합니다.Server Action은 서버 함수이지만 권한 경계가 아닙니다Server Action은 서버에서 실행되고 POST로 호출되지만, 호출된 함수 안에서 인증과 권한을 다시 확인해야 합니다. 화면에서 버튼을 숨겼다고 해서 사용자가 해당 액션을 호출할 수 없게 되는 것은 아닙니다.저는 액션의 첫 부분에서 세 가지를 확..

카테고리 없음 2026.10.02

React 19.2 Activity와 useEffectEvent를 실제 화면에 적용할 때의 기준

React의 새 기능을 보면 기존 컴포넌트를 모두 바꾸고 싶어집니다. 그러나 화면이 빨라질지, 효과의 생명주기가 더 이해하기 쉬워질지는 코드의 사용 맥락에 따라 다릅니다.React 19.2에서 소개된 Activity와 useEffectEvent는 숨겨진 화면과 효과 이벤트를 다루는 선택지를 넓혀 줍니다. 이 글은 API 사용법을 나열하기보다 어떤 화면에 적용하고 어떤 화면에는 적용하지 않을지에 초점을 둡니다.Activity는 숨겨진 화면의 생명주기를 명시합니다조건부 렌더링은 보이지 않는 화면을 언마운트하는 단순한 방법입니다. Activity의 hidden 모드는 화면을 유지하면서 효과를 중단하고 업데이트를 늦출 수 있어, 다시 돌아올 가능성이 높은 화면의 상태를 보존하는 데 유용할 수 있습니다.하지만 모..

반응형