개발 의문 해결

컴퓨터 프로그래밍에서 말하는 엔진은 무엇일까?

티시즌 2023. 3. 22. 22:48

 

컴퓨터과학 분야에서는 엔진이라는 단어가 많이 나온다.

엔진이 그래서 정확히 뭔데?

 

이 엔진은 내연기관 엔진과 같은 단어이다.

컴퓨터 프로그래밍에서 말하는 엔진이란 '어떤 프로그램을 위해 핵심적이고 본질적인 기능을 수행해주는 프로그램을 지칭하는 용어' 라고 한다.

 

위키백과에 따르면 엔진이라는 용어는 '컴퓨터의 아버지' 라고 불리는 찰스 배비지가 1837년에 발표한 기계적 범용 컴퓨터의 이름을 '해석기관 (Analytical Engine)' 이라 명명한 것으로부터 유래했다고 한다. 해석기관은 천공카드를 이용해 작동 규칙 (프로그램) 과 데이터를 입력받아 산술 계산을 수행하는 기계이다.

 

그러니까 뭐 ○●●●○●○○●○ 이런 정보가 들어오면 a+b 이런 정보로 해석했겠지?

그렇다면 좀더 의미를 확장해서, 엔진이란 백과사전 내지 상식 모음인 것 같다. 예를 들면 '먹는다' 라는 단어에 '생명 활동에 필요한 에너지를 얻기 위해 음식물을 입에 넣고 윗니와 아랫니를 맞부딪혀 잘게 쪼갠 다음 식도를 통해 위장으로 이동시킨다' 라는 의미가 함축된 것처럼.

약속된 문자열이 있으면 엔진이 기계어? 어셈블리어? 이런걸로 잘 번역해서 뒤에서 따단따단 작동한 다음에 결과를 우리가 해석할 수 있는 형태로 짠! 하는 역할을 한다.. 라고 이해해 본다.

 

곧 공부할 Node.js도 엔진의 일종이라고 하는데, 브라우저로 하여금 자바스크립트 형태로 입력된 문자열이 어떤 의미를 가지고 있는지 해석하고 그 문법에 따라 어떤 동작을 실행해서 결과를 보여주는 역할을 한다고 한다.