iOS 앱개발을 할 때 사용하는 개발 언어에는 두 가지가 있습니다. Objective-C(이하 오브젝티브C)와 Swift(이하 스위프트). 오브젝티브C는 iOS 개발 초창기부터 사용된 언어이고, 스위프트는 2014년에 발표된 새로운 개발 언어로, 각 언어에는 장단점이 있습니다. 어떠한 차이점이 있을까요?
✍️ 이 글의 순서
• 스위프트 VS 오브젝티브C, 차이점은?
• 스위프트를 쓰면 좋은 상황
• 오브젝티브C를 쓰면 좋은 상황
• 우리 앱개발은 뭐가 어울릴까?
스위프트 vs 오브젝티브C, 차이점은?
문법(syntax)
우선 두 언어는 문법이 다릅니다. 당연히 (비교적) 최근에 나온 스위프트가 오브젝티브C에 비해 조금 더 쉽고, 간결하고, 직관적이며, 단순합니다. 특히, 스위프트는 변수와 상수를 선언할 때, 변수 타입을 자동으로 추정해 주는 ‘타입 추론(type inference)’을 사용할 수 있습니다.
오브젝티브C는 스위프트에 비해 가독성과 직관성이 떨어진다는 단점이 있지만, 그만큼 자유로운 문법을 갖고 있습니다. 개발자 입맛에 맞게 다양한 스타일로 코드를 작성할 수 있죠.
안전성(safety)
스위프트는 안전성이 높습니다. 즉, 오류를 사전에 방지할 수 있죠. 가령 런타임 오류를 사전에 방지하는 optional이라든지, 자동으로 메모리 관리를 처리하는 ARC(자동참조계수) 등을 지원합니다. 버그에 신경 쓰지 않고 개발에 집중할 수 있는 환경을 제공하는 것이죠.
반면 오브젝티브C는 수동적으로 메모리를 관리해야 하고, 사전에 런타임 오류를 방지하기도 어렵습니다. 그래서 오류나 버그가 스위프트에 비해 자주 나타나는 편.
개발자 커뮤니티(Community)
스위프트는 최근에 나온 개발 언어이기 때문에, 개발자 커뮤니티가 아직 완전히 성숙하지는 않은 편입니다. 물론 다양한 라이브러리와 프레임워크, 오픈소스 프로젝트 등이 갖춰지긴 했지만, 오브젝티브C에 비하면 생태계가 아직은 미성숙하죠.
오브젝티브C는 애플의 주력 개발 언어였기 때문에 커뮤니티가 매우 큰 편입니다. 필요한 자료를 찾거나, 도움이 필요할 때 유용한 커뮤니티가 잘 구축되어 있죠.
이처럼 스위프트와 오브젝티브C는 나름의 장단점이 있습니다. 그럼 어떤 상황에서 스위프트 혹은 오브젝티브C를 쓰는 게 좋을까요? 조금 더 구체적으로 안내해 드릴게요.
‘스위프트’를 쓰면 좋은 상황
✔ 빠른 앱 속도가 필요한 경우
오브젝티브C는 런타임 코드 컴파일로 인해 속도가 느립니다. 반면 스위프트는 오브젝티브C에 비해 평균 2.6배 정도 빠른 편.
✔ 간편하게 유지 보수를 하고 싶은 경우
두 개의 파일(.h, .m)로 관리해야 하는 오브젝티브C와 달리, 스위프트는 하나의 파일(.swift)로 관리할 수 있습니다.
✔ 가독성, 직관성 높은 코드를 작성해야 하는 경우
오브젝티브C는 C언어와 유사하게 많은 기호, 선, 세미콜론, 괄호를 포함합니다. 스위프트는 Java와 유사하게 영어 구문처럼 작성하면 되죠. 그만큼 작성해야 하는 코드도 짧습니다.
✔ 편하게 메모리를 관리하고 싶은 경우
스위프트는 모든 API에 대해 ARC를 지원합니다.
✔ 동적 라이브러리가 필요한 경우
오브젝티브C와 달리, 스위프트는 동적 라이브러리를 지원합니다.
‘오브젝티브C’를 쓰면 좋은 상황
✔ 컴파일 속도가 빨라야 하는 경우
오브젝티브C는 앱 사이즈가 작기 때문에 컴파일 속도가 빠릅니다. 반면 스위프트는 앱 사이즈가 크기 때문에 컴파일 속도가 느리죠.
✔ 언어 자체의 안정성을 추구하는 경우
오랫동안 iOS의 개발 언어였던 오브젝티브C는 개발 언어의 안정성이 높은 편입니다. 반면 스위프트는 꾸준히 버그가 수정되고는 있지만, 여전히 언어의 안정성 자체는 조금 떨어지죠.
✔ 누적된 커뮤니티 및 자료가 필요한 경우
오브젝티브C는 30년간 지속된 개발자 풀이 있습니다.
✔ C언어와의 호환이 필요한 경우
스위프트는 C언어를 호환하지 않습니다. 하지만 오브젝티브C는 Bridging-Header 파일로 호환이 가능하죠.
우리 앱개발은 뭐가 어울릴까?
이 정도 구분만 알아도, 개발자와의 소통은 어렵지 않습니다. 사실 더 깊게 안다고 해서 만들 프로덕트가 더 나아지는 것도 아닐 거예요. 개발은 실제 프리랜서 개발자나, 외주 개발업체와 협업하는 구조가 일반적이니까요.
이제 해야 할 일은 우리와 핏이 잘 맞는 개발자(회사)를 찾는 일입니다. 풀이 가장 넓은 위시켓에서 찾아보세요. 위시켓은 첫 요구정의서 정리부터 개발 계획서, 미팅 조율, 계약서 검토까지 전 과정을 담당 매니저가 함께 합니다. 위와 같이 iOS 앱개발 도구 선택 문제도 논의해 보세요. 아래 링크를 누르면 이동합니다.
💡 about 위시켓 : 2012년 설립된 위시켓은 지금까지 ‘세상이 일하는 방식을 더 행복하게’ 만들기 위해 IT 아웃소싱 시장에 혁신을 만들어가고 있습니다. 현재까지 97,569개의 기업이 누적 7,519억 원 이상의 프로젝트를 믿고 맡겨주셨습니다.
🔖 함께 보면 도움되는 글
IOS앱개발 vs 안드로이드 앱개발, 어느 게 더 이득일까?