https://mangkyu.tistory.com/4

1. Framework(프레임워크)


프레임워크는 뼈대나 기반구조를 뜻하는데, Application 개발 시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능들을 위해 어느정도 뼈대(구조)를 제공해주는 것입니다. 그러므로 그러한 뼈대 위에 프로그래머가 코드를 작성하여 Application을 완성시켜야 합니다. 어느정도 뼈대를 제공해 주기 때문에, 객체 지향 개발을 하면서 일관성 부족 등의 문제를 해결해 줍니다.

그래서 소프트웨어에서는 프레임워크를 아래와 같이 정의하곤 합니다.

<aside> 💡 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합

</aside>

https://www.edwith.org/boostcourse-ios/lecture/17994/

2. Library(라이브러리)


Library는 특정 기능에 대한 도구 or 함수들을 모은 집합입니다. 즉, 프로그래머가 개발하는데 필요한 것들을 모아둔 것입니다.

Library는 프로그래머라면 누구나 한번쯤은 써봤을 것이며, 스스로 써보지 않았다라고 생각하는 사람도 라이브러리가 무엇인지 몰라서 그렇게 얘기하는 것일 뿐, 자기도 모르게 써보았을 것입다. Library 역시도 아래와 같이 간단하게 정의할 수 있습니다.

<aside> 💡 단순 활용이 가능한 도구들의 집합

</aside>

언뜻 보면 Framework와 Library 모두 개발자에게 필요한 것들을 모아둔 것이라고 착각할 수 있지만 큰 차이가 존재합니다.