본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.
부트캠프/후기 챌린지

[멋쟁이사자처럼부트캠] 백엔드 자바 21기 (2026.01.14)

by 방구석 취준생 2026. 1. 22.

* 해당 글은 백엔드 자바 강의이후 회고 글입니다.

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 문을 대체할 수 있으며 코드 가독성과 유지보수성을 크게 향상시킨다.

https://openjdk.org/jeps/441

 

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 패턴 매칭은 스위치문을 활용하면 조건 추가가 용이하여 유지보수가 쉬워진다.