인터페이스, API, UI, Jar, 라이브러리, 프레임워크 비교

Q0. 기존에 알던 지식

Restful API이나 드래그 라이브러리, 스프링 프레임워크와 같이 개발하면서 사용 중인 각 용어들은 서로 다른 부류의 키워드로 정리된다. 하지만, 여태까지 내가 생각했던 API, Jar, 라이브러리, 인터페이스, 프레임워크를 먼저 적어보면 다음과 같다.

  • 인터페이스
    서로 간에 연결하는 하나의 장치.
  • UI 
    화면에 표시되는 컴포넌트.
  • API
    지난번에 정리하다보니 풀네임을 알게됐다. 말 그대로 어플리케이션 간의 인터페이스
  • Jar
    War, Jar와 같은 프로젝트 기능을 내보내는 하나의 확장자
  • 라이브러리 
    클라이언트 단에서 이미 만들어진 기능들을 모듈로 제공받는것.
  • 프레임워크 
    이미 개발하기 쉽게 많은 기능이 탑재되어 있는 하나의 장치.

 

 

Q1. 옳바른 개념 정리

내가 기존에 아는 만큼 작성했던 내용에 옳바른 개념을 다시 정리하였다.

  • 인터페이스 (Interface)
    서로 간에 연결하는 하나의 장치.
    시스템 간에 상호 작용하는 경계 또는 접점. 두 요소 간의 상호 작용을 가능하게 하는 규칙라는 의미.
  • UI (User Interface)
    화면에 표시되는 컴포넌트.
    컴퓨터 시스템과 사용작간의 접점이라는 의미.
    흔히, 컴퓨터와 사용자간의 접점으로는 키보드, 마우스와 같은 제어가능 입출력장치라면, 예를 들어 티스토리라는 웹 페이지(= 컴퓨터 시스템)과 사용자간의 접점은 해당 시스템 화면에 출력되는 컴포넌트 요소가 접점이 되어 소통을 한다고 보면 된다. 

  • API (Application Programming Interface)
    지난번에 정리하다보니 풀네임을 알게됐다. 말 그대로 어플리케이션 간의 인터페이스
    소프트 웨어 컴포넌트 간의 상호 작용을 위한 도구나 규격을 의미.
    흔히, 웹 API는 웹서비스간의 통신을 위한 API이고 Java API는 자바 언어에서 제공하는 라이브러리와 클래스의 집합.

  • Jar (Java ARchive)
    War, Jar와 같은 프로젝트 기능을 내보내는 하나의 확장자
    자바 클래스 파일, 메타데이터 및 리소스를 하나의 압축된 파일로 묶은 형태를 의미.
    흔히, 자바 애플리케이션 프로젝트를 배포하거나, 패키지를 외부 라이브러리로 사용하기 위한 JAR파일로 압축하여 공유하거나 재사용을 하는 용도.
  • 라이브러리 (Library)
    클라이언트 단에서 이미 만들어진 기능들을 모듈로 제공받는것.
    재사용 가능한 코드와 리소스의 집합. 특정 기능을 수행하는데 도움을 주는 프로그래밍 구성 요소를 의미.
    흔히, 자료 구조, 알고리즘, 파일 입출력 관련 기능 등을 제공하는 라이브러리
  • 프레임워크 (Framework)
    이미 개발하기 쉽게 많은 기능이 탑재되어 있는 하나의 장치.
    기본적인 뼈대를 제공하는 개발 도구로 생산성의 효율을 향상시켜 정해진 틀을 가지고 작업을 할 수 있는 의미.

    흔히, Spring Framework (자바 기반의 엔터프라이즈(=자동화) 애플리케이션을 개발하기 위한 프레임워크)


Q2. 결론적으로

인터페이스서로 다른 OO간에 소통을 위한 접점의 기본 개념.
UI 시스템과 사용자간에 소통을 위한접점. (= 사용자와 통신을 가능하게 하는 인터페이스)
API 시스템과 시스템간에 소통을 위한접점. (= 프로그래밍간의 통신을 가능하게 하는 인터페이스)

JAR는 배포 또는 외부 라이브러리로 사용을 위한 자바 애플리케이션 압축 파일 
라이브러리는 이미 만들어진 모듈화된 외부 기능을 (개발자가) 간편하게 끌어올 수 있는 용도의 파일.
프레임워크는 이미 정해진 개발 환경 뼈대를 제공하는 코드 모음을 의미.
TOOL은 , 프레임워크와는 다르고, IDE와 같은 하나의 도구를 의미.