brunch

You can make anything
by writing

C.S.Lewis

by 이응 Dec 18. 2023

명령형 프로그래밍과 선언형 프로그래밍

-선언형 명령형 비교 예제   

명령형 선언형 비교 예제

명령형 방식 (HOW) : "12번 테이블 자리가 비어있습니다. 나와 우리 가족은 저 자리로 걸어가 앉을 것입니다."

선언형 방식 (WHAT) : "네 명 앉을자리를 부탁해요


명령형과 비교해 더 적은 코드로 직관적인 UI를 구성할 수 있습니다. UI의 속성을 순차적으로 나열하는 명령형과는 다르게, 파라미터로서 속성을 지정하는 것을 확인할 수 있습니다.



기존에 쓰던 방식

기존에 Swift 에서 UI를 그리고 데이터를 반영할땐 항상 이런식이었다.   

UI작성( StoryBoard, xib, code 등을 통해서.)

UI와 연결된 변수에 이벤트에 따라 변경될 부분을 지정한다.


setText, setColor, setFont ... 

이런 방식을 명령형UI 라고 칭하며, 각 단계별로 어떻게 동작할지에 중점이 있다.


새로운 방식

Swift UI에서는 이 방식이 아래와 같이 변경되었다.   

UI를 작성할때부터 변경될 상태(state) 를 먼저 잡아두고,

이 상태가 변경될때 뷰가 어떤식으로 그려질지 정의한다.

이게 선언형 프로그래밍.



선언형 과 명령형 차이점 코드 js 와 SwiftUI 코드 비교


SwiftUI에서 

@State 속성을 사용하여 상태를 선언하고, 상태가 변경될 때 자동으로 UI가 업데이트됩니다. 버튼을 클릭하면 count변수를 증가시키고, SwiftUI는 자동으로 해당 변경을 감지하고 화면을 업데이트합니다.



JavaScript에서는

 상태 변경 시 DOM 요소를 직접 업데이트하고 이벤트 리스너를 설정해야 하지만, SwiftUI에서는 상태를 선언하고 상태가 변경될 때 UI가 자동으로 업데이트되도록 관리됩니다. SwiftUI는 선언형 프로그래밍 방식으로 UI를 구축하므로 코드가 간결하고 직관적입니다.



참고자료

https://velog.io/@whale/SwiftUI-%EC%84%A0%EC%96%B8%ED%98%95UI

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari