답변:
말하자면 엔진은 "후드"아래에있는 것입니다. 최종 사용자에게 보이지 않거나 최소한 매우 드물게 보입니다. 예를 들어 그래픽 엔진은 모든 렌더링 계산을 수행하지만 이러한 변경 사항을 모델링 할 실제 환경으로 전달합니다. 입력 : 수학. 출력 : 예쁜 색상. 엔진은 또한 더 높은 수준의 인터페이스와는 매우 다른 작동 변수를 가질 수 있습니다. 예를 들어, 앞의 예제에서는 원시 숫자 데이터를 사용하여 무언가가 그림자인지 질감인지에 대한 걱정없이 그래픽을 조작하고 있습니다. 모든 것은 해당 엔진에서 수행 할 방정식과 행렬 연산으로 추상화됩니다. 엔진을 주어진 시스템의 "커널"로 생각하고 나머지는 "쉘"과 비슷할 것입니다.
실제 세계인 CS101 유추를 사용하면 엔진은 자동차 엔진과 같습니다. 공기와 가스의 두 가지 입력이 필요합니다. 그런 다음 챔버로 전달하여 전기를 사용하여 세계에서 가장 작은 아크 용접을 생성합니다. 그런 다음 물건이 폭발합니다. 이로 인해 피스톤을 구동하는 2 개의 출력, 배기 및 압력 파가 생성됩니다. 나머지는 다양한 구동축 등에 의해 휠 운동으로 전달됩니다. 엔진은 엔진이고 자동차 자체는 쉘입니다. 자동차 엔진을 다른 목적으로 사용할 수 있습니다. 예를 들어 발전기를 운전하여 곡물을 갈아서 갈 수 있습니다. 엔진에 코팅이 있거나 에탄올이나 바이오 디젤과 같은 것들을 처리하기 위해 다른 입력을 사용할 수 있습니다.
요약하면 엔진은 일반적으로 격리되어 있지 않은 소프트웨어입니다. 그것은 소프트웨어의 원동력으로 작용하지만 일반적으로 외부 세계와는 거의 상호 작용하지 않습니다. 여러 엔진이 함께 작동하여 무료 출력을 생성하거나 필요에 따라 함께 파이프 라인 될 수 있습니다. 엔진은 미적 의미에서 사용자 경험과 관련된 일을 직접 수행하지 않지만, 데이터 흐름을 동기를 부여하고 우수한 응용 프로그램 성능을 제공 할 수있을만큼 충분히 반응하여 이러한 경험을 덜 유도합니다.
명사 / ˈenjən /
엔진, 복수
동력을 운동으로 변환시키는 움직이는 부품이있는 기계
특정 프로세스의 에이전트 또는 도구 인 것
# 1은 engine
소프트웨어적인 의미에서 의미가 있는 것으로서 무언가 발생하게합니다. 3D Graphics Engine은 입력을 받아 화면에서 동작으로 변환합니다. 정규식 엔진은 입력을 받아서 다른 출력으로 변환합니다.
# 2는 문장 엔진을 사용하는 것과 같습니다 . 이 의미는 소프트웨어에도 적용될 수 있습니다.
소프트웨어 engines
는 수동적으로 작업을 수행하는 프레임 워크 및 라이브러리 그 이상입니다. 소프트웨어 엔진은 입력을 기반으로 자체적으로 작동하며 수동적이지 않으며 일반적 run loop
으로 자신의 의지에 따라 처리 할 자체가 있습니다.
지금까지 가장 가까운 대답은 그것이 마케팅이라고 대답 한 것입니다.
이 문맥에서 단어의 사용이 어디서 왔는지 생각해 봅시다.
확실히 자동차 또는 제트 엔진은 입력을 받고 일부 출력을 생성하기 때문에 그렇게 부르지 않습니다. 그렇다면 기능뿐 아니라 인생의 많은 것들이 엔진이 될 것입니다.
우연히도, 암소는 기술적으로 말하지 않고 제정신이 아닌 엔진이 아니라는 것이 가장 확실합니다.
엔진은 다양한 유형의 에너지를 사용하고이를 운동으로 전환합니다 (예 : 특수 유형의 에너지).
소프트웨어에서 왜 사용합니까? 가장 현실적인 추측은 단순히 시원하게 들리기 때문입니다. 왜 우리는 일부 프로그래머를 '건축가'라고 부릅니까? 당신이 나에게 묻는다면 같은 이유.
또 다른 이유는 프로그래머가 일반적으로 은유를 사용하여 소프트웨어의 일부를 설명하기를 원하기 때문에 (자연스럽게는 그렇지 않기 때문에) 파악하기가 더 쉬울 수 있습니다.
필자의 직감은 응용 프로그램 도메인이 가득 찬 방식으로 은유를 악용하는 것은 나쁜 습관이라는 것입니다. 나는 클라이언트, 또는 프로그래밍을 모르거나 신경 쓰지 않는 사람들과 대화 할 때 유용 할 수 있다고 생각합니다. 그 외에 간단한 흐름도와 다이어그램이 저에게 도움이됩니다.
엔진은 입력을 받고 입력을 처리하며 출력으로 무언가를 전달하는 모든 것 입니다. 이 정의에 따르면 CMS 엔진은 입력을 기반으로 즉석에서 HTTP 응답을 생성하는 부분입니다. 데이터베이스 엔진은 쿼리를 가져 와서 실행 계획을 그리고 실행하여 결과를 반환하는 것입니다.
기술적으로 말하면 소 조차도 일종의 엔진입니다. 잔디를 잡고 가공하며 우유를 공급합니다.
엔진이라는 용어는 기계 공학에서 더 많이 사용되며 정확하게 동일하다는 것을 잊지 마십시오.
엔진의 또 다른 측면은 시스템의 핵심입니다. 예를 들어 데이터베이스 엔진은 모든 RDMS의 핵심입니다. 그러나 입력 및 리턴 결과를 가져 오는 동안 해당 엔진에 연결하는 IDE는 엔진으로 간주되지 않습니다.
IMHO, 엔진은 서브 시스템, 모듈 또는 라이브러리의 또 다른 단어입니다. IE-특정 목적을 위해 응집력있게 설계된 하나 이상의 구성 요소.
내 직업에서이 용어는 " XEngine.cs
해당 코드 파일 내에 여러 클래스 가있는 형식의 단일 코드 파일 ( 정적 메서드 만 포함) "을 의미하는 것 같습니다 . 나는 그것을 볼 때마다 조금씩 던져 버립니다. VB6 모듈 일 수도 있습니다.
필자는 개인적으로이 용어를 사용하지 않을 것입니다. 대부분의 경우 모호하고 의미가 없습니다 (자동차 나 레이싱 게임을 시뮬레이션하는 소프트웨어를 작성하지 않는 한). 그것은 예전의 "관리자"클래스와 같습니다. 이름은 "이것은 많은 일을합니다"외에는 아무 것도 말해주지 않으며, 이는 일반적으로의 중대한 위반임을 의미합니다 SOLID
.