Refactor(Client): CI 단계에서 이벤트 스크립트 최신화 검증 레이어 추가#839
Merged
Conversation
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 Summary
해당 PR에 대한 작업 내용을 요약하여 작성해주세요.
📚 Tasks
pnpm analytics:generate결과를 따로 반영하지 않으면 사람이 놓치기 쉬운 흐름이어서, 이 부분을 CI가 자동으로 잡아주도록analytics:check단계를 추가했어요.analytics:check에서는 액션이 돌 때 현재 코드 기준으로pnpm analytics:generate를 다시 실행하고, 그렇게 새로 만들어진 산출물이 기존에 커밋된 파일과 완전히 같은지 비교하도록 구성했어요. 그래서 이벤트를 추가하거나 수정했는데 생성 결과를 반영하지 않은 경우에는 CI가 바로 실패하게 만들었어요.generatedAt만 바뀌면서 계속 diff가 생기지 않도록, rows 내용이 동일하면 기존 타임스탬프를 유지하도록 보완했어요. 이 단계가 없으면 CI에서 비교할 때 거짓 변경처럼 보일 수 있어서 같이 정리할 필요가 있었어요.generate-analytics-catalog.mjs파일이 너무 커서 한 파일 안에 AST 유틸, 라우트 파싱, 이벤트 파싱, 사용처 스캔, 카탈로그 조합, 출력 로직이 모두 섞여 있었는데, 이런 구조는 나중에 규칙을 하나만 바꿔도 어디를 건드려야 할지 찾기 어렵다고 느껴져서 책임 기준으로 파일을 분리했어요.pnpm analytics:generate를 실행할 때마다 prettier 결과와 생성 포맷 차이 때문에 파일이 계속 흔들리고, 그 영향으로 lint나 build 흐름까지 불안정해지던 문제가 있었어요. 이 부분은 생성 파일을 만든 직후 repo의 prettier 설정으로 바로 포맷한 뒤 그 결과를 기준으로 비교하게 바꿔서 해결했어요.pnpm analytics:generate를 다시 실행해도 내용이 같으면analytics catalog이 이미 최신 상태예요.만 출력되고, 불필요한 포맷 변경이나generatedAt변경이 계속 생기지 않도록 정리했어요.pnpm analytics:generate와pnpm --filter @confeti/admin build기준으로 직접 검증했어요.👀 To Reviewer
이번 작업은 크게 보면 두 가지를 같이 해결하려고 했어요. 하나는 이벤트 최신화 누락을 사람이 기억하지 않아도 CI가 대신 잡아주게 만드는 것이고, 다른 하나는 생성 스크립트 자체가 너무 커서 이후 유지보수가 어려워질 수 있는 구조를 조금 더 읽기 쉬운 형태로 정리하는 것이었어요.
특히 이번에 같이 손본 포인트 중 하나가, 생성 스크립트를 실행할 때마다 포맷 차이 때문에 산출물이 계속 바뀌는 문제였어요. 이 부분이 남아 있으면 CI 체크를 넣어도 개발자가 계속 불필요한 diff를 마주치게 되어서, 단순히 검증만 추가하는 것보다 생성 결과를 안정적으로 만드는 작업이 같이 필요하다고 판단했어요. 그래서 이번 PR에서는 “누락을 잡는 장치”와 “생성 결과를 흔들리지 않게 만드는 정리”를 같이 묶어서 반영했어요.