본문 바로가기

iOS

[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를 우리 의도에 맞게 작성한 코드가 있다.

main.storyboard에 있는 viewcontroller와 연결된 ViewController.swift 파일의 ViewController 클래스

 

라이브러리는 스스로 동작하지 않는다. 항상 개발자를 통해 코드가 호출되어야 하며 작성되는 코드는 프레임워크 안에서 작성되어 동작한다.