작성
·
153
0
안녕하세요 강의 잘 듣고있습니다.
강의를 듣다가 궁금한 점이, browser.ts와 http.ts 두개를 만든 점 입니다.
next는 CSR과 SSR을 둘다 사용하기에, 서버에서도 데이터 처리를 하려고 http.ts를 통해 서버 데이터 처리를 하는 게 맞나요?
아래 코드는 브라우저 환경일 때만 brower.ts를 실행시키고 http.ts를 브라우저 환경이든 아니든 항상 켜져있는건가요?
if (typeof window !== 'undefined') {
if (process.env.NEXT_PUBLIC_API_MOCKING === 'enabled') {
// eslint-disable-next-line global-require
require('@/mocks/browser')
}
}
그렇다면 만약 react에서 사용하게 되면 CSR만 한다는 가정하에 http.ts는 필요 없게 되는건가요?
답변 2
0
감사합니다.
추가로 궁금한게 아래 코드에서
require('@/mocks/browser') 가 browser.ts를 킨다? 라는 개념으로 접근하는게 맞나요?
공식문서 참고해서 하다보니까 worker.setup() 한 뒤에, worker.start()로 키던데, 둘의 차이가 궁금합니다
if (typeof window !== 'undefined') {
if (process.env.NEXT_PUBLIC_API_MOCKING === 'enabled') {
require('@/mocks/browser')
}
}
0
네 맞습니다. 다만 현재 구조상 브라우저에서도 http.ts를 쓰고 있습니다.
http.ts는 npm run mock으로 수동으로 켜두셔야 합니다.
네 원래는 필요없어야 하는데 현재 msw랑 next.js 연동 이슈때문에 http.ts가 필요합니다.
const worker = require(...)
한 뒤에
worker.start() 하는게 원래는 맞습니다. 그런데 지금은 그렇게 잘 돌아가지않아서 지워놨습니다.