Skip to content

Conversation

NeoSelf1
Copy link
Collaborator

@NeoSelf1 NeoSelf1 commented Jan 1, 2025

issue #14

12. Dependency Manager

의존성 관리 도구(CocoaPods, Carthage, Swift Package Manager)의 종류와 차이점은 무엇인가요?

의존성 관리 도구는 iOS 프로젝트에서 외부 라이브러리를 효율적으로 관리하기 위한 필수적인 도구입니다.


각 도구의 사용 방법과 장단점을 설명해주세요.

  • CocoaPods은 가장 오래되고 널리 사용되는 도구로, Ruby 기반으로 동작합니다. Podfile에 필요한 라이브러리를 명시하고 'pod install' 명령어로 쉽게 설치할 수 있습니다.
    하지만 별도의 워크스페이스를 생성하고 빌드 시간이 늘어날 수 있다는 단점이 있습니다.
  • Carthage는 CocoaPods보다 가벼운 의존성 관리 도구입니다. 프레임워크를 직접 빌드하여 프로젝트에 통합하는 방식을 사용하며, 프로젝트 구조를 변경하지 않는다는 장점이 있습니다. 다만 수동으로 프레임워크를 연결해야 하는 번거로움이 있습니다.
  • Swift Package Manager(SPM)는 Apple이 공식적으로 제공하는 도구로, Xcode에 기본 통합되어 있습니다. 별도의 설치가 필요 없고 Swift 프로젝트에 최적화되어 있습니다.
    하지만 상대적으로 새로운 도구이기 때문에 지원하는 라이브러리가 적을 수 있습니다.

의존성 관리를 통해 얻을 수 있는 이점은 무엇인가요?

CocoaPods의 Podfile과 같이� 사용하는 외부 라이브러리들에 대한 구체적인 버전을 명시하기 때문에, 협업 간에 동일한 개발환경에서 개발이 가능해집니다.
각 의존성 관리 도구별로 업데이트를 위한 편리한 기능들을 제공합니다. 예를 들어 CocoaPod의 경우 pod install 명령어가 있습니다. 이로안해 모든 의존성의 업데이트 관리가 용이해집니다.


라이브러리와 프레임워크 간의 차이점은 무엇인가요?

두 개념의 가장 큰 차이점은 주도권이 누구에게 있느냐입니다.
프레임워크 React Native와 같이 스스로 제어 흐름의 주도성을 갖고 있지만, 라이브러리의 경우 개발자가 주도성을 갖고 제어 흐름을 제어합니다.

@NeoSelf1 NeoSelf1 self-assigned this Jan 1, 2025

***
#### 라이브러리와 프레임워크 간의 차이점은 무엇인가요?
두 개념의 가장 큰 차이점은 주도권이 누구에게 있느냐입니다.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Xcode 개발 환경에서의 라이브러리와 프레임워크 (.library, .framework)에 대한 차이점을 적어주시면 좋을 것 같아요!

@mint3382 mint3382 linked an issue Jan 7, 2025 that may be closed by this pull request
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[LEVEL 1] 12. Dependency Manager
2 participants