반응형
해당 글에서는 IOS 모바일 개발을 위하여 이에 대한 언어를 설정하고 환경을 구성하기 위한 목적으로 이에 대해 작성하였습니다.
1) IOS
💡 iOS는 애플사가 만든 모바일 운영 체제로, 아이폰, 아이패드, 아이팟에 사용되는 운영체제 입니다.
IOS는 다양한 기기를 위해 애플이 제공하는 다양한 API를 지원합니다. IOS의 API는 다양한 디바이스를 위해 사용자 인터페이스, 네트워크, 데이터베이스, 미디어 등의 기능을 지원합니다. 또한 IOS는 보안 기능이 강력하고 데이터 손실을 방지하기 위한 다양한 기능들을 제공합니다. 그리고 IOS는 다양한 장치들을 위해 다양한 언어로 개발할 수 있는 기능을 제공합니다.
1. IOS 개발 언어
💡 IOS를 개발하기 위해 사용되는 개발 언어는 스위프트(Switft)와 오브젝티브-C(Objective-C)가 있습니다.
[참고] IOS 개발 언어 비교
개발 언어 | 설명 | 장점 | 단점 |
스위프트(Swift) | 객체지향 언어로 애플에서 개발한 현대적인 범용 프로그래밍 언어를 의미합니다. | 1. 코드를 간결하게 구현할 수 있습니다. 2. 객체 지향 개념을 사용하여 유연하게 개발이 가능합니다. 3. 멀티 플랫폼 개발이 지원되고 개발시간이 짧습니다. 4. 다양한 사용자 인터페이스 기능을 제공합니다. |
1. 상대적으로 오브젝티브-C보다 속도가 느립니다. |
오브젝티브-C (Objective-C) |
객체지향 언어로 스위프트가 출시되기 전에 IOS 개발에 주로 사용되는 프로그래밍 언어입니다. | 1. 스위프트보다 더 빠릅니다. 2. 상대적으로 더 안정적입니다. 3. 더 많은 엔진이 구현되어 있습니다 4. 엔터프라이즈 레벨 앱 개발이 가능하다는 장점을 자랑합니다. |
1. 간단한 작업을 수행하기 위해서는 많은 코드가 필요합니다. 2. 러닝 커브가 높습니다. 3. 디버깅을 하는데 어려움이 있습니다. |
2) IOS 아키텍처 패턴
💡 IOS 앱 개발에서 많이 사용되는 아키텍처 패턴은 MVC, MVP, MVVM, Viper 등이 있습니다.
💡 MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)를 분리하여 개발하는 패턴입니다.
💡 MVP 패턴은 모델(Model), 뷰(View), 프레젠터(Presenter)를 분리하여 개발하는 패턴입니다.
💡 MVVM 패턴은 모델(Model), 뷰(View), 뷰모델(ViewModel)을 분리하여 개발하는 패턴입니다.
💡 Viper 패턴은 뷰(View), 인터랙터(Interactor), 프레젠터(Presenter), 엔티티(Entity), 라우터(Router)를 분리하여 개발하는 패턴입니다.
💡 다양한 아키텍처 패턴 중 가장 많이 사용되는 것은 MVC 패턴입니다. MVC 패턴은 앱의 모델, 뷰, 컨트롤러를 각각 분리하고 개발합니다. 앱의 디자인과 기능을 분리하기 쉽고 개발이 빠르기 때문에 많이 사용되고 있습니다.
1. MVC 아키텍처 패턴
💡 Swift MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)를 사용하여 개발하는 패턴입니다.
💡 모델(Model)
- 데이터를 저장하고 업데이트를 하는 역할을 수행합니다.
💡 뷰(View)
- 데이터를 사용자에게 보여주고 사용자의 입력을 받는 역할을 합니다. 또한 뷰는 컨트롤러에게 사용자의 입력을 전달합니다.
💡 컨트롤러(Controller)
- 모델로부터 데이터를 받아 뷰에 보여주거나 뷰로 부터 데이터를 받아 모델에 업데이트합니다.
2. MVP 아키텍처 패턴
💡 Swift MVP 패턴은 모델(Model), 뷰(View), 프레젠터(Presenter)를 사용하여 개발하는 패턴입니다.
💡 모델(Model)
- 데이터를 저장하고 업데이트를 하는 역할을 수행합니다.
💡 뷰(View)
- 데이터를 사용자에게 보여주고 사용자의 입력을 받는 역할을 합니다. 또한 뷰는 프레젠터에게 사용자의 입력을 전달합니다.
💡 프레젠터(Presenter)
- 모델로부터 데이터를 받아 뷰에 보여주거나 뷰로 부터 데이터를 받아 모델에 업데이트합니다.
3. MVVM 아키텍처 패턴
💡 Swift MVVM 패턴은 모델(Model), 뷰(View), 뷰모델(ViewModel)을 사용하여 개발하는 패턴입니다.
💡 모델(Model)
- 데이터를 저장하고 업데이트하는 역할을 수행합니다.
💡 뷰(View)
- 데이터를 사용자에게 보여주고 사용자의 입력을 받는 역할을 합니다. 또한 뷰는 뷰모델에게 사용자의 입력을 전달합니다.
💡 뷰모델(ViewModel)
- 뷰모델은 모델로 부터 데이터를 받아 뷰에 보여주거나 뷰로 부터 데이터를 받아 모델에 업데이트합니다. 또한 뷰모델은 뷰와 모델의 데이터를 변환하고 변환된 데이터를 뷰에 보여주기 위해 사용됩니다.
4. VIPER 아키텍처 패턴
💡 Swift VIPER 패턴은 뷰(View), 인터랙터(Interactor), 프레젠터(Presenter), 엔티티(Entity), 라우터(Router)를 사용하여 개발하는 패턴입니다.
💡 뷰(View)
- 데이터를 사용자에게 보여주고 사용자의 입력을 받는 역할을 합니다.
💡 인터랙터(Interactor)
- 인터랙터는 모델로 부터 데이터를 받아 뷰에 보여주거나 뷰로 부터 데이터를 받아 모델에 업데이트합니다.
💡 프레젠터(Presenter)
- 뷰와 인터랙터 사이의 데이터를 변환하고 변환된 데이터를 뷰에 보여주기 위해 사용됩니다.
💡 라우터(Router)
- 뷰간의 전환을 관리하는 역할을 하고, 엔티티는 데이터를 저장하고 업데이트하는 역할을 합니다.
아키텍처 패턴 | 장점 | 단점 |
MVC 패턴 | 코드를 간결하게 작성하기 쉽고, 개발 속도가 빠릅니다 | 코드 관리가 어렵고, 뷰를 수정하면 모델도 변경해야합니다. |
MVP 패턴 | 구조가 명확하고 코드 관리가 용이합니다. | 개발 속도가 느리고, 코드를 작성하기 복잡합니다. |
MVVM 패턴 | 뷰를 업데이트할 때 모델 업데이트를 하지 않아도 됩니다. | 비동기로 동작하기 때문에 코드를 작성하기 복잡합니다. |
Viper 패턴 | 코드 관리가 용이하고, 뷰를 수정할 때 모델 변경이 필요하지 않습니다. | 개발 속도가 느리고, 코드를 작성하기 복잡합니다. |
3) IOS 주요 프레임워크
1. CocoaPods
💡 CocoaPods는 Apple의 Objective-C 또는 Swift 언어를 사용하여 개발한 IOS 및 macOS 앱의 의존성 관리를 위한 프레임워크입니다. CocoaPods는 앱이 필요로 하는 라이브러리들을 관리하고 업데이트할 수 있게 해줍니다. 또한 Swift 패키지 매니저를 사용해 의존성을 관리할 수도 있습니다. Swift 패키지 매니저는 다양한 종류의 프레임워크를 관리하고 업데이트할 수 있는 도구로 앱과 프레임워크간의 연결을 쉽게 관리해줍니다. 해당 프레임워크는 IOS내에 이미 포함이 되어있습니다.
2. Cocoa Touch Framework
💡 Cocoa Touch는 Apple의 프레임워크 중 하나로, IOS 앱 제작을 위한 기능을 제공합니다. Cocoa Touch는 IOS 기기의 메뉴 및 화면 구성, 사용자 인터페이스 제작 등의 기능을 제공해줍니다. 해당 프레임워크는 IOS내에 이미 포함이 되어있습니다.
Cocoa Touch Framework | 설명 |
UIKit | - Apple이 제공하는 Cocoa Touch 프레임워크 중 하나로, 앱 인터페이스를 개발할 때 필요한 다양한 기능들을 제공합니다. UIKit은 앱의 뷰와 뷰 컨트롤러, 이벤트 등을 개발할 때 사용됩니다. |
CoreData | - Apple이 제공하는 Cocoa Touch 프레임워크 중 하나로, 데이터를 저장하고 관리하기 위한 엔티티(Entity)들과 속성(Attribute)들을 모델링하고 관리할 수 있는 기능을 제공합니다. |
CoreGraphics | - Apple이 제공하는 Cocoa Touch 프레임워크 중 하나로, 2D 그래픽 작업을 수행하기 위한 기능들을 제공합니다. CoreGraphics는 이미지 처리, 그래픽 작업, 도형 등과 같은 다양한 그래픽 작업을 수행할 수 있게 해줍니다. |
CoreAnimation | - Apple이 제공하는 Cocoa Touch 프레임워크 중 하나로, 2D 및 3D 애니메이션을 만들기 위한 기능을 제공합니다. CoreAnimation은 뷰를 이동하거나 사이즈를 변경하거나, 회전하거나 역할을 수행하는 등의 애니메이션 기능을 제공합니다. |
CoreText | - Apple이 제공하는 Cocoa Touch 프레임워크 중 하나로, 텍스트 렌더링을 수행하기 위한 기능을 제공합니다. CoreText는 텍스트 스타일, 글꼴, 폰트 등과 같은 텍스트 관련 기능을 제공해줍니다. |
3. Foundation Framework
💡 Apple의 Foundation 프레임워크는 기본적인 자료 구조, 스트링 처리, 메모리 관리 및 성능 등의 기능을 제공합니다. 또한 네트워크 요청과 응답, 데이터 저장 등의 기능도 제공합니다. 해당 프레임워크는 IOS내에 이미 포함이 되어있습니다.
Foundation Framework | 설명 |
NSURLSession | - NSURLSession은 Apple의 Foundation 프레임워크 중 하나로, 네트워크 요청과 응답을 수행하기 위한 기능을 제공합니다. NSURLSession은 네트워크 요청이나 다운로드, 업로드 등의 네트워크 작업을 수행할 수 있게 해줍니다. |
NSCache | - NSCache는 Apple의 Foundation 프레임워크 중 하나로, 메모리 관리를 수행하기 위한 기능을 제공합니다. NSCache는 메모리 관리를 보다 쉽게 해주고, 메모리가 부족할 경우 더 이상 사용하지 않는 것들을 자동으로 제거해주는 기능도 제공합니다. |
오늘도 감사합니다. 😀
반응형
'Swift > 환경설정' 카테고리의 다른 글
[Swift] XIB 이해 하기 : 이론, 파일 생성, 페이지 이동 방법 (0) | 2023.04.10 |
---|---|
[Swift] Storyboard 프로젝트 구성 -2 : 페이지(View / ViewController) 생성 및 설정방법 (0) | 2023.04.06 |
[Swift] Storyboard 프로젝트 구성 -1 : 개발 환경 구성 (0) | 2023.04.06 |
[Swift] Podfile 환경설정 방법 : 서드파티 라이브러리 추가 (0) | 2023.02.28 |
[Swift] 앱 프로젝트 생성 및 환경 구성 : SwiftUI (0) | 2023.02.21 |