술 취한 Claude Code 길들이기

2 min read

최근 시작한 외주 이야기. 이 일은 오픈소스 프로젝트에 필요 없는 기능 뜯어내고 K 스타일로 새로 꾸미는 그런 작업이다. 그 오픈소스는 백엔드가 Go 4만, 프론트 리액트 코드가 4만 줄인 스타 수 10k 정도의 프로젝트이고 라이센스는 MIT다.

다국어 지원을 한다고 주장하고 있지만 까보면 i18next.t()로 묶어놨을 뿐, 다국어 키 관리를 안 해서 t('관리자에게 연락하여 시스템 설정에서 공지를 등록해 주세요') 이런 코드가 많은데 이게 다 중국어다. locales 디렉토리 보면 zh.json은 비어있고, en.json에 자연어 키를 써서 채워둔 그런 패턴. 소스코드 주석도 중국어고, 백엔드 로그도 다 중국어로 남기고 있다. 코드 딱 보면 뭐 하는 건지 추측은 되는데 막 한자로 危险操作! 이런 거 써 있으면 좀 무섭지 않겠는가. (危险操作는 Dangerous operation이다)

이대로는 코드베이스 파악이고 뭐고 어렵겠다 싶어서 Claude Code한테 8만 라인 전부 다 뒤져서 중국어를 싹 다 한국어로 번역하고, t()로 묶어둔 거 있으면 그것도 다 풀어버리고 i18next 의존성도 없애라고 했다.

그렇게 클코는 2시간 동안 혼자 열일하다가 토큰 다 썼다고 배째고 쉬러갔다. 2시간이나 했으니까 꽤 많이 했을 거라 생각했는데, 확인해보니 누락된 작업이 많아서 실망스러웠다. 예를 들어 40KB 파일에 중국어 50줄이 있는데 달랑 20줄만 바꿔놓고 나머지 30개는 건드리지도 않고 아무 말도 안 하는 식이다. 술 먹고 작업하는 개발자를 보는 것 같았다. 레딧을 뒤져보니 나와 비슷한 경험을 한 사람들이 많이 보였다. 코드 수정 작업 요청 시 계획은 잘 만드는데, 수정하는 액션 쪽에서 실수가 많고 느리다는 것. (String to replace not found 관련 오류. 문자열 치환시 sed 쓰라고 가이드하는 것도 방법이다)

그래서 파이썬 스크립트를 하나 만들었다. 코드 내에 중국어('\u4e00' <= char <= '\u9fff')를 찾아서 1) 파일 경로와 2) 해당 파일 내 중국어가 포함된 줄 번호와 텍스트를 표시하는 간단한 스크립트다. 이 스크립트 주면서 "야, 너 뻘짓하지 말고 이 스크립트 계속 돌려서 여기서 표시한 파일 속 중국어만 번역해라. 이 스크립트가 더 이상 중국어 없다고 할 때까지 계속해" 하니까 30분만에 훨씬 더 많은 일을 해냈다. 이 파이썬 스크립트도 Claude Code로 만들긴 했다.

그다음에는 i18next.t() 이슈. t() 해체 작업을 시켰는데 클코가 grep이나 rg 돌리면서 자꾸 t(로 검색을 해서 쓸데없는 매치를 확인하느라 토큰을 낭비하고 있었다. 그래서 word boundary 쓰도록 \bt( 이 정규식을 쓰라고 알려줬더니 작업 속도가 빨라졌다.

이런 일괄 작업을 시킬 때는 기계 친구들이 잘 못하는 일을 파악해서 관련 프로그램을 만들어주고 그거 쓰라고 가이드하면 생산성이 많이 올라간다. AI가 뭘 잘 못하면 옆에서 사람이 도와주면 될 일이다.

Continue Reading

Discover more thoughts and insights