Claude Code 소스가 유출됐다
Claude Code의 소스 코드가 유출됐다. 논란이 되고 갑론을박이 이어졌지만, 누군가는 밤 사이에 Claw Code를 만들어 전 세계에서 스타를 끌어모으고 있었다. 이건 명백히 최선을 다해야 할 시기다. ...
Claude Code의 소스 코드가 유출됐다. 논란이 되고 갑론을박이 이어졌지만, 누군가는 밤 사이에 Claw Code를 만들어 전 세계에서 스타를 끌어모으고 있었다. 이건 명백히 최선을 다해야 할 시기다. ...
EP.2에서 hooks로 Claude가 읽는 것을 줄였다. 테스트 결과는 실패만 출력하고, 빌드 로그는 에러만 발라냈다. 얼마나 줄어드는지 측정하기로 했다. 측정부터 Claude Code는 모든 대화를 JSONL 파일로 남긴다. ~/.claude/projects/ 아래에 프로젝트별로 쌓이는데, 각 항목에 토큰 사용량이 들어 있다. 이걸 읽어서 비용을 계산하는 스크립트(analyze-tokens.js)를 만들었다. 날짜별 세션 파일과 교차 비교해서 턴 수, cache_read/write/output을 각각 집계하고 비용으로 환산한다. ...
일주일동안 Max 플랜의 59%를 사용했다. Max로 올린 이유는 단순하다. Pro에서 세 시간 만에 limit을 맞았기 때문이다. 세 시간 동안 말도 안 되는 생산성에 놀랐기에 Max를 결제할 수밖에 없었다. ...
프로젝트가 5개가 됐다. shop, blog, code_dungeon, good_game, 그리고 전체를 관리하는 root.(프로젝트명이 root는 아니다) 각 프로젝트마다 Claude 세션이 돌아가는데 문제는 내가 하나밖에 없다는 거다. ...
소파에 비스듬히 기대어 무릎 위에 놓고 흔들면서 재우던 갓난아이가 올해로 8살이 됐다. 나는 초딩의 ‘학부모님’이 됐다. 어제는 따님이 방과후 수업에서 마술을 배워서 깜짝 공연을 해줬다. 세상이 정말 빠르게 변하고 아이도 쑥쑥 자라는데, 나는 훌륭한 아버지로, 남편으로 자라고 있는지 항상 고민이 된다. ...
에이전트를 9개로 줄이고 CLAUDE.md를 다이어트시킨 뒤, Compacting conversation...이 뜨는 간격이 눈에 띄게 길어졌다. 같은 작업을 시켜도 예전보다 한참을 더 버텼다. 뿌듯했다. ...
지인에게 화장품 쇼핑몰 구축 의뢰를 받았다. 직장에서 C만 쓰다 보니 새 기술스택을 써볼 기회였다. 결제는 토스페이먼츠, 프론트는 React. “금융권 차세대가 전부 React로 간다"는 말이 마음에 걸렸고, 토스페이먼츠는 Node 친화적이었다. 방향은 금방 잡혔다. ...
Cloudflare 배포 중에 빌드가 터졌다. Hugo 버전이 올라가면서 paginate 키가 사라진 건데, 로컬에서는 구버전으로 잘 돌아가고 있으니 모르고 있었다. Cloudflare 빌드 환경은 v0.147.7이었고 거기서 에러가 터졌다. ...
문제로 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Solution { fun search(nums: IntArray, target: Int): Int { var left = 0; var right = nums.size - 1; while(left <= right){ val mid = left + (right-left) / 2 val v = nums[mid] when { v == target -> return mid v < target -> left = mid + 1 else -> right = mid - 1 } } return -1 } } 이 문제는 Grind 75에서도 다뤘다: Grind 75 - Binary Search
문제로 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class Solution { fun isAnagram(s: String, t: String): Boolean { if(s.length != t.length) return false val count = mutableMapOf<Char, Int>() for(char in s) { if(count[char] == null) count[char] = 1 else count[char] = count[char]!! + 1 } for(char in t) { val v = (count[char] ?: return false) - 1 if(v == 0) count.remove(char) if(v > 0) count[char] = v; } return count.isEmpty() } } kotlin은 nullable한 값에 비교연산자를 사용할 수 없다... (대입은 된다) ```kotlin // 이렇게 쓰면 에러가 난다... non-null로 만들어줘야 한다 ?:를 잘 활용하자 if(count[char] > 0) count[char] = count[char]!! - 1 ``` 이 문제는 Grind 75에서도 다뤘다: Grind 75 - Valid Anagram ...