Swift로 iOS를 입문한 나는 문득 왜 Objective-C를 대신하여 Swift가 나왔을까?에 대하여 의문점을 갖게 되었다.

Swift가 출시했음에도 불구하고 Objective-C를 사용하는 기업도 몇몇 있다고 하는데, 간단하게 두 언어의 장단점을 알고 싶었다. (왜 안쓰고 왜 쓰는지는 알면 좋다고 생각한다)


1. 개발 관점

장점 단점
Swift - 헤더파일 및 본문 파일이 별도로 존재하지 않아 파일 정리에 편리
- 명확한 타입 선언을 하지 않아도 됨
- 애플 자체 컴파일
- Swift만의 문법 존재
- Swift버전 업에 따른 API 변동이 큼(현재는 많이 줄어들었다)
Objective-C - C개발자의 경우 Swift대비 빠른 습득 가능
- 컴파일 버전 업에 따른 API변동이 없음
- 안정화된 오픈 소스 사용에 용이
- 헤더파일 및 본문 파일에 따른 파일 수 증가
- 포인터 사용에 대한 어려움
- 애플 자체 컴파일이 아님

2. 퍼포먼스 관점

장점 단점
Swift - 개발 속도가 빠름
- Null Point Error 발생 방지
- 기본적인 앱 사이즈가 큼, 동일 앱 기준(Swift:24MB, Objective-C:308KB)
- 잘 만들지 않는다면 Objective-C보다도 느림
Objective-C - 기본적인 앱 사이즈가 작음
- C기반 빠른 속도 자랑
- 개발 속도가 Swift에 비해 느림
- Null Point Error 발생 가능성 존재

내가 느낀 결론

  1. Objective-C의 안전성(안정화)과 속도
  2. Swift의 민첩한 업데이트와 최신 기술력
  3. Swift가 앱 사이즈가 크고 더 느려질 수 있다고 하지만, 현재 디바이스의 성능이 좋아지고 개발자들이 비즈니스 변화에 맞춰서 빠른 개발 속도를 내줘야하는 것을 보면 퍼포먼스 관점에서의 단점은 많이 이겨내는 것 같다.