Skip to content

Instantly share code, notes, and snippets.

@leedc0101
Created February 24, 2026 01:03
Show Gist options
  • Select an option

  • Save leedc0101/e7be59f5e6ef8b6826bd1eb366a849e0 to your computer and use it in GitHub Desktop.

Select an option

Save leedc0101/e7be59f5e6ef8b6826bd1eb366a849e0 to your computer and use it in GitHub Desktop.
frontend-briefing-2026-02-24-KST

원문 제목: How I Use Claude Code 원문 링크: https://boristane.com/blog/how-i-use-claude-code/ 번역 생성일: 2026-02-24 KST

How I Use Claude Code

작성자는 약 9개월 동안 Claude Code를 주 개발 도구로 쓰면서, "바로 코딩" 대신 계획을 먼저 문서로 확정하는 방식을 핵심 원칙으로 삼았습니다.

핵심 문장:

  • 계획 승인 전에는 코드 작성 금지
  • 연구(Research) → 계획(Plan) → 주석 피드백(Annotation) 반복 → 할 일 목록(Todo) → 구현(Implement)

1) 연구 단계

작업 시작 시 Claude에게 관련 코드 영역을 깊게 읽게 하고, 결과를 research.md로 남기게 합니다.

의도:

  • 채팅 요약이 아니라 검토 가능한 산출물 확보
  • 오해를 구현 전에 잡기
  • 기존 캐시/ORM/중복 로직 무시 같은 실수를 예방

2) 계획 단계

연구 검토 후 plan.md를 작성시킵니다.

계획 문서에는 보통 다음이 들어갑니다.

  • 접근 방식 설명
  • 실제 코드 스니펫
  • 수정 파일 경로
  • 트레이드오프

작성자는 내장 plan mode보다 직접 관리하는 md 문서를 선호합니다.

3) 주석(Annotation) 반복

작성자가 plan.md를 열어 인라인 코멘트를 달고, Claude에게 "노트 반영만, 아직 구현 금지"를 반복 지시합니다.

예시 코멘트:

  • 마이그레이션 방식 교정
  • API 메서드 선택 교정(PATCH vs PUT)
  • 과한 캐시/재시도 로직 제거
  • 스키마 구조 자체 재설계 지시

이 반복은 보통 1~6회 진행됩니다.

4) Todo 세분화

구현 직전에 작업을 세부 체크리스트로 쪼개어 진행률 추적에 사용합니다.

5) 구현 단계

계획이 확정되면 "전체 구현, 타입체크 지속, any/unknown 금지, 단계 완료 표시" 같은 표준 프롬프트로 실행합니다.

의도:

  • 구현을 창의 작업이 아닌 기계적 실행으로 전환
  • 중간 가정 오류로 되돌리는 비용 최소화

6) 구현 중 피드백

구현 중 피드백은 짧고 명확하게 합니다.

  • 누락 함수 지적
  • 잘못된 앱/폴더 위치 교정
  • 프론트엔드 UI는 매우 짧은 반복 피드백(너비, 간격, 크롭 등)

필요 시 스크린샷과 기존 화면 레퍼런스를 사용합니다.

7) 결론

작성자의 결론은 단순합니다.

"깊게 읽고, 계획을 쓰고, 계획을 맞을 때까지 고친 뒤, 그다음 한 번에 구현하라."

즉, AI 코딩에서 성능을 올리는 핵심은 프롬프트 묘수가 아니라 생각(설계)과 타이핑(구현)의 분리라는 주장입니다.

원문 제목: So I've Been Thinking About Static Site Generators 원문 링크: https://wolfgirl.dev/blog/2026-02-23-so-ive-been-thinking-about-static-site-generators/ 번역 생성일: 2026-02-24 KST

So I've Been Thinking About Static Site Generators

작성자는 기존 SSG 도구들에 만족하지 못해, "아주 빠른" SSG를 직접 설계하려는 생각을 정리합니다.

핵심 요구사항은 3가지입니다.

  1. 클린 빌드가 빠를 것
  2. 콘텐츠 변경 시 증분 빌드가 매우 빠를 것
  3. 로직 변경 시에도 재빌드가 빠를 것

1) 클린 빌드

작성자의 관찰:

  • 느린 원인이 파일 I/O보다 런타임/변환 오버헤드인 경우가 많음
  • 다중 프로세스 호출도 누적 비용이 큼

그래서 제안:

  • 핵심 빌드는 컴파일 언어
  • 가능하면 단일 프로세스에서 읽기→변환→쓰기 처리

2) 콘텐츠 변경 시 초고속 증분 빌드

단순한 "변경 파일 의존 경로 전체 재빌드"는 과빌드(over-rebuild)를 유발합니다.

예:

  • 페이지 내용만 바뀌어도 메타데이터 집합 의존 때문에 전체 페이지가 다시 빌드될 수 있음

해결:

  • 실제 출력 변화 여부까지 보는 진짜 증분 알고리즘 필요
  • 작성자는 Rust 컴파일러 문맥에서 알려진 Red-Green 알고리즘을 채택하려고 함

요점:

  • 상위 의존성이 바뀌어도, 출력이 같으면 "변경 없음(green)"으로 처리
  • 그래서 재계산 범위를 최소화 가능

3) 로직 변경 시 빠른 재빌드

문제:

  • 로직까지 컴파일 언어에 넣으면, 로직 수정 때 컴파일 시간이 병목

타협안:

  • 빌드 엔진(증분/파서/최적화)은 컴파일 언어
  • 사이트 로직은 스크립팅 언어로 분리

최종 아키텍처 제안

Rust 바이너리 + JavaScript 인터프리터

Rust 코어 담당:

  • 증분 엔진
  • Markdown 파싱
  • HTML minify
  • URL fetch
  • 이미지 처리(계획)
  • JS 인터프리터 탑재

JavaScript 담당:

  • 템플릿/페이지 구성
  • 사이트별 로직

정리하면, 작성자는 "빌드 성능"과 "로직 개발 속도"를 동시에 잡기 위해 엔진과 로직을 분리하는 구조를 선택합니다.

원문 제목: Ladybird adopts Rust, with help from AI 원문 링크: https://ladybird.org/posts/adopting-rust/ 번역 생성일: 2026-02-24 KST

Ladybird adopts Rust, with help from AI

Ladybird 팀은 메모리 안전성 강화를 위해 C++ 일부를 Rust로 옮기기 시작했습니다.

왜 Rust인가

  • Swift도 검토했지만 C++ 상호운용성과 플랫폼 범용성에서 한계
  • Rust는 시스템 프로그래밍 생태계가 성숙했고 기여자 숙련도도 높음
  • Firefox/Chromium도 Rust를 도입 중

첫 대상: LibJS

가장 먼저 JavaScript 엔진의 렉서/파서/AST/바이트코드 생성기를 포팅했습니다.

이유:

  • 상대적으로 독립적
  • test262 기반의 강한 테스트 커버리지

AI 사용 방식

  • Claude Code, Codex를 사용했지만 "자율 생성"이 아니라 사람이 지휘하는 번역 작업
  • 무엇을 어떤 순서로 옮길지 사람이 결정
  • 여러 모델로 후속 검토(오류/안티패턴 확인)

결과

  • 약 25,000줄 Rust
  • 약 2주 소요(수작업 대비 수개월 절감)
  • 요구사항: C++ 파이프라인과 바이트 단위 동일 출력
  • test262 52,898개, 회귀 테스트 12,461개에서 회귀 0
  • 추적 벤치마크 성능 저하 없음

현재 코드 성격

코드가 다소 "C++에서 옮긴 티"가 나는 건 의도적입니다.

우선순위:

  1. 기존 파이프라인과 완전 호환
  2. 정확성
  3. 이후 점진적 Rust 스타일 정리

앞으로

  • 전체 초점을 Rust 전환으로 바꾸지는 않음
  • C++ 개발을 계속하면서 일부 서브시스템만 장기적으로 병행 포팅
  • 포팅 우선순위는 코어팀이 관리

원문 제목: Which web frameworks are most token-efficient for AI agents? 원문 링크: https://martinalderson.com/posts/which-web-frameworks-are-most-token-efficient-for-ai-agents/ 번역 생성일: 2026-02-24 KST

Which web frameworks are most token-efficient for AI agents?

작성자는 "에이전트가 코드 짤 때 어떤 웹 프레임워크가 토큰 효율이 좋은가"를 비교 실험했습니다.

실험 방식

  • 19개 프레임워크 선택
  • 같은 수준의 블로그 앱 요구사항 부여
    • 목록/상세/작성
    • SQLite 저장
    • 기본 CSS
    • 서버 실행 및 동작 확인
  • 측정: 토큰 수, 도구 호출 수, 소요 시간, 성공 여부

1차 결과

  • 모든 환경에서 기본 앱 생성 자체는 거의 성공
  • 큰 경향: 미니멀 프레임워크가 토큰 효율 우수
  • 최소 비용과 최대 비용 프레임워크 간 격차가 약 2.9배

관찰:

  • 덜 대중적인 프레임워크는 스캐폴드/문서 탐색에 토큰이 더 들어감
  • 풀스택 프레임워크는 초기 오버헤드가 큼

2차 과제(기능 추가)

기존 앱에 카테고리 기능 추가:

  • categories 테이블
  • 초기 카테고리 4개
  • 작성 폼 드롭다운
  • 목록/상세에 카테고리 표시
  • 카테고리 필터

결과:

  • 대부분 성공
  • 일부는 마이그레이션 문제로 실패 사례 존재
  • 흥미롭게도 "기능 추가" 단계에선 프레임워크 간 비용 차이가 초기만큼 크지 않았음

결론

  • 빠른 프로토타입/저비용 반복엔 미니멀 프레임워크가 유리
  • 다만 오늘날 에이전트는 다양한 프레임워크에서도 충분히 동작 가능
  • 단건에선 차이가 작아도, 하루 수백 회 수정되는 환경에선 누적 비용 차이가 커짐

원문 제목: numpy-ts 원문 링크: https://numpyts.dev 번역 생성일: 2026-02-24 KST

numpy-ts

numpy-ts는 TypeScript/JavaScript 환경에서 NumPy 스타일 API를 제공하는 수치 계산 라이브러리입니다.

문서에서 강조하는 핵심 포인트:

  • NumPy API 커버리지 94% (507개 중 476개 구현)
  • 전체 타입 정의 제공(타입 안정성)
  • 트리셰이킹 지원
  • NumPy와 결과를 비교하는 대규모 검증 테스트
  • 네이티브 모듈/Wasm 없이 순수 TypeScript
  • Node/Bun/Deno/브라우저 공통 실행

사용 예시(문서 요지)

  • 배열 생성, 브로드캐스팅, 선형대수(inv, det), dot, reshape 등을 NumPy와 유사한 방식으로 사용
  • Python NumPy 코드에서 TS 코드로 비교적 자연스럽게 이전 가능

마이그레이션 관점

이 프로젝트의 실무 의미는 다음과 같습니다.

  • 프론트/백엔드 JS 생태계 안에서 NumPy 유사 연산을 통일 API로 처리 가능
  • 팀이 Python 수치 코드 문법에 익숙하다면 학습 비용을 줄일 수 있음
  • 다만 실제 서비스 적용 시에는 번들 크기, 연산량, 런타임 성능을 작업 맥락에 맞춰 검증해야 함

원문 제목: Rango 원문 링크: https://github.com/david-tejada/rango 번역 생성일: 2026-02-24 KST

Rango

Rango는 음성으로 브라우저를 조작할 수 있게 도와주는 크로스브라우저 확장입니다(Talon 연동).

핵심 아이디어:

  • 화면 요소 옆에 힌트를 표시하고
  • 사용자가 음성으로 힌트를 말해 클릭/포커스/복사/스크롤/탭 조작 수행

주요 기능 요약

  • 요소 클릭(직접/명시 모드)
  • 텍스트 기반 요소 탐색
  • 탭 전환/닫기/음소거
  • 다양한 스크롤(페이지/사이드바/특정 컨테이너)
  • 링크/콘텐츠 복사
  • 입력 필드 편집

설치 구조

필수 구성은 2개입니다.

  1. 브라우저 확장(Chrome/Firefox/Edge/Safari)
  2. Talon 명령 파일(rango-talon 저장소)

실무 관점

이 도구는 특히 다음 상황에서 의미가 큽니다.

  • 키보드 중심 워크플로를 더 강화하고 싶은 경우
  • 반복적인 브라우저 탐색 작업 자동화/단축
  • 접근성(a11y) 및 대체 입력 인터페이스 개선

즉, "새 프레임워크"라기보다 브라우저 상호작용 DX를 바꾸는 도구에 가깝습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment