흔히들 엔진이라고 하면 어떤 개념으로 받아 들이시나요???
사전적 정의는
engine ; 엔진
컴퓨터 프로그래밍에서, 엔진이란 다른 프로그램들을 위해 핵심적이고 본질적인 기능을 수행해주는 프로그램을 지칭하는 전문 용어이다. 엔진은 한 가지 목적을 위해 공동작용을 하는 일련의 프로그램들에 대해, 전반적인 운영을 조정하는 운영체계나 서브시스템, 또는 응용프로그램 내의 중심적인 프로그램이 될 수 있다. 이것은 또한 때때로 변화할 수 있는 알고리즘을 갖는 특수목적 프로그램을 묘사하는데 사용된다. 엔진이라는 용어가 쓰인 것 중 가장 잘 알려진 용례는 "검색엔진"인데, 이는 주어진 검색어에 맞는 주제색인을 찾는 알고리즘을 사용한다. 검색엔진은 색인을 찾는 접근방법에 있어, 색인 내에서 조건에 부합되는 내용을 찾고 우선 순위에 따라 배열하는 새로운 규칙을 반영하여 변화할 수 있도록 설계되었다. 엔진이라는 용어는 인공지능 분야에서 사용되는데, 지식베이스로부터 결과를 도출하기 위해 논리 규칙을 사용하는 프로그램을 "추론엔진"이라고 부른다. 이렇다고 하는데................... 통용적으로 엔진이라고 하면은 전체 코드 중에서 핵심이 되는 코드 라고 생각해도 되는 건가요??? |
제가 지금 집필중인 바야바 게임엔진에서 제가 쓴 부분을 인용하겠습니다.
적어도
게임 개발에 관심을 두고 있었던 분들이라면 Unity3D, Cry, Unreal, Cocos2D 등
다양한 게임 엔진에 대해서 들어보셨을 겁니다. 어떤 분은 엔진을 직접 다운 받아서 해보신 분도 계실거고, 어떤 분은 게임을 만들려면 엔진이란게 필요하다더라 정도만 알고계신 분도 분명 계실 겁니다. 게임 엔진을 쉽게 정의 내리자면 이렇게 표현할 수 있겠습니다. 게임 엔진이란 게임 화면 위에 그려지는
모든 형태의 이미지 출력을 위한 것이다 물론 사운드 엔진, 물리 엔진 등도 게임
엔진에 포함시키는 경우가 없진 않습니다만, 엄밀히 따져서 사운드 엔진과 물리 엔진은 게임 엔진과는 구분되야
합니다. 게임의 기반은 이미지이므로 어떤 플랫폼에서 이미지를 그리는데 필요한 코어 부분을 엔진이라고
정의할 수 있습니다.
보통.. 그래픽엔진과 피지컬엔진으로 나뉘는데..실제 내부엔 비슷하나 사용하는 방법이 조금씩 틀려서
이래저래 손에 익숙한 엔진을 선호하거나.. 자료가 많은 엔진을 습득하시는게 제일 현명한 방법입니다.
하지만 나중에 퍼포먼스 혹은 공동작업을 위해서 엔진을 튜닝하기 시작하면.. 이때부터는 노하우의
결정체가 엔진이 되는거죠..

저같은 경우는 저만의 정의로 생각하고 있는데,
프로그램에서 '엔진'은
특정 프로그램을 만들 때
편하게 빠르게 만들 수 있도록
도와주는 '구성체' 라고 생각하고 있어요.
'엔진'은 심장이라고도 할수 있죠.
생명체가 다양한 활동을 영휘해 나가는데는 심장이 뽐뿌질해주는 혈이 중요한 동력원이죠.
자동차도 보면 엔진이 그저 달리기위해 있는거라 생각하실수 있지만,
엔진이 생성하는 에너지로 에어컨도 돌리고, 음악도 듣고, 가끔 상쾌한 봄바람 맞기위해 파워 윈도우도 내리고,
파워 핸들인경우 핸들링도 좀더 적은 힘으로 가능하고, 비오면 와이퍼도 돌리고...
등등등 결국 운전자가 드라이빙하는데 필요한 각종 요소들을 좀더 손쉽게 획득할수 있게 서포트해주는 에너지 공급원이라 보면되죠.
물론 그 에너지엔 댓가가 따르고요.
엔진이라 하면 자동차 엔진