명령형 imparative
: 어떤 방법으로 어떻게 하려고 하는가
writing sequence of introductions that the program follows (uses statements that change a program’s state?)
- 실행될 알고리즘을 명시하고 목표는 명시하지 않음
- 객체지향 프로그래밍(Swift UIKit, Java 등), 절차적 프로그래밍 등이 명령형
선언형 declarative
: 무엇을 하려고 하는가
expresses the logic of a computation without describing its control flow. don’t specify how to achive
- 목표를 명시하고 알고리즘을 명시하지 않음.
- 함수형 프로그래밍(SwiftUI), 논리형 프로그래밍 등의 경우 선언형을 사용.
SwiftUI에서
이 카드의 폰트를 설정하기 위해 이 함수를 쓴다 (x)
이 함수는 view를 변경한다 이 폰트를 사용해서 draw 하도록 (o)
선언형 - 이 폰트는 이 View를 그리기 위해 사용되었다. at any moment in time ( time insensitive)
명령형 - 언제 어떻게 그려라.
var body: some View 는 내가 부르는 게 아니라 system이 부르는 거.
*** 그러면 UIKit에서는 viewController lifecycle 안에서 언제 생성되고 언제 없어질지 다 알려주니깐 명령형이고 SwiftUI에서 view 생성할 때는 내가 직접 명령하는게 아니라 system이 알아서 언제든지 해주니깐 선언형인것인가?
'컴퓨터시스템' 카테고리의 다른 글
http vs. https 차이 (0) | 2021.04.19 |
---|---|
[Programming Paradigm] 객체지향 vs. 절차지향 (0) | 2021.04.16 |
소프트웨어 아키텍처 패턴 Software architectural pattern (0) | 2021.01.26 |
기억장치와 메모리 계층구조 (0) | 2020.12.30 |
[데이터 처리] 동기식 비동기식 Synchronous Asynchronous (0) | 2020.12.21 |