Claude Code에게 코드를 맡기기 전에 탐색·계획·권한부터 정한다
코딩 에이전트는 의욕이 넘치는 신입 개발자와 비슷하다. 문제를 하나 보여 주면 “바로 고칠게요”라며 파일을 바꾸기 시작한다. 처음 보는 코드베이스에서 이렇게 시작하면 무엇이 왜 바뀌었는지 따라가기 어렵다. Claude Code로 코드를 고치기 전에 네 가지를 먼저 정한다. 코드 탐색은 Explore 에이전트에 맡겨…
코딩 에이전트는 의욕이 넘치는 신입 개발자와 비슷하다. 문제를 하나 보여 주면 “바로 고칠게요”라며 파일을 바꾸기 시작한다. 처음 보는 코드베이스에서 이렇게 시작하면 무엇이 왜 바뀌었는지 따라가기 어렵다. Claude Code로 코드를 고치기 전에 네 가지를 먼저 정한다. 코드 탐색은 Explore 에이전트에 맡겨…
바이브 코딩으로 만든 프로젝트를 넘겨받으면 Claude Code에게 알려 줄 것이 많다. 마이그레이션은 도구로 만들 것, 배포 스크립트는 건드리지 말 것, 테스트 러너를 새로 만들지 말 것. 이런 지시를 전부 CLAUDE.md 한 파일에 쌓는 것이 가장 흔한 실수다. CLAUDE.md는 세션을 시작할…
9월 8일, 네이버 로그인 승인을 확인하러 개발자 콘솔을 열었다. 제출된 소명문을 펼쳐 보니 171자 다섯 문장이었다. 세션이 쓴 문서에는 「최종 제출본」으로 135자 네 문장이 적혀 있었다. 다섯째 문장은 제출 직전에 내가 더한 것이었고, 어느 기록에도 없었다 그 뒤로 규칙을 하나…
9월 16일, 원스토어 콘솔에 APK를 올리자 서명 옵션이 둘 떴다. 한쪽에 「(권장)」이 붙어 있었다. 그쪽을 고르면 원스토어가 앱을 다시 서명하고, 서명 지문이 바뀌면 카카오와 구글 콘솔에 등록해 둔 키 해시가 전부 어긋난다. 소셜 로그인 넷이 한꺼번에 죽는다 권장이 안 붙은…
9월 2일 오후 4시 18분, 원스토어 콘솔에서 저장을 두 번째로 눌렀다. 첫 번째는 「등록 실패. 고객센터에 문의 주시기 바랍니다.」였고, 두 번째에 진짜 이유가 나왔다. 신고필증 파일이 없다는 것이었다 그 파일 하나를 받으려고 사업자등록부터 다시 시작했다. 결과만 적으면 자택으로 사업자등록을 신청한…
9월 7일 밤 9시 13분, 홈택스 사업자등록 화면에서 건물명·동·층·호 칸이 비어 있었다. 입력도 안 됐다. Claude Code 세션은 그 화면을 보고 「사업장 주소에 호수가 없다」고 적었고, 주소검색으로 다시 넣어 보자고 권했다. 나는 그대로 저장을 눌렀다. 다음 날 받은 사업자등록증에는 호수까지…
강의를 만들면 빈 커리큘럼도 함께 생기게 하고 싶었다. 강의 생성 서비스에서 커리큘럼 생성 포트를 한 줄 부르자 테스트 두 개가 깨졌다. 하나는 DB의 유니크 제약이고, 하나는 아키텍처 테스트의 순환 금지 규칙이다. 순환은 의존성 역전 원칙(DIP)으로 풀었다. 인터페이스를 쓰는 쪽 패키지로…
커리큘럼 편집 서비스의 메서드는 모두 세 줄이다. 커리큘럼을 찾고, 도메인 메서드를 부르고, 저장한다. 로직은 전부 도메인에 있고 도메인 테스트는 꼼꼼하다. 강의는 이 서비스가 너무 단순하다며 테스트를 과제로 남겼다. 나는 그 과제를 하기 전에 서비스를 먼저 커밋했는데, 강의 코드에 있던 버그…
도메인 코드에서 수업을 지우는 방법은 리스트에서 빼는 것이다. JPA의 orphanRemoval은 그렇게 빠진 엔티티를 DB에서도 지워 준다. 편한 설정이지만 커리큘럼에서는 켤 수 없었다. 수업 이동이 “한 리스트에서 빼서 다른 리스트에 넣는” 동작이고, JPA 스펙은 고아가 된 엔티티를 다른 관계에 다시 넣지…
커리큘럼 편집 요청은 전부 숫자로 온다. “섹션 0번의 수업 2번을 섹션 1번의 0번 자리로 옮겨라” 같은 식이다. 리스트 인덱스로 애그리거트 구조 편집을 구현하면 코드는 짧다. 대신 remove가 한 번 일어나면 그 뒤 원소의 인덱스가 하나씩 당겨진다는 사실을 계속 의식해야 한다.…