Framework, Library

Borysarang·2022년 6월 27일
0

swift

목록 보기
3/7
post-thumbnail

FrameWork 와 Libarary 차이?

소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다. - 위키백과

라이브러리(영어: library)는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함할 수 있다 - 위키백과

지금까지 열심히 작성해온 UIKit, Foundation들을 보면 위에 프레임워크로 소개가 되어있다. 하지만 생각해보면 나는 이를 지금까지 지칭할 때 라이브러리프레임워크로 혼용하여 사용해왔다. 이 둘의 차이점은 뭘까?

개발함에 있어서 꼭 필요한 존재인가?

먼저 단순하게 생각했을때 둘의 차이점은 개발하면서 꼭 필요한 존재인가? 라는점이다. 가령 나는 Swift라는 언어를 활용해서 콘솔로 작동하는 프로그램은 작성할 수 있다. 하지만 IOS 위에서 실제 터치나 이미지뷰들을 제작할수는 없다. Apple이 제공하는 UIKit을 사용해야만 UI를 컨트롤할 수 있다.


다만 네트워킹을 간편하게 작성할수 있게 해주는 Alamofire, 레이아웃을 더 짧고 간결하게 코들호 구성하게 하는 Snapkit과 같은 것들은 어떠할까. 이런 것들은 있으면 간편하지만 꼭 필요한 것은 아니다. 없어도 우리는 기본적으로 제공되는 Cocoa touch에서 제공하는 것들을 조합하여 기능을 구현할 수 있다. 이렇게 개발자가 능동적으로 취사선택하여 코드를 효율적으로 개발하기위해 사용하는 것들은 라이브러리라고 한다.

제어 반전

코드의 흐름상 주체가 누구냐에 가장 큰 차이가 있다. 프레임워크는 말 그대로 뼈대가 되는 코드가 제공된다. 개발자는 이 코드에 맞춰 개발을 해야한다. UIKit없이 IOS 어플리케이션의 화면을 제어할 수는 없다. 즉 프레임워크가 개발자에게 하여금 제어를 하는 꼴이 된다. 반대로 라이브러리는 개발자가 주체가 되어 사용을 제어할 수 있다. 필요하다면(팀단위, 부서단위 등) 선택하여 사용할 수 있고 아니라면 사용안해도 된다.

그래서?

라이브러리를 사용하는 법은 알되(잘하면 더 좋고) 기본적으로 애플에서 제공하는 프레임워크들을 능숙하게 다룰 수 있는, 기본기가 탄탄한 개발자가 되는게 베스트.

0개의 댓글