Module, API, Library, Framework, SDK

rang·2022년 8월 8일

개념정리

목록 보기
1/1

모듈

프로그램을 구성하는 한 부분이다. 컴포넌트, 구성요소, 부품 등이 있다.


API(Application Programming Interface)

모듈화하여 만들어진 기능을 제어, 제공하는 인터페이스이다.

프로그래머가 일정하게 관리할 수 있는 부분들만 노출시켜 시스템이 동작하는 방식에 관한 내부의 세세한 부분을 숨긴다.


library

프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것이다. 정적, 동적(링크, 로드) 라이브러리로 나뉜다.

  • 정적 라이브러리
    컴파일러가 소스 파일을 컴파일할 때 참조되는 프로그램 모듈이다. 빌드 시에 라이브러리가 제공하는 코드를 실행파일에 넣는 라이브러리이다. 시스템환경이 변해도 앱에는 아무 영향이 없으며 완성된 앱을 안정적으롯 ㅏ용 가능하다. 사용하는 모든 오브젝트 코드를 실행파일에 내장하므로, 메모리에 로드되는 앱 코드가 많아진다.

  • 동적 라이브러리
    프로그램 수행 도중 해당 모듈이 필요할 때 호출해 사용하는 프로그램 모듈이다. 앱을 빌드할 떄 존재하지 않던 라이브러리도 사용 가능하다. 플러그인 형식으로 경로를 설정해야 하며, 설치가 따로 필요하다.

    • 동적 링크 라이브러리
      실행파일과 관련된 라이브러리 코드를 모두 메모리에 읽어들여 호출관계를 조정한 다음 앱이 실행된다
    • 동적 로드 라이브러리
      실행파일 실행 시 읽어 들이지 않은 라이브러리를 추가적으로 이요하는 라이브러리이다.

Framework

정의된 API를 제공하는 소프트웨어 라이브러리의 모음이다.
애플리케이션의 틀과 구조를 결정할 뿐만 아니라, 그 위에 개발된 개발자의 코드를 제언한다.


SDK(Software Development Kit)

소프트웨어 개발 도구 모음이다.
개발에 도움이 될 개발 도구 프로그램, 디버깅 프로그램, 문서, API 등이 있다.

소프트웨어 프로그래머가 사용하여 특정한 소프트웨어 꾸러미, 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴포터 시스템, 게임기, 운영체제 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구의 집합


차이 비교

API vs SDK

APISDK
목적소프트웨어 연결 및 통합다양한 개발 도구 포함
형질가볍고 빠르며 전문화되어 있음견고함. 많은 유틸리티를 포함
사용애플리케이션에 특정 기능을 추가하는데 사용새로운 애플리케이션을 생성, 하나의 패키지로 많은 기능을 추가하는데 사용

Library < API, Framework < SDK

Library vs Framework

프레임워크 코드가 프로그래머 코드와 라이브러리 코드를 호출하고, 프로그래머 코드가 라이브러리를 호출한다.

프레임워크는 애플리케이션의 흐름을 통제하고, 라이브러리는 흐름을 통제하지 않는다.





출처
API vs SDK vs Framework vs Library
API - 노마드코더

SDK, API의 개념과 차이점
API vs SDK
Library vs API

Library vs Framework - 노마드코더
API vs Library vs Framework - 우아한Tech

profile
천천히 가더라도 앞으로만 나아가자

0개의 댓글