* 해당 글은 백엔드 자바 강의이후 회고 글입니다.
https://bootcamp.likelion.net/school/kdt-backendj-21th
백엔드 부트캠프 21기: Java : 멋사 부트캠프
실전 스킬 기반 백엔드 개발자 취업 완벽 대비 교육
bootcamp.likelion.net
JDK 14+ 에서 switch 문에 추가된 화살표 문법
switch (변수) {
case 값 -> 명령 ; break;
case 값 -> 명령 ; break;
case 값 -> 명령 ; break;
default : 명령 ;
}
- 하나의 switch 문은 char, short, int, String 의 변수를 통해 선언하여 사용할 수도있다.
- 값에 의한 분기로 case 명령을 수행한다.
- break 는 선택적으로 명시할 수 있고, default 는 한번 선택 명시할 수 있다.
JDK 21 의 switch 패턴 매칭(Pattern Matching for Switch)
jdk 21 에서는 스위치 문에서 패턴 매칭을 지원하며, 다양한 데이터 타입을 보다 직관적으로 처리할 수 있다.
이는 if - else 문을 대체할 수 있으며 코드 가독성과 유지보수성을 크게 향상시킨다.
JEP 441: Pattern Matching for switch
JEP 441: Pattern Matching for switch OwnerGavin BiermanTypeFeatureScopeSEStatusClosed / DeliveredRelease21Componentspecification / languageDiscussionamber dash dev at openjdk dot orgRelates toJEP 433: Pattern Matching for switch (Fourth Preview)Rev
openjdk.org
1. 기본적인 switch 패턴 매칭
기존의 스위치문에서는 정수형이나 열거형(enum) 만 사용할 수 있지만, jdk 21 부터는 객체 타입과 when 조건을 함께 활용할 수 있다. 이는 다양한 타입을 처리하는데 매우 유용하다.
switch (expression) {
case Type1 variable -> statement;
case Type2 variable -> statement;
case Type3 variable when condition -> statement;
default -> statement;
}
위와같은 패턴 매칭기법은 아래와 같은 예제로 활용할 수 있다.
public class SwitchPatternExample {
public static void main(String[] args) {
Object obj = "Hello";
switch (obj) {
case Integer i -> System.out.println("정수: " + i);
case String s -> System.out.println("문자열: " + s);
case Double d -> System.out.println("실수: " + d);
default -> System.out.println("알 수 없는 타입");
}
}
}
출력
문자열 : Hello
when 조건을 활용한 스위치 패턴 매칭
when 조건을 사용하여 아래와 같이 스위치 문에서 패턴 매칭을 하는것이 가능하다.
public class SwitchWithWhenExample {
public static void main(String[] args) {
Object obj = 42;
switch (obj) {
case Integer i when i > 100 -> System.out.println("100보다 큰 정수: " + i);
case Integer i when i > 10 -> System.out.println("10보다 큰 정수: " + i);
case Integer i -> System.out.println("10 이하의 정수: " + i);
case String s -> System.out.println("문자열: " + s);
default -> System.out.println("알 수 없는 타입");
}
}
}
출력 :
10보다 큰 정수: 42
기존 if-else 와 비교했을 때 장점
- 가독성 향상
- 기존 if-else 문은 여러 개의 if-else 블록이 길어지면서 코드가 복잡해진다.
- jdk 21 switch 패턴 매칭은 case 문과 화살표 문법을 이용하여 더 깔끔하게 표현할 수 있다.
- 유형 검사(Type Checking) 자동화
- 기존 if - else 문은 instanceof 를 사용하여 수동으로 타입을 확인해야 한다.
- 그러나 jdk 21 switch 패턴 매칭은 switch 문이 자동으로 타입을 매칭해서 코드가 간결해진다.
- 조건 추가(when) 로 코드 단순화
- 기존 if-else 문은 여러개의 if 문을 중첩해야 해서 코드가 길어진다.
- jdk 21 switch 패턴 매칭은 case Type variable when condition 형식을 사용하여 조건을 간결하게 표현 가능하다.
- 코드 유지보수성 향상
- 기존 if-else 문은 조건이 많아질수록 코드가 복잡해지고 유지보수가 어려워진다.
- jdk 21 switch 패턴 매칭은 스위치문을 활용하면 조건 추가가 용이하여 유지보수가 쉬워진다.
'부트캠프 > 후기 챌린지' 카테고리의 다른 글
| [멋쟁이사자처럼부트캠프] 백엔드 자바 21기 (2026.01.16) (0) | 2026.02.08 |
|---|---|
| [멋쟁이사자처럼부트캠] 백엔드 자바 21기 (2026.01.15) (0) | 2026.01.22 |
| [멋쟁이사자처럼부트캠] 백엔드 자바 21기 (2026.01.13) (1) | 2026.01.22 |
| [멋쟁이사자처럼부트캠] 백엔드 자바 21기 (2026.01.09) (0) | 2026.01.09 |
| [멋쟁이사자처럼부트캠] 백엔드 자바 21기 (2026.01.08) (1) | 2026.01.08 |