명령형 프로그래밍은 당신이 어떤 일을 어떻게 할 것인가에 관한 것이고,
선언적 프로그래밍은 당신이 무엇을 할 것인가에 관한 것.
즉, 명령형 프로그래밍은 단계별 지침을 제공하는 데 반해, 선언적 프로그래밍은 필요 단계를 고려 않고 하는 것이다.
[예시] 레스토랑
오늘 회사에서 퇴근 후, 남자친구와 함께 레스토랑에서 스테이크를 먹기로했다. 가기로 약속했던, HEUM 레스토랑에 도착한 후, 레스토랑 직원에게 말을 걸었다. 어떤 방식으로 ?
- 명령형 방식 (HOW) : "구석진 곳 5번 테이블 자리가 비어있군요. 우리는 저기로 걸어가서 앉을게요."
- 선언형 방식 (WHAT) : "우리가 함께할 로맨틱한 자리를(공간을) 부탁해요."
명령형 방식은 내가 실제로 자리에 "어떻게" 자리에 앉을지 에 관심이 있다. 따라서 "어떻게" 자리에 앉을지에 대한 단계를 하나하나 나열해야 한다. 그와 반대로 선언형 방식은 내가 "무엇을" 원하는지에 더 집중되어 있다.
//명령형 예시(반복문, 조건문)
const arr = [1,2,3,4,5];
const result = [];
for(let i = 0; i < arr.length; i++){
// 짝수일때만
if(arr[i]%2 === 0){
result.push(arr[i]);
}
}
console.log(result);
// [2,4]
//선언형 예시
const arr = [3,6,9,12,15];
console.log(arr.filter(num => num%2 === 0)).map(item => item/3));
// [2,4]
[WHY] 선언형으로 UI를 설계해야 하는 이유
- UI 코드에 기능을 추가하거나 로직을 변경할 때 번거로움과 오류를 줄이기 위함
- 의존성을 줄여 선언한 UI 인자에만 내부 로직이 반응하게 하여 side-effect를 줄이기 위함
- 기능확장과 모듈화를 쉽게하기 위함
QUIZ . React는 명령형일까요, 선언형일까요?
더보기
정답 : 선언형 프로그래밍 !!
'React(리액트)' 카테고리의 다른 글
[React] Navigate ...? (0) | 2022.02.28 |
---|---|
[TIL] 라이브러리(Library) & 프레임워크(Framework) 란? (1) | 2022.02.27 |
[TIL] 리액트 ( ROUTER & SCSS ) (2) | 2022.02.27 |
[React] Westagram 코딩 (2) - comment (0) | 2022.02.25 |
[React] Westagram 코딩 (1) - login (0) | 2022.02.24 |
댓글