1. 기존 코드

public enum CafeOptionType {
    NOSMOKE, PARK, FOOD, PROJECTOR, WIFI
}
# dto 생성시 코드


cafeOptions = cafe.getCafeOptions().stream()
        .map(i -> i.getCafeOptionType().toString())
        .collect(Collectors.toList());

문제 상황

enum만 선언되어 있기 때문에 화면에 데이터를 전송할 경우 enum 값이 화면에 표시됨.

-> 옵션에 대한 설명이 부족하다고 판단 

-> 조건문을 활용한 데이터 변환의 경우 optionType이 추가될 때마다 분기처리를 추가해줘야 한다는 문제 발생

 

 

2. 수정 코드

key, value 값으로 설정하여. getDisplayName()으로 설정해준 값을 화면에 보낼 수 있게 됨.

@Getter
@AllArgsConstructor
public enum CafeOptionType {
    NOSMOKE("NOSMOKE", "금연"),
    PARK("PARK", "주차가능"),
    FOOD("FOOD", "외부음식 반입가능"),
    PROJECTOR("PROJECTOR", "프로젝터"),
    WIFI("WIFI", "WIFI");

    private final String code;
    private final String displayName;
}
# dto 생성시 코드

cafeOptions = cafe.getCafeOptions().stream()
        .map(i -> i.getCafeOptionType().getDisplayName())
        .collect(Collectors.toList());

 

3. 결과

+ Recent posts