SDK(System Development Kit)

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

API (Application Programming Interface)

  • 개발자가 공개적으로 노출한 멤버들을 사용하여 기능에 접근하고, 해당 기능을 구현하는데 사용된 코드를 숨길 수있는 인터페이스

Framework

  • 문제를 풀기 위한 추상적 설계를 구체화한 클래스의 집합.
  • 설계, 구현을 재사용하게끔 협업화된 형태로 클래스를 제공하는 것.
  • 라이브러리와 달리 앱의 틀과 구조를 결정하며, 그 위에 개발된 개발자의 코드를 제어한다.
  • 구체적이고, 확장 가능한 기반 코드를 보유한다.
  • 설계자가 의도하는 여러 디자인 패턴의 집합으로 구성돼있다.

Library

  • 컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것.
  • 정적, 동적(링크, 로드) 라이브러리로 나뉨
    • 정적 라이브러리
      • 컴파일러가 소스파일을 컴파일할 때 참조되는 프로그램 모듈
      • 빌드 시에 라이브러리가 제공하는 코드를 실행파일에 넣는 라이브러리
      • 시스템환경이 변해도 앱에는 아무 영향 없으며, 완성된 앱을 안정적으로 사용 가능하다.
      • 사용하는 모든 오브젝트 코드를 실행파일에 내장하므로, 메모리에 로드되는 앱 코드가 많아진다.
    • 동적 라이브러리
      • 프로그램 수행 도중 해당 모듈이 필요할 때 호출해 사용하는 프로그램 모듈
      • 앱을 빌드할 때 존재하지 않던 라이브러리도 사용 가능하다.
      • 플러그인 형식으로 경로를 설정해야 하며, 설치가 따로 필요하다.
      • 동적 링크 라이브러리
        • 실행파일과 관련된 라이브러리코드를 모두 메모리에 읽어들여 호출관계를 조정한 다음 앱이 실행된다.
      • 동적 로드 라이브러리
        • 실행파일 실행 시 읽어 들이지 않은 라이브러리를 추가적으로 이용하는 라이브러리

Framework Library 차이

  • 누가 누구를 호출하느냐의 차이이다.
    • 프레임워크에서는 프레임워크 코드가 내 코드를 호출한다. (프레임워크 -> 내 코드)
    • 라이브러리에서는 내 코드가 라이브러리를 호출한다. (내 코드 -> 라이브러리)
  • 내 코드와 라이브러리 코드가 행동을 정의한다면, 프레임워크 코드는 통제 흐름을 정의한다.

참고
https://you9010.tistory.com/147
https://waaan.tistory.com/15
https://waaan.tistory.com/16

+ 따끈한 최근 게시물