Quiz - 명령형/선언형 프로그래밍, 관심사 분리

이소라·2023년 5월 11일
0

Interview Questions

목록 보기
29/67

1. 명령형 프로그래밍과 선언형 프로그래밍의 차이에 대해 설명해주세요.

  • 명령형 프로그래밍은 프로그램이 어떻게 실행되는지에 중점을 두는 패러다임이고, 선언형 프로그래밍은 프로그램이 무엇을 하길 원하는지에 중점을 둔 패러다임입니다.
  • 명령형 프로그래밍은 코드의 실행에 대해 단계별 과정을 묘사하기 때문에 코드가 더 많고 복잡해보여서 가독성이 떨어집니다. 반면에 선언형 프로그래밍은 단계별 과정 묘사 없이 원하는 결과를 묘사하므로 코드가 적고 덜 복잡해보여서 가독성이 좋습니다.

1.1 리액트는 어떤 측면에서 선언형 프로그래밍 방식이라고 볼 수 있나요?

  • React는 선언형 방식으로 컴포넌트를 개발하도록 합니다. 따라서 React 개발자는 렌더링할 때 마다 DOM을 어떻게 조작할지에 대해 신경 쓸 필요 없이, 특정 상태에 대한 최종 UI 결과물을 선언해서 React Element의 형태로 React에 전달하고, 이를 DOM에 반영하는 것은 React의 책임으로 넘기게 됩니다.



2. SOLID 원칙 중 관심사 분리 원칙에 대해 설명해주세요.

  • 관심사 분리는 소프트웨어 상에서 구조를 패턴, 역할, 기능 등을 각각 맞게 섹션 별로 분리해서 작성하는 것입니다.
  • 관심사 분리를 사용하면 각 컴포넌트가 자신의 관심사만 책임지기 때문에 유지 보수하기 쉽고 확장 가능성이 증가합니다.



3. Inversion of Control에 설명해주세요.

  • 제어의 역전은 함수의 제어를 함수가 아닌 함수 호출자에게 넘기는 것입니다.

3.1 React에는 Inversion of control이 어떤식으로 적용되어 있나요?

  • 합성 컴포넌트, render prop에서 제어의 역전을 사용하고 있습니다.
    • 합성 컴포넌트는 공통 부모 컴포넌트에서 자식 컴포넌트에게 props로 상태를 내려주고, 상태에 대한 UI를 렌더링하는 것은 자식 컴포넌트에게 책임을 넘깁니다.
    • render prop은 컴포넌트를 렌더링하는 함수를 props로 전달받아서 필요할 때 함수를 호출할 수 있습니다.



참고

0개의 댓글