· 사용자의 레벨은 BASIC, SILVER, GOLD 세 가지 중 하나다.
· 사용자가 처음 가입하면 BASIC 레벨이 되며, 이후 활동에 따라서 한 단계씩 업그레이드될 수 있다.
· 가입 후 50회 이상 로그인을 하면 BASIC에서 SILVER 레벨이 된다.
· SILVER 레벨이면서 30번 이상 추천을 받으면 GOLD 레벨이 된다.
· 사용자 레벨의 변경 작업은 일정한 주기를 가지고 일괄적으로 진행된다. 변경 작업 전에는 조건을 충족하더라도 레벨의 변경이 일어나지 않는다.
1. 정수형 상수 값으로 정의했을 때 (사용하면 안됨)
class User {
private static final int BASIC = 1;
private static final int SILVER = 2;
private static final int GOLD = 3;
int level;
public void setLevel(int Level) {
this.level = level;
}
위처럼 사용 하면 안되는 이유
1) level의 타입이 int이기 때문에 다른 종류의 정보를 넣는 실수를 해도 컴파일러가 체크해주지 못한다.
2) 범위를 벗어나는 값을 넣을 위험도 있다.
2. enum(이늄) 사용
public enum Levle {
BASIC(1), SILVER(2), GOLD(3); → 세 개의 enum 오브젝트 정의
private final int value;
Level(int value) { → DB에 저장할 값을 넣어줄 생성자 생성
this.value = value;
}
public int intValue { → 값을 가져오는 메소드
return value;
}
public static Level valueOf(int value) { → 값으로부터 Level 타입 오브젝트를 가져오도록 만든 스태틱 메소드
switch(value) {
case 1: return BASIC;
case 2 : return SILVER;
case 3 : return GOLD;
default : throw new AssertionError("Unknown value: " + value);
}
}
}
[출처] : 토비의 스프링 3.1
'Spring' 카테고리의 다른 글
[Spring] JPA vs MyBatis 정리 (특징, 장점, 단점 등) (0) | 2022.06.24 |
---|---|
[Spring] 프로퍼티(properties) 파일을 이용한 값 설정 (0) | 2022.06.16 |
[Spring] @Controller, @RestController의 차이 (0) | 2022.06.14 |
[Spring] StringUtils 예제 (0) | 2022.06.08 |
[Spring] MyBatis 적용 (0) | 2022.06.07 |