파파비의 블로그

플러터, Flutter) declarative UI programming vs imperative UI programming 본문

개발/flutter

플러터, Flutter) declarative UI programming vs imperative UI programming

N. Dave 2020. 5. 10. 14:33
반응형

플러터는 declarative UI programming 방식을 사용합니다.

swiftUI도 그러한 방식을 사용한다고 합니다.

그런데 전 swiftUI가 뭔지 잘 모릅니다 ^^;

 

아무튼, 

안드로이드 스튜디오 같은 형식은 imperative UI programming 방식입니다.

 

이둘의 차이는 무엇일까요?

 

전형적인 프로그래밍 방식은 imperative UI programming입니다.

imperative UI programming은 변화의 과정을 일일이 개발자가 명시합니다.

 

예를 들어 레이아웃의 색깔을 변화시킬 경우, 버튼을 늘릴 경우

그 레이아웃 객체의 기존 색을 제거하고, 새로운 색을 add하고...

버튼은 하나 생성해서 어디 아래로 넣어라! 라고 변화의 '과정'을 명시하는 것이죠.

이러는 과정에서 개발자들끼리도 다른 논리를 구성할 수도 있고 그렇습니다.

 

반면 declarative UI programming은 변화된 상태를 명시해줍니다.

최종적인 state을 명시를 해주는 것이죠.

배경색은 빨개야 하고, 버튼은 한개 추가된 상태로 만들어줘!

라고 코딩을 하면 어떤 과정으로 그렇게 하는지는 flutter 처럼 declarative UI programming 을 사용하는

프레임워크가 해줍니다.

 

declarative UI programming의 장점은 그래서 중간과정을 생략하니 '속도'겠죠

반대로  imperative UI programming은 '정교함' 이 장점이 될 수 있겠습니다만

프레임워크의 성능이 좋아지면서 그 정교함이 주는 가치가 낮아지기 시작해서

요즘에  declarative UI programming이 나타나기 시작한 것 같습니다 

 

반응형
Comments