강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

taehun0933님의 프로필 이미지
taehun0933

작성한 질문수

앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지

화면 이동과 데이터 전달 (활용 앱32강)

앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?

해결된 질문

작성

·

29

·

수정됨

0

안녕하세요, 해당 강의 18:00분 경에 앨런님께서 말씀하신 '앱을 만들 때 주로 코드로 만든다'라는 말씀에 궁금증이 들어 질문 남깁니다.

UIKit을 통해 앱을 제작하실 때, 스토리보드 대신 주로 이전 강의 섹션과 같이 주로 코드를 이용해 UI를 구성한다는 말씀이신가요?

스토리보드와 코드 둘 다 짧게나마 겪어본 제 입장에서는, 세그웨이를 수행하는 것 제외 스토리보드가 더욱 많은 이점이 느껴져서요.

대표적으로는 VC에 UI 관련한 코드가 없어 더욱 VC가 본인의 책임에 집중하게 된다는 생각도 들고, 코드로 UI를 짜다 보면 하나 둘 빼먹게 될 확률도 높아지는 것 같아서요(스토리보드에서는 이를 바로 에러로 잡아주지만, 코드는 잡아주지 않기도 하구요)

어떤 부분에 의해, 주로 코드로 UI를 구성하는 것을 선호하는지가 궁금합니다!

답변 2

1

앨런(Allen)님의 프로필 이미지
앨런(Allen)
지식공유자

안녕하세요 taehun0933 님!

현업에서, 여러명이서 동시에 진행하는 프로젝트를 하실 수 있는 기회가 생기시면, (쉽게 동아리 같은 곳에서 협업을 해보셔도) 스토리보드를 사용하기 힘들다는 것을 많이 느끼게 되실 것이예요.
(물론 초반 공부할 때는 이렇게 직관적인데 왜 굳이 스토리보드를 안쓰지? 이런 생각이 드실 수도 있지만요.)

(1) 스토리보드 충돌이슈: 사실, 예전에는 가장 큰 이유가 스토리보드 사용하여 협업 시에 많은 충돌이 발생했었습니다. 화면이 많을 때 로드도 많이 발생하고, 잘못 클릭하면 엑스코드가 꺼지기도 하고요. 등등 스토리보드가 정말 정말 문제가 많았습니다. (그래서 협업 시엔 스토리보드 사용을 거의 금기시 했습니다.)

(2) 사실, 결과론적으로는 스토리보드가 직관적이지만, 버전 관리 측면에서는 Git에서 변경 사항을 추적하기가 어렵습니다. 그리고 코드에 익숙해지면 (대부분의 현업 개발자들은 익숙하겠지만) 오히려 코드만 봐도 화면이 머리속에 그려지니.. 직관적인 측면에서 아주 떨어진다고도 할 수 없다고 생각하기는 합니다. (물론 그림으로 한눈에 보는 것과 어떻게 비교할 수 있겠냐만은..) 그만큼 대부분 현업에서 코드를 사용하다보니 대부분이 익숙하다고 보시면 됩니다.

(3) VC에 UI 관련한 코드가 없어 더욱 VC가 본인의 책임에 집중하게 된다는 생각이 든다는 건.. MVC가 아닌 다른 아키텍처에서 대부분 해결이 가능합니다. 요새는 더더욱이 MVC 아키텍처를 사용하는 경우가 거의 없기 때문에.. VC에 UI 관련 코드만 남고, 로직 등은 뷰모델로 보내거나 할 수있기에.. 크게 중요한 관점은 아닌 것 같습니다. (MVVM, MVP, MVI 등등 너무 많죠.) 오히려 아키텍처적인 측면에서 보면 모든 것을 일치시켜 코드로 관리하고, 로직 등을 분리하는 것이.. 더 관리가 잘 되겠죠.

(4) 재사용성의 측면: 재사용이 가능한 UI들은 코드로 만들어야 쉽게 재사용이 가능합니다. 스토리보드는 재사용이 불가능하니까요.

(5) 코드리뷰의 용이성: 여러 명이서 협업 시에, 코드 변경 사항이 확실히 보이니 아무래도 명확하게 코드리뷰가 가능합니다. 제약(Constraints)가 이렇게 바뀌었네? 이런 것을 한눈에 볼 수 있죠.

그래서 보통은.. 1인으로 개발한다면 스토리보드로 개발하는 것이 전혀 문제가 없지만, 협업을 위해서는 대부분 코드를 사용하게 된다고 보시면 될 것 같습니다. :)

taehun0933님의 프로필 이미지
taehun0933
질문자

아직 UIKit 공부 초기 단계라 해당 부분을 파악하지 못했는데, 앨런님 말씀을 들어보니 유지보수성을 위해서라도 코드 베이스 UI 생성에 익숙해져야겠다는 생각이 드네요

답변 감사드립니다!

0

안녕하세요, 인프런 AI 인턴입니다. taehun0933님.

코드로 UI를 구성하는 이유에 대해 고민하시는 점, 아주 중요한 부분입니다! 일반적으로 UIKit을 통해 앱을 제작할 때, 스토리보드와 코드 중 어떤 방법을 선택할지는 개발자의 스타일이나 프로젝트의 특성에 따라 다르게 결정될 수 있습니다.

코드 기반의 UI 구성 장점:
1. 버전 관리 용이: 코드로 UI를 작성하면 Git과 같은 버전 관리 시스템에서 변경 사항을 추적하고 병합하기가 쉽습니다.
2. 유연성: 코드로 UI를 작성하면 런타임에서 UI의 동작을 유연하게 조절할 수 있습니다. 이는 자동 레이아웃이나 세밀한 UI 요소 제어에 유리합니다.
3. 더 나은 협업: 코드로 UI를 작성하면 여러 개발자가 충돌 없이 파일을 동시에 작업하기 쉽습니다.

스토리보드는 시각적으로 UI를 구성하기 쉬운 반면, 코드 기반은 보다 세밀한 제어와 쉬운 버전 관리를 가능하게 합니다. 어떤 방법이 더 좋은지는 각 프로젝트의 특성과 개발자의 선호도에 따라 결정될 수 있습니다.

참조 링크들은 다음과 같습니다:
- 활용앱 67강에서 질문있습니다.
- 스토리보드에 관한 질문입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

taehun0933님의 프로필 이미지
taehun0933

작성한 질문수

질문하기