나의 발자취

iOS imperative vs declarative (명령형 vs 선언형) 본문

앱 개발/iOS

iOS imperative vs declarative (명령형 vs 선언형)

달모드 2023. 6. 12. 00:12

 

ㅋㅋ.. 백만년만의 포스팅이다

이제까지 마음속 접어두었던 iOS를 기초부터 차근차근 다시 공부하려고 한다.

 

처음 iOS 스유를 공부하면 선언형과 명령형에 대해 언급이 되곤 한다.

 

일단, 선언형(declarative)과 명령형(imperative)에 대해 되게 쉽게 설명해놓은 짤로 시작.

 

이와 같이 명령형은 당연히 컴파일러에게 세밀하게 적시하기 때문에 컴파일 시간이 적게 걸리는 대신, 선언형은 시간이 좀 걸린다.

 

UI kit을 사용하는 앱은 명령형(imperative) 프로그래밍을 따른다. 이것은 일련의 명령들이 specify되어있어서 프로그램이 어떻게 작동해야하는지에 포커스를 하는 것이고, 스유(Swift UI)같은 경우는 선언형(declarative) 프로그래밍을 따르는데, 문제를 해결하기 위해 개별적인 명령이 사용되는것이 아니라 문제의 결과에 포커스가 맞추어져서 그에 따라 다른 시나리오를 사용하게 되는 것이다. 선언형 접근(declarative approach)은 코드를 적게 사용하고, 최적화하기에 쉽기 때문에 시간이 지나면서 인기를 더 얻게 되었다.

 

그렇기 때문에 프로그래밍에 있어도, UIkit을 사용하여 레이아웃을 빌드한다고 하면, UI를 셋업하기 위해 IB 파일(Interface Builder)들과 스토리보드가 필요하고, 이들이 동작하도록 하기 위해 개별의 .swift 파일이 필요하다. 하지만 스유를 사용한다면 더 짧고, 간결하고, 적은 파일들로 빌드할 수 있다.

 

일례로 스유와 UIKit으로 간단한 화면을 만든다고 하면, 스유로는 ContentView.swift 하나로 완성되지만 UIKit으로는 아래와 같은 파일들이 필요하다.

짤 및 내용 출처:codecademy

 

 

Comments