반응형
콩니🔧
개지니어 콩니
콩니🔧
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • Life outside of work (13)
    • DevOps (29)
    • Developments (23)
    • CS and others (7)
    • Book reviews (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

  • 제가 누군지 궁금하시다면

인기 글

태그

  • HTML
  • Jenkins
  • DevOps
  • Infra
  • 프로그래머스
  • web
  • Network
  • Java
  • programmers
  • kubernetes

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
콩니🔧

개지니어 콩니

CS and others

Declarative vs. Imperative

2021. 5. 14. 23:09
반응형

Terraform에서도 언급되고, Jenkins pipeline 문법에서도 언급되는..(이 경우엔 카운터파트가 imperative가 아니라 scripted)

Declarative vs. Imperative

  • Declarative: 사용자(개발자)가 원하는 최종 형태를 선언
    e.g., Terraform 을 사용할 때의 Declarative 선언 형태 : (config 파일이 정의된 상태에서) 이 config를 가진 5대의 서버. → 즉, end state 에 대한 정의가 있고 이를 어떻게 구현하는지는 표현하지 않음
    요 end state 를 보통 desired state 라고 표현함 특히특히특히 k8s에서...
    (TMI지만 k8s가 k8s인 이유는 k ubernete s 요 k랑 s 사이에 8글자가 들어가서...! )
  • Imperative: 사용자(개발자)가 원하는 형태를 만들어 내기 위한 동작들을 기재
    e.g., 위의 예시라고 한다면 aws ec2 인스턴스를 생성하고, 거기에 인증정보를 ㅁㅁ를 통해서 넣고, ㅁㅁㅁ 를 어디에 설치하고 , ....

단순히 놓고 보면 전자가 더 편하게 느껴지겠지만, 세부 설정을 위해서는 결국 두가지 선언형태를 다 사용하게 되는.. 👀 👀

인프라에서만 사용되는 개념은 아니고, 언어 특성을 이야기할 때도 언급되는 개념이다.
일반적으로 사용하는 프로그래밍 언어.. Java나 C 같은 것들을 여기서는 Imperative 라고 할 수 있고,
SQL 이런 DB용 언어를 Declarative 하다고 할 수 있다.

일반적인 프로그래밍 언어에서는 내가 원하는 걸 어떻게 얻어야 할 지에 대한 instruction을 나열하지만
SQL에서는 select OO from OO where OOO... 이런식으로 내가 얻고자 하는 end result만
정형화해서 표현한다. 
그리고 나서 그 쿼리에 맞는 결과물을 가져오는 건? DB의 몫...!

execution plan을 내가 짜느냐(java, python 등), 남이 짜느냐(sql)가 이 두 개념을 가르는 차이라 할 수 있겠다.
SQL도 execution plan을 내가 바꾸도록 유도할 수 있지만 그거는 논외로...👀 👀

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'CS and others' 카테고리의 다른 글

[이럴땐이렇게] Mac OSX 에서 확장자 일괄 변경하기 (하위 폴더내 파일 포함)  (1) 2021.08.29
패킷에서 특정 프로토콜의 영역이 이상하게 잡힌다면...?  (0) 2021.08.14
[이럴땐이렇게] 맥북에서 창이 화면 밖으로 나간 경우(집 나간 창) 데려오기  (4) 2021.06.26
201202 Linux 두 디렉토리(폴더)의 차이점 비교(diff -rq)  (0) 2020.12.02
200803 TIL: 파이썬 인공지능 특강  (0) 2020.08.03
    콩니🔧
    콩니🔧
    개발알못 인프라알못 콩니

    티스토리툴바