시뮬레이터 vs 에뮬레이터

2025. 1. 26. 23:44·iOS
반응형

👋 들어가기 전

첫 모바일 개발 스택인 안드로이드에서는 에뮬레이터를 제공해줬는데

현재 개발하고 있는 iOS는 시뮬레이터라고 부른다. 

 

무슨 차이가 있을까?? 천천히 살펴보자


✊ 호스트와 타겟

먼저 이름을 굳이 나눴다는 것은 차이가 있다는 뜻이니

그 차이가 무엇인지 먼저 알아보자.

 

호스트

호스트는 프로그램을 개발하는 PC 또는 프로그램이 실행되는 환경이다.

타겟

프로그램 결과물이 실행되는 환경

 

과연 이 두 개념이 시뮬레이터와 에뮬레이터를 구분하는데 어떤 역할을 하는 지 살펴보자.


☝️시뮬레이터

시뮬레이터는 host기기에서 host 아키텍처로 빌드하여 target과 비슷한 환경에서 실행한다.

특징

  • Host와 Target 아키텍처가 같아, 별도의 변환 없이 코드가 직접 CPU에서 실행된다. (네이티브 코드)
  • 애플리케이션 동작 환경을 재현
  • 물리적 하드웨어 특성을 재현하지는 않는다.
  • 실행 속도가 실제 기기와 거의 유사

✌️에뮬레이터

host기기에서 target 아키텍처로 빌드해서 target과 동일한 환경에서 실행한다.

특징

  • host와 target의 아키텍쳐가 다르므로 별도의 번역 과정이 필요
  • 번역 과정이 필요하므로 실행 속도가 시뮬레이터보다 다소 느릴 수 있다.
  • 하드웨어 특성을 재현한다. 

👍 정리

구분 시뮬레이터 에뮬레이터 실기기
아키텍처 Host = Target Host != Target Host = Target
목적 소프트웨어 동작 환경 재현 다른 CPU 아키텍처 재현 실제 하드웨어에서 실행
CPU 명령어 직접 실행 명령어 변환후 실행 직접 실행
속도 실제와 유사 다소 느림 실제와 동일
하드웨어 특성 재현 X O O
사용 예 iOS 시뮬레이터

macOS에서 iOS 앱 실행
Android 에뮬레이터

Windows에서 ARM . 앱 실행
실제 기기 

😀 소감 및 마무리

마지막으로 간단하게 정리해보자.

 

시뮬레이터

Host와 Target이 동일한 경우, 실행 환경을 소프트웨어로 재현하여 빠르고 효율적이다.

에뮬레이터

Host와 Target이 다를 때, Target 환경 전체를 소프트웨어로 재현하므로 느리지만 정확하다.

실기기

실제 하드웨어에서 실행하므로 가장 현실적인 테스트 환경.


출처

 

반응형

'iOS' 카테고리의 다른 글

.xctemplate  (0) 2025.03.22
DEFINES_MODULE was set 경고  (0) 2025.03.02
샌드박스와 파일시스템  (0) 2025.01.26
리팩토링 결과 발표  (0) 2025.01.11
패키지 만들기  (1) 2025.01.07
'iOS' 카테고리의 다른 글
  • .xctemplate
  • DEFINES_MODULE was set 경고
  • 샌드박스와 파일시스템
  • 리팩토링 결과 발표
Hamp
Hamp
남들에게 보여주기 부끄러운 잡다한 글을 적어 나가는 자칭 기술 블로그입니다.
  • Hamp
    Hamp의 분리수거함
    Hamp
  • 전체
    오늘
    어제
    • 분류 전체보기 (329) N
      • CS (30)
        • 객체지향 (2)
        • Network (7)
        • OS (6)
        • 자료구조 (1)
        • LiveStreaming (3)
        • 이미지 (1)
        • 잡다한 질문 정리 (0)
        • Hardware (2)
        • 이론 (6)
        • 컴퓨터 그래픽스 (0)
      • Firebase (3)
      • Programing Langauge (41)
        • swift (34)
        • python (6)
        • Kotlin (1)
      • iOS (134)
        • UIKit (37)
        • Combine (1)
        • SwiftUI (34)
        • Framework (7)
        • Swift Concurrency (22)
        • Tuist (6)
        • Setting (11)
        • Modularization (1)
        • Instruments (6)
      • PS (59)
        • 프로그래머스 (24)
        • 백준 (13)
        • LeetCode (19)
        • 알고리즘 (3)
      • Git (18)
        • 명령어 (4)
        • 이론 (2)
        • hooks (1)
        • config (2)
        • action (7)
      • Shell Script (2)
      • Linux (6)
        • 명령어 (5)
      • Spring (21)
        • 어노테이션 (6)
        • 튜토리얼 (14)
      • CI-CD (4)
      • Android (0)
        • Jetpack Compose (0)
      • AI (11) N
        • 이론 (10) N
        • MCP (1)
        • LangGraph (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    UIKit
    AVFoundation
    Tuist
    protocol
    property
    IOS
    SwiftUI
    GIT
    CS
    Swift
    백준
    dp
    Spring
    투포인터
    dfs
    프로그래머스
    boostcamp
    concurrency
    dispatch
    lifecycle
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Hamp
시뮬레이터 vs 에뮬레이터
상단으로

티스토리툴바