🎅 오너먼트 프로젝트

테이블에 JSON 형식으로 값을 저장 with EVENT Table

보배 진 2026. 1. 26. 17:23

테이블에  JSON 형식으로 값을 저장하려고 합니다

JSON 전용 타입 MySQL 5.7+ 에서 지원

컬럼 타입을 JSON으로 지정 가능

 

EVENT EVENT_PK
EVENT_NAME
EVENT_START_DATE
EVENT_END_DATE
EVENT_TARGET_ACCOUNT
EVENT_TARGET_CATEGORY
EVENT_DESCRIPTION
EVENT_DISCOUNT_RATE
EVENT_IMAGE
INT
VARCHAR(200)
DATE
DATE
JSON
JSON
VARCHER(20000)
NUMBER(3)
VARCHAR(255)
이벤트 PK
이벤트 이름
이벤트 시작일
이벤트 종료일
이벤트 대상
이벤트 상품 카테고리
이벤트 설명
할인율
이벤트 이미지

예를 들어 이렇게 EVENT 테이블을 만들려고 한다

 

여기서 JSON 타입은 EVENT_TARGET_ACCOUNT와 EVENT_TARGET_CATEGORY 이렇게 존재한다

EVENT_TARGET_ACCOUNT JSON 예시 먼저 보도록 하자

 

 

 

EVENT_TARGET_ACCOUNT

금액 기준 대상 계정

{ type: "AMOUNT", amount: number }

amount : 숫자로 표시된 금액 이상인 계정이 이벤트 대상

예시 : { type : "AMOUNT", "amount" : 50000 }

50,000원 이상 결제한 계정만 이벤트 대상

 

 

가입일 기준 대상 계정

 { type: "JOINED", startDate: string(YYYY-MM-DD), endDate: string(YYYY-MM-DD) }

startDate : 이벤트 대상 시작 가입일

endDate : 이벤트 대상 종료 가입일

예시 : { "type": "JOINED", "startDate": "2025-01-01", "endDate": "2025-12-31" }

 

 

모든 계정

{ "type": "ALL" }

이벤트 대상 제한 없음

가입, 결제 금액, 멤버 타입 등 상관없이 전체 계정 대상

 

 

회원 유형 기준 대상 계정

{ type: "MEMBER_TYPE", memberType: "LOCAL"|"KAKAO"|"NAMER"|... }

memberType : 특정 회원 유형만 이벤트 대상

예시 : { "type": "MEMBER_TYPE", "memberType": "KAKAO" }

다른 유형 "LOCAL", "MEMBER" 등

 

 

 


 

EVENT_TARGET_CATEGORY

카테고리 설명
TREE 크리스마스 트리 같은 큰 장식용 나무 상품
LIGHT 조명/전구 관련 상품 (LED, 장식용 전구 등)
BALL 장식용 볼(구형 장식) 상품
FIGURE 피규어/캐릭터 장식 상품 (작은 장식물)
WREATHS 리스 (문이나 벽에 거는 장식용 화환)
ETC 기타 이벤트 관련 장식 상품

EVENT_TARGET_CATEGORY는 상품의 종류를 JSOn 배열로 저장 가능

ex) ["TREE", "LIGHT", "BALL"]

이벤트에 트리, 조명, 장식 볼 상품만 적용됨

나중에 DB나 코드에서 이 배열을 조회해서 해당 카테고리 상품만 이벤트 적용 가능

 

JSON으로 여러 카테고리를 한 번에 저장하면 유연하게 이벤트 범위를 지정가능

Java에서는 List<String>이나 Enum을 사용해서 매핑하면 안전함