티스토리 뷰

iOS/iOS

[iOS] 프레임워크와 라이브러리

HarryJeonn 2023. 1. 4. 14:42

프레임워크와 라이브러리에 대해 설명해보라하면 큰 틀과 느낌은 설명할 수 있을 것 같은데 자세히는 못할 것 같아서 알아본다.

자세히 설명을 못한다는건 모른다는 소리니까!

프레임워크

프레임워크를 직역해보자.

frame(뼈대) work(일하다) 뼈대를 가지고 일하는 것이다.

정해진 레시피로 요리하는 밀키트로 예시로 들 수 있다.

일정한 형태의 틀(레시피)를 가지고 결과물을 만드는 것!

프레임워크란?

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

개발 시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능을 위해 어느정도 뼈대를 제공해주는 것이다.

프레임워크가 제공하는 뼈대 위에 개발자가 코드를 작성하여 개발할 수 있다.

특징

개발자들이 따라야 할 가이드라인을 가진다.

개발할 수 있는 범위가 정해져 있다.

개발자를 위한 다양한 도구들이 지원된다.

특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다.

컴포넌트들은 재사용이 가능하다.

높은 수준에서 패턴들을 조작화 할 수 있다.

장점

공통의 틀을 제공하여 코드 품질을 높일 수 있다.

개발 편의성이 오르기 때문에 시간을 줄일 수 있다.

오류의 폭을 줄일 수 있다.

단점

프레임워크의 의존도가 늘어나 개발 능력이 저하될 수 있다.

개발자의 자유도가 떨어진다.

예시

iOS에서 가장 대표적인 프레임워크는 UIKit이다.

라이브러리

단순 활용 가능한 도구들의 집합을 말한다.

소프트웨어 개발에 필요한 특정 기능을 위해 작성한 코드, 함수들의 집합이다.

공통으로 사용될 수 있는 기능들을 모듈화 한 것으로 완전한 프로그램이 아니라 특정한 부분 기능만을 수행하도록 제작된다.

사용 목적

생산성과 편의성이다.

원하는 구현사항이 있을 때 누군가 이미 라이브러리로 만들어놨다면 라이브러리를 사용하는 사람은 편하게 개발할 수 있다.

예를 들어 누군가 자동차를 라이브러리로 만들어놨다면 그걸 사용하는 사람은 자동차를 만들 필요없이 바로 탑승할 수 있다.

라이브러리가 없다면 자동차부터 만들어야 할 것이다.

예시

라이브러리는 많은 종류가 있다.

iOS에서 자주 사용하는 라이브러리는 RxSwift, Snapkit, Alamofire 등이 있다.

프레임워크와 라이브러리 차이

라이브러리와 프레임워크 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있느냐에 따라 다르다.

프레임워크

전체적인 흐름을 스스로가 쥐고 있으며, 사용자가 그 안에서 필요한 코드를 짜 넣는다.

제어의 역전이 적용되어 있다.

내 코드가 호출 당한다.

라이브러리

사용자가 전체적인 흐름을 만들며, 라이브러리를 가져다 쓰는 것이라고 할 수 있다.

내 코드가 호출한다.

제어의 역전이란?

내가 호출당하는 입장이 되는 것을 제어의 역전이라고 한다.

예를 들어 viewDidLoad에 내 코드를 넣어두면 화면의 생명주기에 맞게 호출되는 함수들이 있다.

UIKit 프레임워크가 타이밍에 맞춰서 내 코드를 실행시켜주는 것이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함