트러블 슈팅

If else vs Switch case 비교 분석

2022. 11. 4. 20:48

개발 공부를 할 때 작은 프로젝트단위에서만 개발을 해서그런지 if else 문을 많이 사용하긴 했지만 switch case 문은 한 번도 사용해 본 적이 없었다. 굳이 사용을 할 필요성이 없었기 때문이다.

그러다 최근 실무에서 패킷 분석을 하던 도중 switch case 문이 많은 곳에서 사용된다는 것을 확인했고 문뜩 if else 문과 비교분석을 통해서 정리를 해봐야 겠다는 생각이 들었다.

 

우선 구글을 돌아다녀서 확인 한 결과 가장 많이 나온 얘기는 if else 와 switch case 둘 모두 전체 프로그래밍의 성능에 큰 차이가 없기 때문에 의미에 따라 사용하는것이 좋다는 것이다.

 

물론 switch case 를 통해서 나타낼 수 없는 경우에는 당연히 if else를 사용하겠지만 둘 모두의 문법에서 사용 가능한 경우에는 프로그래밍의 성능에는 차이가 없다 하더라도 실제로 다른 속도를 갖고 있는것은 사실이다.

 

어떤 부분에서 성능 차이가 발생 할 것인가에 대한 해답은 if 문과 switch 문의 동작원리에 담겨져 있는데 if문 같은 경우에는 branch statement 기반으로 몇 번째 분기에서의 판단, 이후 실행과 무시에 대한 부분이라면 swithc case 문 같은경우에는 jump statement 기반으로 특정 메모리 영역에 대한 접근이라는 것이다.

한 눈에 알아볼 수 있듯이 당연히 switch case 문이 더 빠른 실행을 보여주는데 단 상수에 대한 접근을 전제로 빠른 성능을 기대할 수 있다는 것이다.

 

위와 같은 동작의 차이 때문에 조건의 수가 다양하고 많을수록 switch case 문을 사용하는것이 유리하다 라는것이 일반적이고 설계 구조에 맞춰서 어떤 구문이 더 적합할 지는 개발자 스스로 찾아 가야 할 것이다.

 

저작자표시 비영리 변경금지 (새창열림)
'트러블 슈팅' 카테고리의 다른 글
  • AOP 적용에 대한 고찰
  • Transaction Isolation 격리 단계
  • SQL 'LIKE' VS '=' 의 차이, 알고리즘
  • JAVA Reflection, annotation value 값 찾기
수달하나
수달하나
열심히 잘 사는게 목표
수달하나
Develop Lab
수달하나

링크

GITHUB
INSTAGRAM
  • 전체 글 (121)
    • 프로젝트 (10)
    • JAVA (2)
      • 비동기 처리 (4)
      • Stream (1)
      • 리플렉션 (0)
      • 파일 시스템 (1)
      • Optional (2)
      • JUnit (1)
      • Hash, HashCode (1)
      • 자료구조 (7)
    • Spring (17)
      • Filter (1)
      • 스프링 인터셉터 (1)
      • Dispatcher servlet (1)
      • MVC 패턴 (2)
      • Java bean (3)
      • DI (2)
    • JPA (8)
      • Fetch join (2)
      • JPQL (2)
      • 영속성 컨텍스트 (3)
    • 데이터베이스 (5)
      • Redis (1)
      • Querydsl (2)
      • Sql (1)
      • Encoding (1)
    • 개발 공부 (17)
      • 함수형 프로그래밍 (1)
      • MSA (1)
      • 블록 체인 (3)
      • 오픈소스 와 플랫폼 (2)
      • 상속 : 서브클래싱, 서브타이핑 (1)
      • SOLID 원칙 (2)
      • 트랜잭션 (0)
    • 트러블 슈팅 (7)
    • IT 서적 (27)
      • 이펙티브 자바 (1)
      • 객체 지향의 사실과 오해 (4)
      • 오브젝트 (7)
      • 모던 자바 인 액션 (10)
      • 멋진 신세계 (1)
      • 블록체인 무엇인가 (1)
      • 이기적 유전자 (1)
      • 한국의 IT 산업의 멸망 (1)
      • 가상 면접 사례로배우는 대규모 시스템 설계 기초 (0)
    • 소소한 이야기 (10)

인기 글

블로그 메뉴

  • 블로그 관리자
  • 글쓰기
hELLO · Designed By 정상우.
수달하나
If else vs Switch case 비교 분석
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.