GetRunnersHigh는 왜 카카오 심사에서 반려당했을까
왜 만들었나 러닝을 하다 보면 "이번 달에 마감 안 지난 대회가 뭐가 있지?"를 생각보다 자주 검색하게 된다. 그때마다 포털에 "2026 마라톤 일정"을 치고 블로그 글들을 뒤지는 게 번거로웠다. AI를 실무에 붙이는 공부를 하던 참이라, 이 검색을 아예 AI 에이전트가 대신 해주는 도구로 만들어 보기로 했다. 그렇게 나온 게 run-or-die-server라는 작은 MCP 서버다. 단순히 만들어서 혼자 쓰는 걸로 끝내지 않고, 카카오가 운영하는 MCP 플랫폼인 PlayMCP에 정식으로 등록해서 심사까지 받아봤다. 이 글은 그 전체 과정 — MCP 개념부터, 코드로 구현하고, 로컬에서 검증하고, 배포하고, 심사받고, 반려당해서 고친 것까지 — 를 기록으로 남긴 것이다. MCP가 뭔가 **MCP(Model Context Protocol)**는 Anthropic이 공개한, AI 모델이 외부 도구나 데이터에 접근하는 방식을 표준화한 프로토콜이다. ...
JDK (Java Development Kit)
개요 JRE (Java Runtime Environment)를 포함하여 컴파일러, 디버거, 프로파일링 도구 등 개발 및 관리에 필요한 도구 모음이다. 컴파일 시점의 JDK 버전과 실행 시점의 JRE 버전이 어긋나면 실무에서 흔히 겪는 버전 호환성 문제로 이어진다. 핵심 개념 용어 1: JRE - 자바 애플리케이션을 실행하기 위한 핵심 환경만 포함한다. JVM과 핵심 라이브러리로 구성되며, 컴파일러 같은 개발 도구는 포함하지 않는다. 용어 2: 클래스 파일 버전(Major/Minor Version) - .class 파일 헤더에 기록되는 값으로, 어떤 JDK 버전으로 컴파일됐는지를 나타낸다. JVM은 자신이 인식하는 버전보다 높은 클래스 파일을 실행할 수 없어, 이 값이 JDK/JRE 버전 호환성 문제의 실제 판단 기준이 된다. 상세 내용 개발 환경(상위 JDK 컴파일) -> 운영 환경(하위 JRE 실행) UnsupportedClassVersionError 발생 상위 ...
ps1
개요 Windows 명령 프롬프트(CMD)에서 사용하는 .bat .cmd 파일의 파워셸 버전이다. 해당 파일의 큰 차이점은 .bat 파일 처럼 더블클릭으로 실행되지 않는다. (메모장이 열리거나… 아무일도 일어나지 않음.) 그 이유는 .NET 기반으로 시스템 내부에 강력한 제어 권한을 가져 사용자가 의도치 않게 악성 스크립트를 실행하는 것을 막고자 차단한 것이다. 핵심 개념 용어 1: .bat 용어 2: .ps1 상세 내용 .ps1 실행 방법 구분 설명 권한 변경 후 실행 파워셸을 관리자 권한으로 열고 Set-ExecutionPolicy RemoteSigned 명령어를 통해 로컬에서 작성한 스크립트를 실행할 수 있도록 정책을 풀어줘야 한다. CMD/스케줄러에서 호출 시 보안 정책을 일시적으로 우회하는 옵션을 붙여서 실행해야 한다.powershell -ExecutionPolicy Bypass -File "C:\path\to\script.ps1 ...
관점 지향 프로그래밍 (AOP)
등장 배경 여러 클래스에 공통으로 들어가는 기능이 있다. 메서드가 호출될 때마다 로그를 남기거나, 트랜잭션을 시작하고 커밋하거나, 실행 시간을 측정하는 코드가 대표적이다. 이런 부가 기능을 핵심 비즈니스 로직 코드 사이사이에 직접 끼워 넣으면, 정작 중요한 로직은 부가 기능 코드에 파묻혀 알아보기 어려워지고, 같은 코드가 여러 클래스에 중복해서 흩어지게 된다. 이렇게 여러 모듈에 공통으로 걸쳐 있는 관심사를 횡단 관심사(Cross-Cutting Concern)라 부르는데, 상속이나 위임 같은 객체지향 기법만으로는 이 문제를 깔끔하게 해결하기 어렵다. 관점 지향 프로그래밍(AOP, Aspect Oriented Programming)은 이 횡단 관심사를 핵심 로직에서 분리해 하나의 모듈, 즉 관점(Aspect)으로 모듈화하는 프로그래밍 패러다임이다. 핵심 로직은 핵심 로직대로 깔끔하게 유지하고, 로깅이나 트랜잭션 같은 부가 기능은 별도로 관리하다가 필요한 시점에 자동으로 적용(위빙...
echo
설명 printf 함수에 준하는 화면 출력 명령어이다. 유닉스 및 리눅스 운영체제에서 지정한 문자열 또는 텍스트를 터미널에 출력한다. 프롬프트 명령, 셸 스크립트, 배치 파일에서 화면이나 파일로 상황을 알릴 때 사용한다. (로그 용도) 셸 스크립트의 변수나 터미널의 환경변수를 확인할 때 사용한다. 12345#!/bin/zsh# echo [옵션] [텍스트 및 문자열]echo Nice to meet you. My name is EUIYEON KIM# -e 특수문자, 유니코드 사용가능 ![[Pasted image 20260705125513.png]] 복습 개념(입출력 재지향, Redirection 리디렉션) 데이터의 ‘흐름을’ 바꾸는 작업이다. 화살표가 가리키는 방향이 '데이터가 들어가는 곳’이다. 1. 출력 재지향 (>, >>) 명령어의 결과(출력)를 파일로 보낸다. ‘화살표 끝이 파일을 향하고 있다.’ 123456#!/bin/zshecho 'H...




