
👋 들어가기 전

첫 모바일 개발 스택인 안드로이드에서는 에뮬레이터를 제공해줬는데
현재 개발하고 있는 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 |
패키지 만들기 (0) | 2025.01.07 |