Objective-C를 배워야겠다고 생각한 나의 생각
Objective-C를 배우지 않으려 했지만, 배우는게 좋다고 생각이 들었습니다. 근본적으로 macOS의 초기 개발부터 사용된 언어로, 애플 생태계의 핵심을 이루는 기술적 토대고 iOS와 macOS의 기본 프레임워크 대부분이 Objective-C로 작성되어 있으며, Swift가 나오기 이전에는 애플 플랫폼 개발자들에게 필수적인 언어였습니다.
이처럼 Objective-C는 애플 생태계의 근본적인 언어이기 때문에, 이를 배우면 단순히 언어 하나를 추가로 익히는 것이 아니라, 애플 플랫폼의 동작 원리와 과거부터 이어져 온 핵심 구조를 더 깊이 이해하고 시스템이 어떻게 작동하는지, Swift가 어떤 방식으로 Objective-C와 호환되는지, 그리고 더 나아가 애플의 API와 프레임워크가 어떤 구조로 설계되었는지 파악하는 데 도움이 됩다고 생각했습니다.
현재는 많은 유저가 사용하는 프로그램의 경우 적극적으로 swiftUI로 변경하는 경우도 많지만 유저가 적은 경우엔 새로 프로그램을 구축하기엔 많은 비용이 들어가기 때문에 기존의 iOS 및 macOS 프로젝트들이 여전히 Objective-C로 작성되어 있습니다. 특히 오랜 시간 유지되어 온 앱이나 라이브러리, 그리고 일부 SDK들은 Objective-C로 구현된 경우가 많기 때문에, 이를 이해하고 수정할 수 있는 능력도 있으면 추후에 언젠가 사용할 수 있지 않을까 싶었습니다.
레거시 프로젝트를 관리하거나 유지보수할 때 Objective-C를 알면 더 효율적으로 작업할 수 있기 때문도 컸습니다.
또한 Objective-C는 C 언어 위에 만들어진 언어입니다. 따라서 C와 호환이 가능하며, 시스템 레벨 프로그래밍이나 저수준 최적화를 해야 할 때 C 코드와 함께 작업할 수 있습니다. C 기반 코드와의 통합이 필요할 경우 Objective-C를 아는 것이 큰 이점이기 때문이였습니다.
게다가 많은 서드파티 라이브러리나 기존 프레임워크들은 여전히 Objective-C로 작성되어 있고. Swift로 작성된 프로젝트에서 이들을 사용해야 할 때, Objective-C에 대한 이해가 있으면 라이브러리 통합이나 오류 해결이 훨씬 원활해지니까요.
Swift와 Objective-C는 상호 운용이 가능하기 때문에, Swift 프로젝트에서도 Objective-C 코드를 다뤄야 할 일이 빈번히 발생합니다. 두 언어를 함께 사용하는 상황에서 Objective-C를 알면 더 유연하게 작업할 수 있습니다.
또한 오래된 시스템이나 API와의 통합 작업이 필요할 때도 Objective-C는 중요한 자산이 됩니다. 레거시 시스템이 여전히 Objective-C로 구현된 경우가 많기 때문입니다. Objective-C를 배우면 이런 시스템과의 상호작용이 더 쉬워지며, 그에 따른 문제 해결 능력도 키울 수 있습니다.
결론적으로 Swift 개발을 주로 하더라도, Objective-C를 배우면 기존 코드와 상호작용할 수 있는 능력을 키우고, 더 깊이 있는 시스템 개발 및 유지보수를 할 수 있는 역량을 갖추게 된다고 생각하게되어 공부를 시작하며 Objective-C 입문 단계에서 자주 사용하는 사이트 2개를 추천합니다.
Swiftify
이 사이트는 Objective-C 코드를 Swift로 쉽게 변환해줘서 유용해. 복잡한 코드도 빠르게 변환해주니까, 일일이 수동으로 바꾸는 번거로움을 덜 수 있어. 무료로 시작할 수 있고, 필요에 따라 유료 옵션도 있으니 부담 없이 사용 가능합니다
이 두 사이트는 Objective-C에서 Swift로 전환하는 데 도움을 주고, 전환 과정을 좀 더 매끄럽게 해주니까, Swift로 넘어가려는 사람에게 추천하고 싶습니다
Hacking with Swift Cheat Sheet
이 치트 시트는 Objective-C와 Swift 간 문법 차이를 간결하게 정리했습니다.
코드 작성할 때 직접 참고하면서 빠르게 비교할 수 있어서 공부하기에도 좋습니다.
문법 차이 때문에 막힐 때 유용하게 쓸 수 있는 자료입니다
**이미지나 타이틀을 클릭하면 위 사이트로 이동합니다
'Objective-C' 카테고리의 다른 글
Obj-C | Bool, 조건, SEL, id (0) | 2024.10.24 |
---|---|
Obj-C | h, m, file 파일 구조: Swift와의 차이점 (0) | 2024.10.24 |