[iOS] Framwork? Liberary? 프레임워크와 라이브러리의 차이
참고하면 좋은 글 - [개발상식] 프레임워크(Framework) 와 라이브러리(Library)의 차이
[개발상식] 프레임워크(Framework) 와 라이브러리(Library)의 차이
🚀 "프레임워크와 라이브러리의 차이를 아시나요?"" "음... 프레임워크는 뼈대이고 라이브러리는 모듈 같은 것이고....😰" "그럼 최근에 사용하신 프레임워크와 라이브러리를 알려주세요." "... ex
cocoon1787.tistory.com
프레임워크
프레임워크는 말 그대로 일 할 수 있는 최소 단위가 다 갖추어진 코드를 제공하는 집합체다.
iOS의 경우 애플에서 제공하는 대표적인 프레임워크로는 Cocoa Touch Framework / Cocoa Framework 가 있으며
이 둘의 차이는 iOS 개발에는 Cocoa Touch Framework 를
MacOS 개발에는 Cocoa Framework 를 사용한다
라이브러리
여러번 반복해서 사용할 것 같은 코드(혹은 함수)들을 모아놓은 집합체다. iOS App 개발을 하면서 대표적으로 사용하는 라이브러리로는 SnapKit, Alamofire, Moya 등이 있다. 따라서 개발하다가 '어? 이거 다른 프로젝트에서도 유용하게 쓸 것 같은데...?' 라고 생각해 따로 코드를 저장하여 가져다가 사용한다면 그 코드 또한 라이브러리라고 말할 수 있다.
차이
프레임워크와 라이브러리는 결국 코드의 집합체라고 하는데, 둘의 결정적인 차이는 무엇일까?
바로 코드를 제어하고 호출하는 주도권의 차이다.
프레임워크는 이미 정해진 룰 안에서 스스로 동작하는 코드다. 사용자가 프레임워크가 제공하는 인터페이스 안에서 필요한 코드를 작성하면 프레임워크는 사용자가 작성한 코드를 '호출하여' 동작한다. iOS 개발 시 대표적인 예로는 프로젝트를 생성하여 만들어진 ViewController를 우리 의도에 맞게 작성한 코드가 있다.
라이브러리는 스스로 동작하지 않는다. 항상 개발자를 통해 코드가 호출되어야 하며 작성되는 코드는 프레임워크 안에서 작성되어 동작한다.