
์ด๋ฒ์๋ 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์ ๋ค์ํ ์ํฉ์์ ์ ๊ทน ํ์ฉํด ๋ณผ ์๊ฐ์ด๋ค.