D

club.updated

동아리가 생성·수정·삭제되면 발송됩니다. 세 종류 모두 이 하나의 이벤트로 전달되며, 종류는 old/newobject가 비었는지로 구분합니다.

봉투(id/event/timestamp/data)와 dataold/new {index, object} 구조는 페이로드 개요를 참고하세요. 이 페이지는 object 안에 담기는 동아리 필드만 다룹니다.

object 필드

필드타입nullable설명
club_idintegerXDataGSM 내부 동아리 식별자
namestringX동아리 이름
typestring(enum)X종류 (MAJOR_CLUB / AUTONOMOUS_CLUB)
founded_yearintegerX창립 연도
statusstring(enum)X상태 (ACTIVE / ABOLISHED)
abolished_yearintegerO폐지 연도 (활성 동아리는 null)
leaderobjectO동아리장 { student_number, name } (없으면 null)
participantsarray<object>X부원 목록 [{ student_number, name }]

leader / participants의 학생은 { student_number, name }만 담습니다.

type

의미
MAJOR_CLUB전공동아리
AUTONOMOUS_CLUB창체동아리

status

의미
ACTIVE활성
ABOLISHED폐지

생성 · 수정 · 삭제 판별

종류old[i].objectnew[i].object
수정변경 전 동아리 정보변경 후 동아리 정보
생성{} (빈 객체)생성된 동아리 정보
삭제삭제 전 동아리 정보{} (빈 객체)

예시 A — 수정 (부원·동아리장 변경)

{
  "id": "evt_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7",
  "event": "club.updated",
  "timestamp": "2026-06-23T06:00:00.000Z",
  "data": {
    "old": [
      { "index": 0, "object": {
        "club_id": 1, "name": "더모먼트", "type": "MAJOR_CLUB", "founded_year": 2024,
        "status": "ACTIVE", "abolished_year": null,
        "leader": { "student_number": 2105, "name": "홍길동" },
        "participants": [ { "student_number": 2106, "name": "김부원" } ]
      } }
    ],
    "new": [
      { "index": 0, "object": {
        "club_id": 1, "name": "더모먼트", "type": "MAJOR_CLUB", "founded_year": 2024,
        "status": "ACTIVE", "abolished_year": null,
        "leader": { "student_number": 2106, "name": "김부원" },
        "participants": [
          { "student_number": 2105, "name": "홍길동" },
          { "student_number": 2107, "name": "이부원" }
        ]
      } }
    ]
  }
}

index 0old.object/new.object를 비교: 동아리장이 홍길동→김부원으로 바뀌고, 부원이 추가됨.

예시 B — 삭제 (동아리 폐지)

new[i].object가 빈 {}이면 삭제입니다.

{
  "id": "evt_c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8",
  "event": "club.updated",
  "timestamp": "2026-06-23T06:10:00.000Z",
  "data": {
    "old": [
      { "index": 0, "object": {
        "club_id": 7, "name": "블렌드", "type": "AUTONOMOUS_CLUB", "founded_year": 2022,
        "status": "ABOLISHED", "abolished_year": 2026,
        "leader": null,
        "participants": []
      } }
    ],
    "new": [
      { "index": 0, "object": {} }
    ]
  }
}

new[0].object가 빈 {}이므로 삭제. 삭제 전 정보는 old[0].object에서 확인합니다.