Skip to content

Feat: 스펙 diff 에 STOMP 계약 비교 추가 - #48

Merged
Immmii merged 1 commit into
mainfrom
feature/stomp-contract-diff
Sep 19, 2026
Merged

Immmii merged 1 commit into
mainfrom
feature/stomp-contract-diff

Conversation

@Immmii

@Immmii Immmii commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

💡 PR 작업 내용

  • 기능 관련 작업
  • 버그 수정
  • 코드 개선 및 수정
  • 문서 작성
  • 배포
  • 브랜치
  • 기타 (아래에 자세한 내용 기입해 주세요)

📋 세부 작업 내용

1. x-websocket 비교로 STOMP 계약을 diff 에 포함

[기존]
STOMP 는 OpenAPI paths 에 없어서, 계약이 바뀌어도 스펙 변경 알림에 한 줄도 안 나갔습니다.

STORIX-BE-2.0#284 에서 구독에 인가 검증을 넣고 에러 전달 통로를 정리했는데, 알림에는 상태코드가 바뀐 REST 4개만 나갑니다. 구독 인가가 생긴 것도, 사유를 받으려면 /user/queue/errors 를 먼저 구독해야 한다는 것도 전달되지 않습니다.

[변경 후]
BE 가 OpenAPI 루트에 x-websocket 을 싣기 시작했으므로 그걸 비교해 STOMP 계약 변경을 diff 에 포함합니다.

x-websocket
  endpoint          /ws-stomp
  destinations[]    type, path, auth
  errorDestination  /user/queue/errors
  errorReasons[]    UNAUTHORIZED, FORBIDDEN, BAD_REQUEST, INTERNAL_ERROR
  errorCodes[]      status, code, reason

2. STOMP 계약 변경 분류

[기존]
STOMP 계약 변경은 diff 에 잡히지 않아 분류 기준도 없었습니다.

[변경 후]
목적지 제거·권한 변경·에러 목적지 변경은 깨지는 변경으로 분류합니다.

변경 분류
목적지 추가 할 일
목적지 제거 깨짐
목적지 권한 변경 깨짐
에러 목적지 변경 깨짐
에러 사유 추가 / 제거 할 일 / 깨짐
에러코드 추가 / 제거 할 일
에러코드의 사유 변경 할 일
  • 목적지가 사라지거나 권한이 빡빡해지면 기존 앱의 구독이 그대로 실패하므로 깨지는 변경으로 봤습니다
  • 에러코드 증감은 앱이 분기를 붙여야 하는 쪽이라 할 일로 두고, ACTIONABLE 에도 넣어 슬랙 본문에서 접히지 않게 했습니다

3. 웹소켓 태그로 따로 노출

[기존]
알림에 웹소켓 변경이 드러나는 자리가 없었습니다.

[변경 후]
웹소켓 태그로 따로 묶어 노출합니다. 슬랙에는 이렇게 나갑니다.

*[웹소켓]*
STOMP `/ws-stomp`
        • 목적지 추가: subscribe /sub/chat/room/{roomId} · 토픽룸 참여자 + 성인인증
        • 목적지 추가: subscribe /user/queue/errors · 세션 소유자
        • 에러코드 추가: ADULT_VERIFICATION_ERROR_008, TOPIC_ROOM_ERROR_008, ...

확인한 것들:

  • 로컬에 띄운 앱의 /v3/api-docs 를 그대로 받아 돌렸습니다. 계약이 없던 스펙과 비교하면 목적지 4개, 사유 4종, 에러코드 10개가 잡힙니다.
  • 같은 스펙끼리 비교하면 웹소켓 줄이 생기지 않습니다.
  • 계약이 새로 생긴 경우 before 가 없어 터지던 것을 고쳤습니다. 실제 스펙으로 돌리다 발견했습니다.
  • 기존 엔드포인트 diff 에는 영향이 없습니다. changed 에 항목 하나를 더하는 방식이라 슬랙·체인지로그·상세 리포트가 모두 그대로 받습니다.

📸 작업 화면 (스크린샷)

💬 리뷰 요구사항(선택)

x-websocket 의 destinations 는 BE 쪽에 상수로 적혀 있습니다. 코드에서 자동으로 뽑는 게 아니라 실제 destination 과 어긋날 수 있는데, 지금은 4개뿐이고 바뀔 일이 드물어 그대로 두었습니다.

⚠️ PR하기 전에 확인해 주세요.

  • 로컬테스트를 진행하셨나요?
  • 머지할 브랜치를 확인하셨나요?
  • 관련 label을 선택하셨나요?

⭐ 관련 이슈 번호

🖇️ 기타

BE 쪽 x-websocket 은 Team-STORIX/STORIX-BE-2.0#284 에 들어 있습니다. 그쪽이 먼저 배포돼야 이 비교가 의미를 갖습니다.

@Immmii Immmii added the 🚀 feat 기능 개발 시 label Sep 19, 2026
@Immmii Immmii self-assigned this Sep 19, 2026
@Immmii
Immmii merged commit fe158c9 into main Sep 19, 2026
1 check passed
@Immmii Immmii mentioned this pull request Oct 9, 2026
16 of 22 tasks
@Immmii Immmii changed the title Feat: [스웨거] 스펙 diff 에 STOMP 계약 비교 추가 Feat: 스펙 diff 에 STOMP 계약 비교 추가 Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🚀 feat 기능 개발 시

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant