![[의존성의 방향을 따라 3/5] OpenRewrite와 Claude가 코드를 변환한다](https://flex.team/blog/og/main.jpg)
0
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
이 게시물은 50개 레포를 안전하게 버전업하기 위해 OpenRewrite로 정적 AST 변환을 먼저 수행하고, Claude가 빌드 실패 시 필요한 수정만 보완하는 빌드 가드레일 루프를 제안합니다. Updater는 결정론적인 변환(규칙 기반 recipe)과 유연한 판단(AI 제안)을 역할 분담하여 빌드로 검증합니다. OpenRewrite는 텍스트 치환이 아닌 AST 기반으로 “같은 입력에 같은 출력”을 보장하도록 recipe를 구성하며, 공식 rewrite-spring과 조직 전용 rewrite-recipes를 조합합니다. init script로 OpenRewrite를 외부 주입해 각 레포의 build.gradle.kts 수정 없이 변환을 실행하고, gradle rewriteRun으로 in-place 적용합니다. recipe로 처리 어려운 비즈니스 판단이나 시그니처 변경에 따른 nullable 처리 등은 Claude가 주변 코드/패턴을 읽어 수정안을 생성하되 빌드가 최종 검증합니다. 또한 recipe는 테스트 가능하고 idempotent하며, 작은 recipe를 compose해 큰 마이그레이션으로 확장하는 실무 고려를 정리합니다.
![[의존성의 방향을 따라 3/5] OpenRewrite와 Claude가 코드를 변환한다](https://cdn.sanity.io/images/v31psllp/production/513466e8841f7be5ac64a4a39112acafe4a63c6d-1684x1030.png)
![[미래를 담아낸 뼈대 7/7] 의존성의 방향을 따라](https://cdn.sanity.io/images/v31psllp/production/85a2456afffb0f96fb7c09ce89e31b7ad3400ab7-1684x1030.png)
![[의존성의 방향을 따라 2/5] 의존 그래프를 읽는 Planner](https://cdn.sanity.io/images/v31psllp/production/cfc2fee7bc9a333e841c5c5cf5cc07721137979c-1684x1030.png)