inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[React 2부] 고급 주제와 훅

[2.1장 컨택스트] 2.1.4 공급자와 소비자

MyReact를 IIFE(즉시실행함수)로 설계하신 이유

해결된 질문

208

jj4783

작성한 질문수 19

0

제목그대로, MyReact를 IIFE(즉시실행함수)로 설계하신 이유가 무엇일까요???

이걸 끌어다 쓰는 곳에서

MyReact.creacteContext()

MyReact().createContext() 이렇게 쓰는것이 아니라, 위의 코드처럼 쓰려고 그런것일까요????

react React-Context react-hooks react-router react-component

답변 2

0

김정환

함수 스코프 안에 관련 코드를 담으려고 즉시실행함수를 사용했습니다. 아래 ai 답변의 특징을 참고하시면 좋을 것 같습니다.

하지만 프로젝트에서 웹팩을 사용하고 있어서 직접 ECMAScript 모듈 문법 시스템을 활용해도 될것 같습니다.

// MyReact.js
export function createContext() {}

// 혹은
const MyReact = {
  createContext
}
export default MyReact

1

jj4783

아하 그렇군요...!! 아래답변이랑 참고해서 복습해보겠습니다. 감사합니다:)

1

김정환

수업 들으시다가 궁금하신 점이나 안풀리는 부분이 있으면 언제든 질문올려주세요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. jj4783님, 질문을 남겨주셔서 감사합니다.

MyReact를 IIFE(즉시실행함수)로 설계한 이유는 주로 다음과 같은 몇 가지 장점 때문입니다:

  1. 모듈 패턴: IIFE를 사용하면 코드 내부에 있는 변수와 함수가 외부에 노출되지 않기 때문에 모듈 패턴으로 사용할 수 있습니다. 이러한 이유로 전역 공간을 오염시키지 않고 필요한 기능만을 외부로 노출할 수 있습니다. 이는 MyReact 같은 라이브러리나 유틸리티 코드를 구현할 때 매우 유용합니다.

  2. 명료한 API: IIFE를 사용하면 MyReact 객체가 하나의 네임스페이스를 제공하는 것처럼 작동합니다. 이렇게 함으로써 MyReact.createContext()와 같은 API를 명료하고 일관되게 사용할 수 있습니다. MyReact().createContext() 형태로 사용하는 것보다 직관적이고 깔끔하게 API를 설계할 수 있습니다.

  3. 즉시 초기화: 필요한 초기화 작업을 IIFE 내부에서 즉시 수행할 수 있습니다. 이는 MyReact가 구성 요소를 미리 준비해야 하거나 초기 상태를 설정해야 하는 경우에 유용하게 사용됩니다.

아래 링크를 통해 더 많은 정보를 확인할 수 있습니다:

위와 같은 이유로 MyReact를 IIFE로 설계한 것으로 볼 수 있습니다. 이런 설계 방식을 통해 MyReact 사용 시 직관적이고 관리하기 용이합니다. 추가로 궁금한 점이 생기신다면 언제든지 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

잘못된 useEffect 사용?

1

65

2

useEffect 의존성 질문

1

57

2

orderableProductItem 에 관하여...

0

56

2

강의 자료, 블로그, 깃 주소

0

63

1

React 훅 구현 원리와 실무 패턴 관련 질문 (useState, useEffect 순서 및 핸들러 구조)

1

104

2

pushState로 주소를 바꾸면 렌더링이 안 되는 이유가 궁금합니다.

1

87

2

FormControl 컴포넌트 사용시 htmlFor prop 값 넘길 때 중괄호 이유

1

123

1

dispatch 함수도 리렌더링 유발하지 않나요?

1

203

2

ProductItem에서 onClick = {onClick}을 달지 않아도 되는 이유

1

160

2

replaceState를 쓰지 않는 대안

1

196

2

setValue 메서드를 바인딩 해야 하는 이유

1

163

2

[4.4장 메모이제이션 훅] 4.4.3 memo 참조 비교

0

129

1

useRef 관련하여 질문드립니다

0

152

2

렌더 프롭 관련하여 질문드립니다

0

183

2

[1.2장 상품목록 화면] 1.2.3 Button ...rest 관련 질문 드립니다.

1

395

2

[4.4장 메모이제이션 훅] 4.4.4 useCallback curried function에 관한 질문입니다.

1

317

2

[4.4장 메모이제이션 훅] 4.4.2 useMemo 에서 every 함수에 관한 질문입니다.

1

355

2

[4.3장 리듀서 훅] 4.3.7 활용 MyForm(풀이) 오타 제보 및 질문이 있습니다.

1

281

2

[4.1장 레프 훅] useRef관련 질문이있습니다.

1

334

1

[1.3장 주문 내역 화면] 1.3.5 Card 조합 질문 있습니다

2

284

1

[3.5장 컨택스트 훅] 3.5.2 useContenxt 에서 질문이 있습니다.

1

432

2

[1.3.6 상태정의] state 관련

1

259

1

[2.4장 다이얼로그 1] 2.4.5 withLayout(풀이) 에 관한 질문입니다.

1

272

1

[2.1장 컨택스트] 2.1.4 공급자와 소비자 / 에서 질문이 있습니다.

1

425

2