에뮬레이터(Emulator)와 시뮬레이터(Simulator)의 비교 등으로 많은 글이 검색되는데, 다들 자기 분야에 적용되는 개념으로 설명할 뿐더러 (내가 보기엔) 모호한 경계를 남겨두고 있어 개념 이해가 잘 되지 않는다.
그나마 명료하게 구별한 링크를 보면 아래와 같이 정리한다.
Emulation vs. Simulation
A simulator creates an environment that mimics the behavior and configurations of a real device. On the other hand, an emulator duplicates all the hardware and software features of a real device.
What Are Simulators?
A simulator mimics the basic behavior of a device.
What Are Emulators?
An emulator duplicates the thing exactly as it exists in real life.
요약하자면 이렇다.
Emulation: 어떤 사정이 있어서 갖고 있지 않은 장치(하드웨어 and/or 소프트웨어)를 대체하기 위해 사용하는 물건(?). 실제 장치를 다른 식으로 구현했기 때문에 현실적으로 차이가 발생할 수 있지만, 필수 요구사양에 있어선 거의 유사하고 유의미한 오차가 없다는 전제가 필요하다. 에뮬레이터 자체를 개발할 땐 디버깅도 하고 그러겠지만, 일단 완성 및 승인된 에뮬레이터는 원래의 장치와 동일하다는 가정 하에 사용된다 (단 사전 정의된 사용 범주 내에서). 에뮬레이션은 그 장치 외부에서 이게 '가짜 장치'라는 걸 식별할 수 없도록 동작하는 걸 목적으로 한다.
Simulation: 실제 발생한 이벤트를 모의로 발생시켜 보기 위한 환경. 하드웨어 및 소프트웨어 장치가 동원되고, 내/외적 환경 요소를 일으키기 위한 모사 요인도 동원되며, 확률통계적 모델도 동원된다. 시험을 하는 환경, 시스템의 관점에서 수행하는 행위. 시뮬레이션은 그 시스템 내부의 장치들과 진행 흐름이 이게 '가짜 환경'이라는 걸 식별할 수 없도록 수행되는 걸 목적으로 한다.
https://www.perfecto.io/blog/emulation-vs-simulation
2024.09.16
돌아보니 설명이 주절주절 장황하여 간단 요약한다면,
1. 에뮬레이션: 특정 장치를 가짜로 모의.
시험환경에서 DUT(Device Under Test)만 진짜고 나머지 상호작용 장치들은 에뮬레이션 하는 경우가 많다. 클라이언트 개발 시 서버 기본 기능을 모의 구현해 시험하는 식.
2. 시뮬레이션: DUT를 둘러싼 환경을 가짜로 모의.
차량 충돌 테스트 시 시험 대상 차량은 진짜지만 들이받는 건 다른 차량이 아니라 충돌 장치를 쓰는 경우.
따라서 당연히 에뮬레이터가 기본 시뮬레이션 기능을 제공할 수도 있고, 시뮬레이터에 일부 요소의 에뮬레이션 기능이 포함될 수도 있다.
'Work' 카테고리의 다른 글
글로벌 기업들의 넌글로벌 태도 (0) | 2022.04.08 |
---|---|
Static library, Shared library, Dynamic Link Library (0) | 2022.03.27 |
2132년 (0) | 2022.01.17 |
회사 품질이 나아지지 않던 이유 (0) | 2021.12.20 |
Python - List의 요소 위치 찾기 (0) | 2021.12.02 |