[iOS] Open Source
목적: 오픈소스란 무엇이며, 프레임워크와 라이브러리에는 어떤 공통점과 차이점이 있는지 알아보고자 합니다.
오픈소스소프트웨어: 소스 코드를 공개하여 자유롭게 사용, 수정, 공유할 수 있는 소프트웨어를 말합니다. 참고링크
오픈 소스 소프트웨어 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org
소프트웨어프레임워크: 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조입니다. 즉 뼈대, 골조에 해당함. 참고링크
소프트웨어 프레임워크 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드(buzzword)로서, 특히 소프트웨어 환경에서 사용할 수 있게 만들어 준다. 소프트웨어 프레임워크는 일반적으로 다음을 포함한다: 같이 보기[편집] ↑ Vlissides, J M;
ko.wikipedia.org
라이브러리: 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임입니다. 참고링크
라이브러리 (컴퓨팅) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. Ogg Vorbis 파일을 재생하기 위해 libvorbisfile을 사용하는 응용 프로그램의 개요도. 라이브러리(영어: library)는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함할 수 있다. OS/360 및 이후 세대에서는 파티션 데이터 세트로 부른다.
ko.wikipedia.org
비교
라이브러리는 프레임워크보다 먼저 등장하였다. 단지, '코드 재사용 가능' 기능을 필요로 하여 만들어진 유틸리티 클래스 및 메소드들의 모임이다. 반면에 프레임워크는 일부 기능이나 흐름을 포함하고 있으며, 코드를 호출하여 흐름을 확장하거나 특정 기능을 만든다. 프레임워크의 원리는 '제어반전' 으로 알려져 있다. 제어반전을 제공하기위해 사용할 수 있는 매커니즘은 Subclassing, Dependency Injection, Template, Methods, Closures 등이 있다. 왜 라이브러리 대신에 프레임워크를 사용할까? 먼저, 라이브러리의 경우 각 메소드의 기능을 이해하고, 결과에 도달하기위해 많은 메소드를 호출해야한다. 따라서 복잡한 상호작용을 만드는데 상대적으로 어렵다. 앞서 언급했듯이 프레임워크는 기본 흐름을 포함하고있어 용이하다. 참고링크의 필자의 토론을 촉발시킨 GIS예제를 예를들면 사용할 수 있는 인터페이스가 수백 개 있기 때문에 프레임워크를 갖는 것이 더 효율적일 것이다. 하지만 나를 비롯한 대부분의 사용자가 원하는 것은 UI Entity를 지도에 표시하는 쉬운 방법이다. 프레임워크의 또다른 장점은 유연성과 확장성이다. 단점은 점점 더 많은 기능을 추가하려는 유혹이 많은 비대해진 프레임워크를 만들어 부동성과 불필요한 복잡성을 초래한다는 것이다.