enum ํ์ฉ(RoleType)
enum ํ์ฉ(RoleType)
RoleType์ ๋ง๋ค ๋ ์ด๊ฑฐํ(enum)์ ํ์ฉํด๋ณด์.
enum
enum์ ์ฐ๊ธฐ ์ ์๋ ์์๋ฅผ ๋ง๋ค ๋ final static ๋ณ์๋ฅผ ์ ์ธํ์ฌ ์ฌ์ฉํ์๋ค.
์ฌ์ฉ์์ Model์ ๋ง๋ค ๋ ์ฌ์ฉ์์ ๋ค ๊ฐ์ง RoleType์ ์ ํด์ผ ํ๋ค๊ณ ๊ฐ์ ํ์.
์ฌ์ฉ์๋ ADMIN
, GUEST
, MANAGER
, MEMBER
๋ค ๊ฐ์ง์ Role์ด ์๋ค.
public static final String ADMIN = "ADMIN";
public static final String GUEST = "GUEST";
public static final String MANAGER = "MANAGER";
public static final String MEMBER = "MEMBER";
์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์ ์์๋ฅผ ๋ง๋ ๋ค, ํ์ํ ๊ณณ์์ ํ ๋นํ ์ ์๋ค.
public class RoleType {
public static final String ADMIN = "ADMIN";
public static final String GUEST = "GUEST";
public static final String MANAGER = "MANAGER";
public static final String MEMBER = "MEMBER";
public static void main(String[] args) {
String user1 = RoleType.ADMIN;
String user2 = RoleType.GUEST;
}
}
static์ผ๋ก ์ ์ธ๋์ด ์๊ธฐ ๋๋ฌธ์, ๊ตณ์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์์๋ ํด๋์ค์ ์ด๋ฆ์ผ๋ก ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.
๋ฐ๋ผ์ ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก RoleType์ ํ ๋นํด ์ค ์ ์๋ค.
ํด๋์คํ์ ํ๊ณ
ํ์ง๋ง, ๋ง์ฝ ํ๋ก๊ทธ๋๋จธ๊ฐ RoleType ํด๋์ค๋ฅผ ์ฐธ์กฐํด์ ์ญํ ์ ํ ๋นํ๋ฉด ์ข๊ฒ ์ง๋ง, ๊ทธ๊ฒ ์๋ ์์์ ๊ฐ์ ํ ๋นํ์ ๋ ์ค์๋ฅผ ๋ฐฉ์งํ ๋ฐฉ๋ฒ์ด ์๋ค.
String user3 = "MEMBERRR";
์์ ๊ฐ์ด String ํ์ ์์ ๋ฐ์ํ ์ ์๋ ์คํ๋ฅผ ๋ฐฉ์งํ ๋ฐฉ๋ฒ์ด ์๋ค.
enum ์ฌ์ฉ
enum
์ ์ฌ์ฉํด์ RoleType์ ๋ง๋ค์ด๋ณด์.
enum enumRoleType {
ADMIN, GUEST, MANAGER, MEMBER
}
์์ ๊ฐ์ด enum์ ๋ง๋ค๊ณ ๊ฐ RoleType์ ์ด๊ฑฐํด ์ฃผ๋ฉด ์ฌ์ฉํ ์ ์๋ค.
package com.vividswan.blog.test;
public class RoleType {
public static final String ADMIN = "ADMIN";
public static final String GUEST = "GUEST";
public static final String MANAGER = "MANAGER";
public static final String MEMBER = "MEMBER";
public static void main(String[] args) {
String user1 = RoleType.ADMIN;
String user2 = RoleType.GUEST;
enumRoleType user3 = enumRoleType.MANAGER;
enumRoleType user4 = enumRoleType.MEMBER;
}
}
enum enumRoleType {
ADMIN, GUEST, MANAGER, MEMBER
}
์๋ก ๋ง๋ user3, user4
์ ํ์
์ด enum์ด๋ฏ๋ก ๊ทธ ํ์
์ ๋ง๊ฒ ํ ๋นํ ๊ฐ์ ์ค์ํด์ผ ํ๋ค.
์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ค์๋ฅผ ์ฌ์ ์ ๋ฐฉ์งํ ์ ์๋ค.
Entity์์ ์ฌ์ฉ
Model์ ๊ฐ๋ฐํ ๋ User Entity์์ role์ ๋ํ column์ ๋ง๋ ๋ค๊ณ ํ์.
@Enumerated(EnumType.STRING) private enumRoleType role;
์์ ๊ฐ์ด ์ ์ธํ๋ฉด role์ ํ ๋นํ ์ ์๋ ๋๋ฉ์ธ์ enum์ ์ ์ธํ ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
@Enumerated(EnumType.STRING)
์ ํด๋น enum์ด String ํ์
์ด๋ผ๋ ๊ฒ์ ์ ์ธํ๋ ๋ถ๋ถ์ด๋ค.