Application Programming Interface 란
응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
서비스를 제작 할 예정이다.
그 서비스는 사용자들끼리 맛집을 공유하는 서비스인데
글로만 나오는 게 아니고 지도의 위치를 짜고 서로 공유할 수 있는 서비스를 만들려고 한다.
여기서 핵심은 '지도' 이겠지만 지도를 만들기에는 시간도 오래 걸리고 시중에 나온 '지도'보다 더 좋게 만들 수가 없다.
그래서 Google사의 지도 서비스를 이용하려고 한다.
Google사에서는 우리들의 프로그램을 사용하려면
/map/위도& 경도 http://map.yoon.com/map/37.231&23.578
위와같이 URL로 요청을 보내면
개발자가 원하는 지도에 관련된 정보를 받을 수 있다.
Frame : 틀, 뼈대
work : 일(하다)
어떤 틀 안에서 일하다
응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경
프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술이다.
소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야한다.
특정 개념들의 추상화를 제공하는 여러 클래스나 컴 포넌트로 구성되어 있다.
추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의함
컴포넌트들은 재사용이 가능하다.
높은 수준에서 패턴을 조작화 할 수 있다.
상호 협력하는 클래스와 인터페이스의 집합이다.
응용 프로그램이 수동적으로 프레임워크에 의해 사용된다.
Spring Framework, Junit, Ruby on Rails
라이브러리의 단어 자체는 도서관을 의미한다.
도서관을 이용할 때는 필요한 책이 있고 그 필요한 책을 대여하기 위해서 도서관에 가서 책을 보고 그렇게 대여를 하게된다.
즉,
응용 프로그램 개발을 위해 필요한 기능(함수)을 모아 놓은 소프트웨어
라이브러리는 단순 활용가능한 도구들의 집합을 말한다.
즉, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취하고 있다.
능동적ex)
즉, 필요할 때 호출해서(능동적으로) 사용한 다는 의미이다.
Library와 API의 차이점은 구현 로직의 유무이다.
Library와 Framework의 차이점은
응용 프로그램의 흐름 주도권을 누가 가지고 있느냐 이다.