최근 시작한 외주 이야기. 이 일은 오픈소스 프로젝트에 필요 없는 기능 뜯어내고 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
끄적임과 쇼펜하우어
일주일 전쯤 쇼펜하우어 문장론 40페이지만 읽고 氣가 꺾여 비실비실한 상태. 중간고사가 어제 오후 10시부로 끝나고, 스프링노트 메신저 봇 3종 세트(MSN, 네이트온, 구글톡)도 완성했다. 내 맘에 안들긴 하지만
노다메 칸타빌레를 보고
퍼키님의 추천으로 일본 드라마인 노다메 칸타빌레를 봤습니다. 노다메~ 아이고 완전 귀엽네요~ ㅎㅎ 이런 여자 어디 없나요? >.< 그나저나 노다메를 보다보니 클래식, 그 중에서도 명곡집 곡보다는 소나타
문제점 자가분석
스스로 진단한 가장 큰 문제 2개는 불면증과 일중독 일중독이 불면증을 유발시켰다. 일중독이 가장 나쁜것 같다. 일중독에 대해 검색한 몇가지 정의. "몸 속에 있는 에너지가 한 곳으로 집중되면서 자율성을 침해,