이 사이트의 오류·의견 제보를 GitHub 이슈로 받아 Jev로 분류하고, 확신도가 0.9 이상인 분류에만 라벨을 붙인다.
개발 노트
개념·설계
문장 대신 선택지별 확률을 돌려주는 Jev는 LLM과 무엇이 다르고, 어떤 판단을 맡길 만한가.
기존 Markdown 렌더러에 TanStack Highlight를 연결하고, 기본 지원에 없는 Java 구문 강조를 사용자 정의 토크나이저로 보완한 과정
Mermaid 12는 일부 다이어그램의 기본 배치와 외형을 바꾸고, UseCase와 AgentFlow 다이어그램을 추가했다.
robots.txt와 사이트맵, llms.txt, 구조화 데이터가 기계 독자에게 각각 무엇을 알리고, 이 사이트는 그중 무엇에 기대를 걸지 않는가.
Obsidian vault 관리를 AI 에이전트에게 맡기려고 지침·스킬·검색 도구를 둔 방식과, 삭제·승격·공개 판단은 사람이 맡기로 한 기준
Obsidian vault의 Markdown을 Astro가 공개 규칙에 따라 웹페이지로 바꾸고, GitHub Actions가 산출물을 검사해 GitHub Pages에 배포하는 구성이다.
생각 지도에서 제목이 겹치는 문제는 노드 배치가 아니라 제목 배치와 표시 우선순위, 확대와 글자 크기의 분리 문제다.
멀티테넌시의 격리는 사용자 인증을 넘어 데이터와 자원 범위, 성능 영향까지 테넌트 경계에 맞춰 설계하는 문제다.
행·스키마·데이터베이스 격리는 데이터 경계뿐 아니라 복구 단위와 스키마 변경 부담까지 비교해 선택해야 한다.
새 테넌트를 추가하거나 애플리케이션을 다시 시작할 때 자원 생성부터 업무 접근 허용까지를 누가 언제 어디까지 맡는가.
Kubernetes에 설정을 적용한 것과 애플리케이션이 준비된 것은 다르며, 컨트롤러는 관측한 상태를 원하는 상태에 맞추는 작업을 반복한다.
같은 외부 서비스를 호출한 세 API에서 파일 응답을 서로 다르게 받은 것은, 응답 다음 단계가 요구하는 것이 달랐기 때문이다.
문제 해결
브라우저가 스크립트 실행 전에 첫 화면을 그리기 때문이며, 그래프 크기를 미리 알면 정적 그림으로 같은 모습을 먼저 보여 주고 크기가 화면마다 다르면 스크립트가 끝날 때까지 렌더링을 미룬다.
순차 스트림으로 쓴 ZIP은 local header에 크기가 없어 ZipInputStream이 -1을 돌려주며, 이미 파일로 내렸다면 central directory를 읽는 ZipFile로 열어야 크기를 미리 알 수 있다.
해제 책임은 흐름의 대칭이 아니라 그 buffer의 최종 소비자가 정하므로, 다음 writer에게 넘기면 손대지 않고 되돌려받는 흐름이면 직접 해제한다.
이벤트를 만든 인스턴스와 사용자 연결을 쥔 인스턴스가 달라 로컬 팬아웃이 유실된 것이며, 그 상태가 이미 공유 저장소에 있으면 팬아웃을 걷어내고 폴링으로 읽는다.
옮겨 간 모듈에 -parameters 컴파일 플래그가 없어 Spring 6.1이 생성자 파라미터 이름으로 빈 후보를 좁히지 못한 것이며, 코드와 함께 빌드 옵션을 옮기면 풀린다.
배포 환경 DB에 더 높은 버전이 이미 적용되어 새 스크립트가 지나간 버전으로 판정된 것이며, 그 스크립트가 어느 환경에 적용됐는지에 따라 버전 조정과 보정 마이그레이션 중에서 고른다.
@Async 메서드가 반환한 Future를 executor가 기다리는 경로에서 그 Future가 끝나지 않아 worker가 점유된 것이며, 중단 경로에서도 Future를 완료·예외·취소 중 하나로 끝내야 한다.
ServiceAccount가 ArgoCD에 보이지 않을 때는 객체가 생성되지 않은 문제와 객체는 있는데 권한이 없는 문제를 먼저 나눠야 하며, 생성에 ClusterRoleBinding이 필수인 것은 아니다.
도메인 식별자를 label 값으로 바꾸는 규칙을 함수 하나에 두어 apply와 delete가 같은 값을 만들게 하고, 원본 식별자는 바꾸지 않는다.
환경변수로 주입한 Secret은 컨테이너 생성 시점에만 읽히므로, 값이 바뀌면 pod template을 바꿔 Pod를 새로 띄워야 한다.
컴포넌트 스캔을 수행하는 설정에 REGISTER_BEAN 단계에서 평가되는 조건이 결합되면 기동에 실패하며, 어노테이션 이름이 아니라 조건 구현의 평가 단계를 확인해야 풀린다.
도구·워크플로
정적 사이트의 OG 공유 이미지는 배포 때 미리 그리고 방문 통계는 외부 서비스에 맡겨 별도 서버 없이 운영한다.
가든이 글 종류별로 내는 RSS 피드를 프로필 저장소의 GitHub Actions가 읽어 README 목록을 갱신하는 구성이다.
Claude Code 플러그인 저장소를 로컬 경로로 marketplace에 등록하면 push 없이 다른 저장소에서 바로 설치해 써 보며 고칠 수 있다.
macOS 터미널에서 bat, lsd, fd, ripgrep, zoxide가 cat, ls, find, grep, cd를 대신하며, 서로 이어 쓰면 파일 탐색이 빨라진다.