프레임워크
- 뼈대, 틀, 구조
- 애플리케이션의 틀과 구조를 결정할 뿐 아니라, 그 위에서 개발된 개발자의 코드를 제어(IOC 개념)
- 구체적이고 확장 가능한 기반 코드를 가짐
- 설계자가 의도하는 여러 디자인 패턴의 집합으로 구성됨
- 대표적인 예로 스프링 프레임워크가 있다.
라이브러리
- 필요한 기능을 미리 함수로 만들어 놓은 것으로 개발자는 이것을 가져다 쓰기만 하면 됨
프레임워크와 라이브러리의 차이점
라이브러리는 제어권이 라이브러리를 가져다 쓰는 개발자에게 있다.
프레임워크는 나의 코드에 대한 제어권이 프레임워크에게 있다.
즉, 내가 작성한 코드를 제어하고 대신 실행하면 프레임워크이다.
자세한 내용 참고
API(Application Programming Interface)
- 라이브러리 개념에 명세까지 포함한 것으로 볼 수 있다.
- Java API, 구글맵 API 등