프레임 워크 대 라이브러리 대 IDE 대 API 대 SDK 대 툴킷의 차이점은 무엇입니까? [닫은]


144

몇 가지 예를 원합니다. 항상 혼란스러워서 몇 가지 예를 들어 더 잘 이해할 수 있습니다.

또한 : Eclipse는 API 또는 IDE입니까?


1
일식은 IDE입니다
Thielicious

답변:


294

IDE는 (예 : 양식 디자이너, 자원 편집자 등으로) 개발 컴파일 및 응용 프로그램을 디버깅에 대한 추가 지원하는 suped 업 텍스트 편집기 - 통합 개발 환경입니다. 예 : Eclipse, Visual Studio.

도서관은 당신이 자신의 코드에서 호출 할 수있는 당신은 쉽게 / 더 빨리 일을 할 수 있도록하는 것이 코드의 덩어리입니다. 예를 들어, 비트 맵 처리 라이브러리는 비트 맵 이미지를로드하고 조작하는 기능을 제공하므로 모든 코드를 직접 작성하지 않아도됩니다. 일반적으로 라이브러리는 하나의 기능 영역 만 제공합니다 (이미지 처리 또는 zip 파일에서 작동)

API 라이브러리에 인터페이스 - (응용 프로그램 프로그래밍 인터페이스)는 당신을 위해 일을하기를 물어 호출 할 수있는 라이브러리의 기능 / 방법을 의미하는 용어입니다.

SDK (소프트웨어 개발 키트) (종종 별도의 도구 응용 프로그램, 데이터 파일과 샘플 코드) 라이브러리의 라이브러리 또는 그룹을 그 원조 당신의 코드를 개발하는 운영 체제의 기능을 사용하기위한 용도 특정 시스템 (예를 들어, 확장 코드 (이다 Windows SDK), 특정 시스템 (DirectX SDK)을 통해 3D 그래픽 그리기, 다른 응용 프로그램 확장을위한 추가 기능 작성 (Office SDK) 또는 Arduino 또는 휴대폰과 같은 장치가 원하는 작업을 수행하도록 코드 작성) SDK에는 여전히 단일 초점이 있습니다.

툴킷은 SDK를 같이 - 그것은 당신이 쉽게 장치 또는 시스템에 액세스 할 수 있도록하는 데 사용할 수있는 도구 (종종 코드 라이브러리)의 그룹입니다 ... 비록 아마 단지 코드 라이브러리에보다 도구 및 응용 프로그램을 제공하는 더 많은 초점 .

프레임 워크는 큰 라이브러리 또는 라이브러리 그룹 다양한 서비스를 제공합니다 (이 아닌 대부분의 도서관 / SDK를이처럼 아마 하나의 초점을 맞춘 기능)입니다. 예를 들어, .NET은 응용 프로그램 프레임 워크를 제공합니다. 필요한 모든 이종 서비스 (예 : Windows, 그래픽, 인쇄, 통신 등)를 사용하여 방대한 응용 프로그램을 작성하는 것이 더 쉽습니다. "라이브러리"는 필요한 모든 것을 지원합니다. 종종 프레임 워크는 작업의 일부를 수행하기 위해 라이브러리 코드를 사용하는 응용 프로그램을 작성하는 대신 자신의 코드를 작성하는 완전한 기반을 제공합니다.

물론 이러한 설명과 정확히 일치하지 않는 많은 예제가 있습니다.


3
SDK, 라이브러리 또는 프레임 워크에 API가 포함되어 있다고 말할 수 있습니다.
Bastien Vandamme

6
SDK는 API (예 : Facebook API 용 javascript SDK)를 쉽게 사용할 수있는 클라이언트 별 구현입니다. API 설명서의 SDK 섹션에 여러 언어가 표시되는 경우가 종종 있습니다. 예를 들어 twilio API에는 API에 대한 Python, ruby, C # 및 Java SDK가 있습니다. 사물을 조금 더 혼동시키기 위해 API 라이브러리 및 SDK라고 부르며, 두 용어가 상호 교환 적으로 사용되는 것을 들었습니다.
Rob

97

차 비유

여기에 이미지 설명을 입력하십시오

IDE : MS Office of Programming. 여기에는 코드를 입력하는 위치와 더 행복한 프로그래머를위한 몇 가지 추가 기능이 있습니다. (예 : Eclipse, Netbeans ). 차체 : 그것은 당신이 실제로 만지고보고 작업하는 것입니다.

라이브러리 : 라이브러리는 종종 여러 프로그램 파일로 그룹화되지만 단일 아카이브 파일로 패키지 된 함수의 모음입니다. 여기에는 다른 사람들이 만든 프로그램이 포함되어 있으므로 휠을 다시 만들 필요가 없습니다. (예 : junit.jar, log4j.jar ). 라이브러리는 일반적으로 핵심적인 역할을 수행하지만 모든 작업을 배후에서 수행하며 GUI는 없습니다. 자동차 엔진.

API : 도서관 출판사 문서. 이것이 내 라이브러리를 사용해야하는 방법입니다. (예 : log4j API , junit API ). 자동차의 사용자 설명서-예, 자동차에도 하나가 함께 제공됩니다!


키트

키트 란 무엇입니까? 특정 서비스를 제공하기 위해 함께 작동하는 많은 관련 항목의 모음입니다. 누군가가 의약품 키트를 말하면 응급 상황에 필요한 모든 것을 얻을 수 있습니다 : 석고, 아스피린, 거즈 및 방부제 등

여기에 이미지 설명을 입력하십시오

SDK : 맥도날드의 행복한 식사 . 메인 코스, 음료, 디저트 및 보너스 장난감 : 당신은 당신이 필요로하고 (필요하지 않은) 상자를 깔끔하게 포장했습니다. SDK는 패키지로 조립 된 다양한 소프트웨어 구성 요소로, 즉시 사용할 수 있도록 "준비가 완료되었습니다". 그것은 종종 여러 라이브러리를 포함 할 있지만 반드시 플러그인, API 문서, 심지어 IDE 자체를 포함 할 필요는 없습니다. (예 : iOS 개발 키트 ).

툴킷 : GUI. GUI. GUI. 프로그래밍 컨텍스트에서 '툴킷'이 들리면 종종 GUI 개발 용 라이브러리 세트를 참조합니다. 툴킷은 UI 중심이기 때문에 종종 화면 페인팅 유틸리티를 제공하는 플러그인 (또는 독립형 IDE)이 제공됩니다. (예 : GWT )

프레임 워크 : 일반적인 개념은 아니지만 프레임 워크는 키트로 볼 수 있습니다. 또한 특정 코딩 구조 및 패턴 (따라서 프레임 워크 ) 을 제공하는 라이브러리 (또는 함께 작동하는 라이브러리 모음 )가 있습니다. (예 : 스프링 프레임 워크)


41
API는 단순한 문서가 아닙니다. 실제로 그것은 전혀 문서화되지 않았습니다. 귀하의 비유를 이해하지만 설명서 또는 API 설명서는 자동차 매뉴얼이며 API는 자동차의 보드 및 버튼입니다.
Bastien Vandamme

1
GUI와 API의 차이를 수행 할 수 있습니다. GUI (Graphical User Interface)는 전문가가 아닌 최종 사용자를위한 인터페이스입니다. API (Application Programming Interface)는 다른 프로그램의 인터페이스입니다. 개발 및 애플리케이션 할 때 GUI 또는 API 또는 둘 다를 작성할 수 있습니다. 다른 유형의 인터페이스를 만들 수도 있습니다.
Bastien Vandamme

GUI 뒤에는 항상 API가 있습니다. GUI는 사용 사례 만 단순화합니다. IT에서는 코드 대신 그래픽 인터페이스와 같은 비전문적 인 이유가 더 많습니다. 당신의 자동차 논리에 관하여 : 당신은 당신이 스스로 자동차를 운전할 수 없을 것입니다, 당신은 운전하는 방법을 배우고 알아야합니다 (운전 수업을 튜토리얼 또는 문서로 고려하십시오). 그것을 달성하고 싶지 않다면, 운전 기술이 필요하지 않기 때문에 (이 경우에는 프로그래밍 기술이 없기 때문에) 대신 버스 또는 택시를 타기를 원할 수 있습니다. 따라서 공용 운송 수단을 GUI로 간주합니다. 웃기는 소리지만 사실입니다.
Thielicious

"[library]에 GUI가 없습니다"에 동의하지 않습니다. JavaScript 세계에서는 라이브러리가 GUI를 포함하는 것이 매우 일반적입니다.
user1505520

5

안드로이드 개발을 고려하십시오 :

IDE : 이클립스 등

라이브러리 : android.app.Activity 라이브러리 (모든 코드가 포함 된 클래스)

API : 기본적으로 우리가 호출하는 모든 기능

SDK : Android SDK는 Android (---- 도구-DDMS, 에뮬레이터 ---- 플랫폼-Android OS 버전, ---- 플랫폼-) 용 앱을 빌드, 테스트 및 디버깅하는 데 필요한 API 라이브러리 및 개발자 도구를 제공합니다. 도구-ADB, ---- API 문서)

툴킷 : ADT 번들 일 수 있음

프레임 워크 : 큰 라이브러리이지만 아키텍처 지향적 인 것


3

다시 말해...

IDE 메모장조차 IDE입니다. 코드를 작성 / 컴파일하는 모든 소프트웨어는 IDE입니다.

라이브러리 빠른 사용을 위해 기능 / 방법을 단순화하는 코드 묶음입니다.

API 작업하는 기능 / 구성을위한 프로그래밍 인터페이스로서 사용법이 종종 문서화됩니다.

SDK Extras 및 / 또는 개발 / 테스트 목적.

ToolKit Tiny (빠른 사용), 종종 GUI.

그래픽 인터페이스가있는 GUI 앱은 API와 달리 프로그래밍에 대한 지식이 필요하지 않습니다.

다른 코드와의 충돌없이 컴팩트 한 처리를 위해 네임 스페이스로 래핑 된 API / 거대한 라이브러리 / 스 니펫 / 외부 범위에서 캡슐화 된 프레임 워크 무리.

MVC 대규모 애플리케이션을 위해 모델, 뷰 및 컨트롤러로 분리 된 디자인 패턴입니다. 그것들은 서로 의존하지 않으며 다른 코드를 돌보지 않고 변경 / 개선 / 교체 할 수 있습니다.

예:

자동차 (모델)
제시되는 객체입니다.
IT의 예 : HTML 양식.


카메라 (보기)
물체 (차)를 볼 수있는 것.
IT의 예 : 웹 사이트를 양식으로 렌더링하는 브라우저


운전사 (컨트롤러)
그 차를 운전하는 사람.
IT의 예 : 제출중인 양식 데이터를 처리하는 함수

스 니펫 몇 줄의 작은 코드는 완전하지는 않지만 빠른 공유에 가치가 있습니다.

플러그인 지정된 프레임 워크 / API / 라이브러리 전용 기능.

애드온 특정 GUI를위한 추가 모듈 또는 서비스.


2

SDK는 소프트웨어 개발 키트를 나타내고 IDE는 통합 개발 환경을 나타냅니다. IDE는 소프트웨어이거나 프로그램은 Xcode와 같은 쓰기, 컴파일, 실행 및 디버그에 사용됩니다. SDK는 IDE의 기본 엔진으로, 앱이 액세스해야하는 모든 플랫폼 라이브러리를 포함합니다. 일반적으로 그래픽 도구가 없기 때문에 IDE보다 기본입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.