express를 접하고 api, framework, library에 대해 정확히 서로 다른 점을 이해할 필요가 있을 것 같다.
사전적 의미는 응용 프로그램에서 사용할 수 있도록, OS나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
쉽게 말해 설명서다. 내가 웹 사이트를 만드는데 어느 특정 사이트에 지도 정보 데이터를 공유할 경우 어떤 방식으로 정보를 요청해야 하고 어떠한 데이터를 받을 수 있는지에 대한 규격을 API라고 한다.
예) 다음 지도 API
Library와 Framework의 공통점은 다른 사람들이 만들어 놓은 것을 쓴다는 점이다. 그런데 Library나 Framework로 나눈다는 것은 코드 작성할 때 중심을 누가 가지고 있냐는 것으로 이해한다.
내가 중심이다. 즉 내가 원할 때 쓰고, 필요 없다면 안 써도 되는 것을 의미한다. Library 뜻 자체 그대로 도서관으로 예를 들어보자. 내가 읽고 싶은 책이나 원하는 책이 있으면 가져와서 읽으면 되는 것이고 없다면? 빌리지 않고 내 갈 길 가면 되는 것이다.
Javascript의 Library는? backbone, socket.io
Library와 다르게 주체가 Framework가 중심이다. 내가 컨트롤하는게 아닌 규칙에 따라 사용하는 것이다. 다르게 말하면 내가 필요할 때만 사용할 수 있는게 아니다.