티스토리 뷰
1년 4개월차 iOS '주니어'개발자입니다.
지극히 개인적인 생각을 담고 있습니다.
채용공고의 기술스택을 읽다보면, 같은 iOS앱을 개발하더라도 이렇게 서로 다른 기술들을 사용하고 있구나 라고 생각하게 됩니다.
1. 우리회사 프로젝트는 object-c 도 많이 사용하고 있어요.
글을 쓰는 현재 2024년10월 기준 듣는 순간 엥? 하게 만든다.
하지만 이전부터 시작된 프로젝트의 경우, 스위프트로 마이그레이션 하는 기간을 회사 사정에 의해 할당 받지 못한 경우일 수 있다.
실제 지인의 회사에서 50%정도가 object-c로 구성되어 있었다.
그렇기에 비지니스적으로 수정이 있지 않은 이상, 해당 코드는 별도의 수정없이 유지되고 있다.
실제 시니어들의 이야기를 들어본다면) 잘 돌아가는 기능인데 굳이 손대서 모험하기 싫은거지~ 또 QA도 돌아야 하고, 거기서 QA나오는 순간 사이즈가 또 적지 않아지거든~
듣고보면 틀린말이 없다.
그렇지만 해당 섹션의 유지보수가 필요한 경우가 왔을 때, swift로 컨버팅 제안은 충분히 해볼 것 같다.
작업량이 크지 않을 것 같다면 PM에게 제안해볼 것 같다.
-> 개발에서 크게 중요시 하는 내용들이 몇개가 있는데, 그 중 하나는 "유지보수를 용이하게"입니다.
현재의 코드는 다른 팀원들이 알기 힘든 object-c로 구현되어 있으며, 추후 다른 기능의 수정, 추가가 요구사항으로 들어올 경우, 이번과 같이 작업시간은 2일정도 소요될 예정입니다. 하지만 이번에 테스트포함 약 4일정도의 시간을 주신다면, 다음 번에 비슷한 작업을 하더라도 1일정도로 작업시간이 약 50퍼센트 정도 향상될 것이라 기대합니다. 단 필수는 아니오며 다음번 추가 요구사항 변경예정이나 현재 우선순위가 더 높은 작업이 있다면 다음으로 미루어도 괜찮습니다.
2. RxSwift를 써보신적이 있으세요?
당연히 있다.. 하지만 깊게 다뤄본적은 없다..
RxSwift의 러닝커브가 높다는 것은 익히 들어 알고 있다.
하지만 개인적인 생각으론, RxSwift를 다루는게 어려운 것이 아니라, RxSwift의 사용의도를 이해하고 필요한 곳에 RxSwift 답게 사용하는 방법 -> 이게 어려워서 러닝커브가 높다고 하는게 아닐까?
같은 맥락으로 combine 또한 러닝커브가 높다고 생각한다. 하지만 Combine을 이해하고 잘 사용하는 사람은, RxSwift도 금방 잘 사용할 수 있을 것이고 RxSwift를 잘 사용하는 사람 또한 Combine을 금방 잘 사용할 수 있을 것이다.
특히 ChatGPT를 사용하는 지금 시대에선 훨씬 빠를 수 있다.
Combine + Async Await가 이를 대체하는 최신기술이다. ( RxCocoa는 별개로 생각했을 때 )
그치만 RxSwift를 사용하는 회사에서는 쉽게 Combine + async await로 코드를 적기 힘들다.
팀원들을 설득하는 과정이 선행되야 하며, 선행됐다 하더라도 어디서부터 어디까지 적용시킬지 정하고, RxCocoa와 같이 RxSwift와 강하게 엮여있는 파트는 어떻게 할지도 고민이다.
하지만 그럼에도 불구하고 바뀌는 경우도 있을 것이다.
"RxSwift는 이게 너무 불편해~" 관련 무언가가 Combine + async await에서 매끄럽게 구현된다면, 팀원들 또한 이를 공감하고 있다면 도입될 수 있을 거라 생각한다.
3. SwiftUI + TCA 써본적 있으세요?
트렌디한 기술을 사용하는 회사. 젊고 똑똑한 개발자들이 도입하고 있을 수 있다.
하지만 안정성이 떨어지며,(예측하기 힘든일이 자꾸 일어남;;) 레퍼런스가 없다.
하지만 나름의 장점도 많다. SwiftUI에 대한 이해도가 깊어지기도 하며, UIKit보다 생산성은 훨씬 빠르다.
TCA관련 견해는 이전 포스트에서 다뤘으니 생략.
4. PinLayout, FlexLayout
듣기로는 하이퍼커넥트 iOS파트에서 나온, UIKit을 선언형처럼 사용하는 방법이라 알고 있다.
"그럴거면 그냥 스유로 적고 UIKit으로 컨버팅하지..?" 사실 왜쓰는지 잘 모르겠다.
해당 기술스택을 사용하는 개발자가 있다면, 한번 이유를 들어보고 싶다.
모두 iOS개발자로 취업 or 이직 화이팅입니다!
'iOS > 스위프트' 카테고리의 다른 글
iOS개발자로서 맞이하는 완전한 경력 1년 회고. (0) | 2024.06.22 |
---|---|
SwiftUI + TCA를 1년간 사용하고 느낀점. (2) | 2024.06.22 |
[Swift] 비용을 절약하는 앱 개발하기 (빠른앱 만들기) (0) | 2023.10.03 |
[SwiftUI] NavigationTree vs NavigationStack (0) | 2023.10.03 |
[RxSwift] Publish, Behavior, Replay 각각의 차이점. (0) | 2022.10.31 |