인프런 커뮤니티 질문&답변

이상연님의 프로필 이미지

작성한 질문수

Next + React Query로 SNS 서비스 만들기

msw 세팅과 버전 업그레이드

msw server 부분에 대한 이해를 한건지 궁금합니다

24.07.18 19:48 작성

·

136

0

안녕하세요 강의 잘 듣고있습니다.

강의를 듣다가 궁금한 점이, browser.ts와 http.ts 두개를 만든 점 입니다.

  1. next는 CSR과 SSR을 둘다 사용하기에, 서버에서도 데이터 처리를 하려고 http.ts를 통해 서버 데이터 처리를 하는 게 맞나요?

  2. 아래 코드는 브라우저 환경일 때만 brower.ts를 실행시키고 http.ts를 브라우저 환경이든 아니든 항상 켜져있는건가요?

    1. if (typeof window !== 'undefined') {
            if (process.env.NEXT_PUBLIC_API_MOCKING === 'enabled') {
              // eslint-disable-next-line global-require
              require('@/mocks/browser')
            }
          }

  3. 그렇다면 만약 react에서 사용하게 되면 CSR만 한다는 가정하에 http.ts는 필요 없게 되는건가요?

답변 2

0

이상연님의 프로필 이미지
이상연
질문자

2024. 07. 19. 01:46

감사합니다.

추가로 궁금한게 아래 코드에서

require('@/mocks/browser') 가 browser.ts를 킨다? 라는 개념으로 접근하는게 맞나요?

공식문서 참고해서 하다보니까 worker.setup() 한 뒤에, worker.start()로 키던데, 둘의 차이가 궁금합니다

if (typeof window !== 'undefined') {
      if (process.env.NEXT_PUBLIC_API_MOCKING === 'enabled') {
        require('@/mocks/browser')
      }
    }
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2024. 07. 19. 23:14

const worker = require(...)

한 뒤에

worker.start() 하는게 원래는 맞습니다. 그런데 지금은 그렇게 잘 돌아가지않아서 지워놨습니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2024. 07. 18. 20:35

  1. 네 맞습니다. 다만 현재 구조상 브라우저에서도 http.ts를 쓰고 있습니다.

  2. http.ts는 npm run mock으로 수동으로 켜두셔야 합니다.

  3. 네 원래는 필요없어야 하는데 현재 msw랑 next.js 연동 이슈때문에 http.ts가 필요합니다.