์ด๋ฒˆ์—๋Š” Java์—์„œ Enum์„ ํ™œ์šฉํ•˜์—ฌ HTTP ์ƒํƒœ ์ฝ”๋“œ์™€ ์ธ์ฆ ๋“ฑ๊ธ‰์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค. ๋˜ํ•œ, if-else๋ฌธ์„ ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ , ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์„ฑ ๋ฐ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์—ฐ์Šตํ•ด ๋ณด์•˜๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฃผ์š” ํ•™์Šต ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ , ๊ฐ ๋‹จ๊ณ„์—์„œ์˜ ์ฝ”๋“œ ์ž‘์„ฑ ์˜๋„๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.


1. HTTP ์ƒํƒœ ์ฝ”๋“œ์™€ Enum ํ™œ์šฉ

HTTP ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด HttpStatus๋ผ๋Š” Enum์„ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•œ ์—ฌ๋Ÿฌ ๋กœ์ง์„ ์ž‘์„ฑํ•ด ๋ณด์•˜๋‹ค. ์ฃผ์š” ํ•™์Šต ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค:

 

์ฃผ์š” ๊ตฌํ˜„ ์‚ฌํ•ญ

1.1  HttpStatus Enum ์ƒ์„ฑ

HTTP ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Enum์„ ์ •์˜ํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์˜€๋‹ค.

 

Enum์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค

getCode() ๋ฉ”์„œ๋“œ: ์ƒํƒœ ์ฝ”๋“œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

isSuccess() ๋ฉ”์„œ๋“œ: ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์„ฑ๊ณต ๋ฒ”์œ„(200~299)์— ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 

  1.2 ์ฝ”๋“œ๋ณ„ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ

์ƒํƒœ ์ฝ”๋“œ์— ๋”ฐ๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ•˜์˜€๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒํƒœ ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํžˆ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 1.3 ์ •์˜๋˜์ง€ ์•Š์€ ์ƒํƒœ ์ฝ”๋“œ ์ฒ˜๋ฆฌ

๋ฒ”์œ„ ์™ธ์˜ ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์ž…๋ ฅ๋  ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค.

 

๊ตฌํ˜„ ์ฝ”๋“œ 

public enum HttpStatus {
    OK(200, "Success"),
    NOT_FOUND(404, "Not Found"),
    INTERNAL_SERVER_ERROR(500, "Internal Server Error");
    
    private final int code;
    private final String message;
    
    HttpStatus(int code, String message) {
        this.code = code;
        this.message = message;
    }
    
    public int getCode() {
        return code;
    }
    
    public boolean isSuccess() {
        return code >= 200 && code < 300;
    }
    
    public static HttpStatus findByCode(int code) {
        for (HttpStatus status : values()) {
            if ...

2. ์‚ฌ์šฉ์ž ์ธ์ฆ ๋“ฑ๊ธ‰ ๊ด€๋ฆฌ

 

Enum์„ ํ™œ์šฉํ•˜์—ฌ ์ธ์ฆ ๋“ฑ๊ธ‰์„ ๊ด€๋ฆฌํ•˜๋Š” ๋กœ์ง๋„ ์ž‘์„ฑํ•ด ๋ณด์•˜๋‹ค. 

AuthGrade๋ผ๋Š” Enum์„ ๋งŒ๋“ค๊ณ , ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ํ†ตํ•ด ๋“ฑ๊ธ‰์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค.

 

์ฃผ์š” ๊ตฌํ˜„ ์‚ฌํ•ญ

 2.1 AuthGrade Enum ์ƒ์„ฑ

์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ๋“ฑ๊ธ‰(์˜ˆ: ADMIN, USER, GUEST)์„ Enum์œผ๋กœ ์ •์˜ํ•˜์˜€๋‹ค.

 

 2.2 ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†๋Š” ์ž…๋ ฅ ์ฒ˜๋ฆฌ

toUpperCase()๋ฅผ ์‚ฌ์šฉํ•ด ์ž…๋ ฅ๊ฐ’์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

 2.3 Scanner๋ฅผ ํ™œ์šฉํ•œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ์ฒ˜๋ฆฌ

์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์•„ Enum ๊ฐ’์„ ์„ค์ •ํ•˜๊ณ , ๋“ฑ๊ธ‰์— ๋”ฐ๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ•˜์˜€๋‹ค.

 

๊ตฌํ˜„ ์ฝ”๋“œ

public enum AuthGrade {
    ADMIN, USER, GUEST;
    
    public static AuthGrade findByName(String name) {
        return AuthGrade.valueOf(name.toUpperCase());
    }
}

Scanner scanner = new Scanner(System.in);
System.out.print("๋“ฑ๊ธ‰์„ ์ž…๋ ฅํ•˜์„ธ์š” (ADMIN, USER, GUEST): ");
String input = scanner.nextLine();

try {
    AuthGrade grade = AuthGrade.findByName(input);
    System.out.println("์„ ํƒํ•œ ๋“ฑ๊ธ‰: " + grade);
} catch (IllegalArgumentException e) {
    System.out.println("์ž˜๋ชป๋œ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค.");
}

 

์ด๋ฒˆ ํ•™์Šต์„ ํ†ตํ•ด Enum์„ ํ™œ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋œ๋‹ค๋Š” ์ ์„ ๋А๊ผˆ๋‹ค. ๋˜ํ•œ, ์ƒํƒœ ์ฝ”๋“œ๋‚˜ ์ธ์ฆ ๋“ฑ๊ธ‰๊ณผ ๊ฐ™์€ ๊ณ ์ •๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ Enum์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ํšจ์œจ์ ์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์•ž์œผ๋กœ๋„ Enum์„ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์ ๊ทน ํ™œ์šฉํ•ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค.

+ Recent posts