일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rn
- ios
- commit
- js
- shortcut
- DevOps
- Android
- git
- npm install
- JavaScript
- github
- react-native
- viewcontroller
- styling
- currying
- vscode
- React Native
- Xcode
- Swift
- Docker
- styled-components
- GitLab
- ReactNative
- REACT
- xtring.log
- HTML
- Branch
- npm
- nextJS
- ES6
- Today
- Total
xtring.dev
[iOS] Objective-C vs Swift 본문
iOS 개발 전 Objective-C로 시작할지 Swift로 시작할지에 대한 고민을 하게 되었고 당연히 Swift를 사용해야겠다고 생각했습니다. 그렇지만 기존에 iOS 개발 시 주로 사용되었던 Objective-C와는 어떤 차이가 있으며 현재에도 Legacy 프로젝트에서도 사용되고 있기 때문에 알아보게 되었습니다.
Objective-C vs Swift
1. 개발적 측면
[Objective-C]
장점
- C 개발자의 경우 Swift 대비 빠른 습득이 가능하다.
- 컴파일 버전 업에 따른 API 변동이 없음
- 안정화된 오픈 소스 사용에 용의함
단점
- 헤더파일 및 본문 파일에 따른 파일 수 증가
- 포인터 사용에 대한 어려움
- 애플 자체 컴파일 X
[Swift]
장점
- 헤더파일 및 본문 파일이 별도로 존재하지 않아 파일 정리에 편리
- 명확한 타입 선언이 필요하지 않음(ex. let 변수 이용)
- Java 개발자의 경우 Objective-C 대비 빠른 습득이 가능함
- 애플 자체 컴파일
단점
- Swift만의 문법 존재
- Swift 버전 업에 따른 API 변동이 큼
2. 유지 보수 측면
[Objective-C]
장점
- 안정성
- 컴파일 버전 업에 따른 API 변동이 없음
- 안정화된 오픈 소스 사용에 용의함
단점
- 관련 기술 검색이 힘듦(최신 작성된 글들 대비)
- 최신 기술에 대한 설명이 Swift로 많이 구성되어 있는 불편함
[Swift]
장점
- Github 등록 라이브러리 수가 Objective-C 보다 많음
- 관련 기술 검색 용의
단점
- Swift 버전 업에 따른 API 변동이 큼
- 안전성 부분에 대해선 아직 의문점이 많음(2017년 기준)
3. 퍼포먼스 측면
[Objective-C]
장점
- 기본적인 앱 사이즈가 작음
동일앱의 경우 Swift: 24MB / Object-C: 308KB
- C 기반의 빠른 속도를 자랑
단점
- 개발 속도가 Swift에 비해 느림
- Null Point Error 발생 가능성 존재
[Swift]
장점
- 개발 속도가 빠름
- Null Point Error 발생 방지
단점
- 기본적인 앱 사이즈가 큼
동일앱의 경우 Swift: 24MB / Objective-C: 308KB
- 잘 만들지 않는다면 Objective-C보다 느림
결론적으로 Objective-C는 안정적이며 오랫동안 쓰여왔지만 언어 자체가 복잡하고 문법이 길다는 단점이 있습니다. Swift는 typed 문법(정적 타입과 옵셔널 그리고 옵셔널 체이닝)을 제공합니다. 함수형 프로그래밍, 네임스페이스, 깔끔한 문법 등을 지원하며 언어의 성능이 좋고 낮은 메모리 사용률을 보입니다. 또한 Swift는 오픈소스로서 다수의 Swift Package Manager(코코아팟,카르타고)를 제공합니다. Swift에서는 Swift UI의 사용으로 다양한 애플 플랫폼인 iPhone, iPad, iMac, Apple TV를 지원합니다. 하지만 Objective-C에 비해 컴파일이 오래걸리며 C++ 라이브러리를 직접적으로 사용할 수 없습니다.
Swift에 대한 설명이 Objective-C에 비해 더 많은 것으로 저는 Swift를 통해 iOS 어플리케이션을 개발할 거라는 이미 눈치 채셨겠죠? 하지만 신규 프로젝트 이외에도 대부분의 레거시 프로젝트의 경우 Objective-C를 사용한 경우가 많기 때문에 iOS 개발자가 되기 위해서는 두 언어에 대한 편식을 하면 안 될 것 같다고 생각했습니다.
아래 이미지는 커뮤니티에서 떠돌던 Objective-C와 Swift에 대한 비교 이미지 입니다. 참고하면 좋을 것 같아요 😁
Ref. 📗
blog.naver.com/PostView.nhn?blogId=dla210&logNo=220971836035
'Mobile > iOS' 카테고리의 다른 글
[iOS] ViewController에 대해서 알아봅시다 ⚙️ (0) | 2021.03.05 |
---|---|
[iOS] Objective-C 동작원리를 알아봅시다! (0) | 2021.03.05 |
[iOS] 싱글톤(Singleton) 패턴을 알아보자! (0) | 2021.03.04 |
[iOS] Apple Distribution Certificate가 만료됐다! - Distribution Certificate 업데이트하기 (0) | 2021.02.23 |
[iOS] Playground에서 Swift 연습해야지! - Playground 만들기 (0) | 2021.01.17 |