패스키: 편리성 vs. 제어 - 증가하는 우려

2025-09-02
패스키: 편리성 vs. 제어 - 증가하는 우려

사용자 이름과 비밀번호를 대체하는 패스키로의 전환은 보안 강화를 목표로 하지만 근본적인 문제점도 안고 있습니다. 인증 시스템은 웹사이트가 자세한 기기 정보를 얻을 수 있도록 허용하여 정부 기관이 특정 하드웨어 인증자로 사용자를 제한할 수 있도록 합니다. 패스워드 관리자 간의 상호 운용성은 제한적이며, 공급업체 종속을 초래합니다. 서비스의 은밀한 자동 등록 전술은 사용자를 해당 생태계에 은밀하게 구속합니다. 저자는 기술 대기업과 복잡한 시스템에 대한 의존도가 높아지는 것에 대한 우려를 표명하고 있으며, 데이터 접근 제한, 인증 복잡성 증가, 그리고 궁극적으로 사용자 주도권 상실로 이어질 수 있다고 지적합니다.

더 보기
기술

30개의 도구가 필요 없습니다. MCP에는 코드만 있으면 됩니다.

2025-08-18
30개의 도구가 필요 없습니다. MCP에는 코드만 있으면 됩니다.

이 글에서는 프로그래밍 코드를 입력으로 받는 단일 도구 MCP 서버를 사용하는 새로운 접근 방식을 탐구합니다. 저자는 플랫폼 의존성, 버전 의존성, 문서 부족 등 CLI 도구의 과제를 지적하며, 이로 인해 에이전트 도구에서 사용하기 어렵습니다. 반대로 MCP 서버는 상태를 유지하고 단일 도구(예: eval()을 실행하는 Python 인터프리터)를 공개하여 에이전트 도구가 세션을 더 잘 관리하고 도구를 구성할 수 있도록 합니다. 저자는 pexpect-mcp를 사용하여 이 접근 방식의 효과를 보여줍니다. 이는 MCP 서버를 상태가 있는 Python 인터프리터로 변환하여 디버깅을 간소화하고 효율성을 높입니다. 또한 저자는 Playwright의 MCP를 JavaScript를 통해 Playwright API를 공개하는 MCP로 대체하는 것을 고려하고 있으며, 이를 통해 도구 정의 수가 줄어들고 데이터 전송 효율이 향상됩니다. 보안 문제가 있지만 저자는 이 접근 방식이 큰 잠재력을 가지고 있으며 추가 연구를 필요로 한다고 주장합니다.

더 보기

코드가 전부다: 멀티 컴포넌트 파이프라인(MCP)의 한계

2025-07-03
코드가 전부다: 멀티 컴포넌트 파이프라인(MCP)의 한계

본 글에서는 많은 작업에서 멀티 컴포넌트 파이프라인(MCP)의 실용성에 의문을 제기하며, 추론에 대한 과도한 의존이 비효율적이고 확장이 어렵게 만든다고 주장합니다. 저자는 reStructuredText를 Markdown으로 변환한 자신의 경험을 예로 들어 더 나은 접근 방식을 제시합니다. 그것은 대규모 언어 모델(LLM)을 사용하여 작업을 수행하는 코드를 생성하고, 그 후 LLM 기반 검증을 수행하는 방법입니다. 이 방법은 추론에 대한 의존성을 줄이고, 신뢰성과 확장성을 높이며, 특히 반복적인 작업에 적합합니다. 틈새 시장 시나리오에서 MCP의 장점을 인정하면서도, 저자는 본질적인 한계가 대규모 자동화를 방해한다고 결론짓습니다. 그리고 보다 효과적인 코드 생성 기술과 LLM 검증 및 설명을 결합하여 사용 편의성과 적용성을 개선해야 한다고 제안합니다.

더 보기
개발

프로그래밍 에이전트: 개발자 경험을 측정하는 새로운 방법

2025-06-19
프로그래밍 에이전트: 개발자 경험을 측정하는 새로운 방법

24시간 코딩 스프린트에서 부족한 문서나 결함 있는 API 등 부적절한 도구와 프로세스로 인해 발생하는 개발자의 나쁜 경험이 드러났습니다. 하지만 프로그래밍 에이전트는 해결책을 제공합니다. 저자는 에이전트를 사용하여 다양한 언어와 도구를 객관적으로 평가하고 테스트 적용 범위, 오류 보고서의 품질, 에코시스템의 안정성 등 개발자 경험 요소를 정량화했습니다. 에이전트의 피드백은 사람 개발자의 경험을 반영하여 코드 품질과 개발 워크플로를 개선하기 위한 새로운 접근 방식을 제공합니다.

더 보기
개발

에이전트 코딩: 실용적인 팁과 트릭

2025-06-12
에이전트 코딩: 실용적인 팁과 트릭

이 글에서는 Claude Code를 사용한 에이전트 코딩에 대한 저자의 경험을 자세히 설명하고 효율성 극대화에 중점을 둡니다. 주요 전략으로는 저렴한 Sonnet 모델 사용, 권한 확인 비활성화, 도구 사용 최적화, 간결하고 효율적인 테스트가 가능한 Go 언어 선택 등이 포함됩니다. 저자는 간단하고, 안정적이며, 병렬 처리가 가능한 코드 작성과 전략적인 리팩토링의 중요성을 강조합니다. 이 분야는 빠르게 발전하고 있지만, 단순성, 안정성, 관찰 가능성, 스마트 병렬 처리와 같은 핵심 원칙은 성공에 필수적입니다.

더 보기
개발

AI: 돌이킬 수 없는 변화

2025-06-04
AI: 돌이킬 수 없는 변화

이 블로그 게시물은 Claude Code를 비롯한 AI가 저자의 프로그래밍 워크플로우를 어떻게 혁신적으로 바꾸고 효율성을 높이며 많은 시간을 절약했는지 자세히 설명합니다. 저자는 AI의 영향이 돌이킬 수 없으며 초기 과제에도 불구하고 우리의 삶과 일하는 방식을 재구성한다고 주장합니다. 다양한 부문에서 AI의 빠른 확산이 강조되고 있으며, 의사소통, 학습, 일상 업무에서의 혁신적인 힘이 제시됩니다. 저자는 두려움이나 저항이 아닌 호기심과 책임감을 가지고 AI의 잠재력을 받아들이도록 촉구합니다.

더 보기

Rust의 `Any` 트레이트가 마침내 업캐스팅을 지원합니다

2025-03-30
Rust의 `Any` 트레이트가 마침내 업캐스팅을 지원합니다

Rust 1.86에서 `Any` 트레이트의 오랜 문제였던 `dyn Any`의 업캐스팅 불가능 문제가 마침내 해결되었습니다. 이는 개발자들이 이제 `Any` 트레이트의 메서드(`downcast_ref` 등)를 `Any`를 상속하는 트레이트에서 사용할 수 있음을 의미합니다. 이 수정으로 이전에는 해결책이 필요했던 기능을 표준적인 방식으로 구현할 수 있게 되어 코드 가독성과 유지보수성이 향상됩니다. 오랫동안 이 문제의 해결책에 의존해 왔던 Rust 개발자들에게는 희소식입니다.

더 보기

Rust의 rand 크레이트: 난수 생성의 의존성 악몽

2025-02-08
Rust의 rand 크레이트: 난수 생성의 의존성 악몽

이 글에서는 난수 생성에 사용되는 Rust의 rand 크레이트의 의존성 문제를 자세히 살펴봅니다. 저자는 놀라울 정도로 많은 의존성 때문에 컴파일 시간이 길어지고 코드 크기가 커진다는 점을 지적합니다. rand의 의존성 트리는 libc, zerocopy, ppv-lite86 등 여러 크레이트를 포함하고 있으며, 이는 코드 라인 수와 컴파일 오버헤드에 크게 기여합니다. 표준 라이브러리에 기능을 통합하거나 rand 자체의 의존성 관리를 개선하는 등 몇 가지 잠재적인 해결책이 제시됩니다. 이는 Rust의 표준 라이브러리 완전성과 외부 크레이트 의존성 관리에 대한 논의를 불러일으킵니다.

더 보기

Rust에서의 의존성 감소 주장

2025-01-24
Rust에서의 의존성 감소 주장

유명 개발자 Armin Ronacher는 최근 블로그 게시글에서 Rust 생태계에서 외부 crate에 대한 과도한 의존성을 개탄했습니다. 그는 과도한 의존성이 지속적인 업데이트, 패치, 보안 감사로 이어져 개발자에게 부담을 주고, 종종 불필요한 코드 부풀림을 초래한다고 주장합니다. 그는 "직접 만들기" 철학을 주창하며, 개발자들이 맹목적으로 외부 라이브러리에 의존하기보다는 적절한 경우 자체 코드를 작성하도록 장려합니다. 그는 `terminal_size` crate를 예로 들어 간단한 기능이 여러 crate에 의존하고 여러 번 업데이트되었음을 보여주며 과도한 의존성의 단점을 강조합니다. 이 게시글은 Rust 커뮤니티의 관점 변화를 촉구하며, 의존성 감소를 우선시하고 저 의존성 라이브러리를 만드는 개발자들을 칭찬할 것을 요구합니다.

더 보기
개발