Hello

프레임워크 vs 라이브러리 vs API

by 볼빵빵오춘기

프레임워크(framework)

집을 짓는다고 가정하자

집을 짓는다고 가정하였을 경우 처음에 어떠한 집을 지을지 완벽하게 지어진 집을 생각한다.

생각해보면 위와 같은 집을 짓기위해서는 기초공사, 골조공사, 외장공사, 내장공사, 마무리공사 등 여러 가지 공정을 해야한다.

여기서 프레임워크는 뼈대까지 만들어주는 골조공사까지 해준다고 생각하면 된다.

프레임워크가 골조공사까지 해줌으로써 이제 외장공사 할 때 어떤 벽돌을 쓰고 내장공사 할 때 보일러는 어디다 두고 공사할지는 이제 바톤을 이어받아 하면 되는것이다

.

 

땅에 집을 지을 위치를 잡고 표시하는 틀 작업인 기초공사, 뼈대를 잡아준 골조공사까지 프레임워크가 해주었기에 그 틀과 뼈대에 맞게 집을 짓기만 하면되는것이다.

즉, 다시 프로그래밍으로 표현을 하면 틀과 뼈대에 맞게 해야하므로 프레임워크가 제공하는 규칙과 흐름에 따라 개발해야 하지만 초기 틀과 뼈대 이런 부분을 해야하는 부분과 많은 부분을 자동으로 처리해주는 부분이 있기 때문에 빠르게 개발할 수 있다.

 

라이브러리(Library)

라이브러리(Library) 프로그래밍언어의 의미말고도 도서관, 서재라는 의미를 가지고 있다. 

이것을 생각하면 우리는 도서관, 서재에서 책을 골라 보게된다. 

프로그래밍 단어로 옮기면 책은 코드 모음, 골라서 보는것은 호출해서 사용 한다고 생각하면된다. 

즉, 특정 기능을 제공하는 코드 모음으로, 개발자가 필요할 때 이를 호출하여 사용한다.

주로 로컬 프로젝트 내에서 코드 재사용을 돕고, 특정 작업을 간편하게 처리하도록 한다.

 

API(Application Programming Interface)

API는 두 소프트웨어 간의 상호작용을 정의하는 인터페이스이다.

※ 인터페이스 : 상호간의 소통을 위해 만들어진 접점

주로 외부 서비스나 시스템과 통신할 때 사용되며, HTTP 요청을 통해 데이터를 주고받는 경우가 많다.

 

프레임워크 vs 라이브러리 vs API

  프레임워크 라이브러리 API
주도권 프레임워크가 주도권을 가지고, 개발자가 그 안에서 작업 개발자가 주도권을 가지고 필요할 때 호출하여 사용 개발자가 API 명세에 따라 호출, 통신 규약 준수 필요
기능 전체적인 구조와 뼈대를 제공하여 개발을 안내 특정 기능을 제공하는 도구 모음 다른 소프트웨어나 서비스와 상호작용을 위한 인터페이스 제공
예시 스프링 프레임워크, Angular, Django Log4j, Apache Commons, jQuery Google Maps API, Twitter API, JDBC API

 

헷갈릴때는

프레임워크와 라이브러리 '주도권을 누가 갖지' 생각하기

라이브러리와 API는 호출해서 사용하는 것은 동일하나 '어떤 기능을 하는지' 생각해보면 된다.

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기