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

younhee.song님의 프로필 이미지
younhee.song

작성한 질문수

만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)

firebase client 코드 추가

publicRuntimeConfig 질문

작성

·

354

0

client 단에서 사용하기 위해 publicRuntimeConfig setting을 한다고 하셨는데,

server 단과 client 단 둘다 동시에 적용하는 방법 중에,
.env 파일 안에, NEXT_PUBLIC_ 을 붙이는 방법도 있는 것으로 알고 있습니다.

2개의 차이점이 있을까요? 

감사합니다. 

답변 1

1

totuworld님의 프로필 이미지
totuworld
지식공유자

안녕하세요 younhee님.

저희가 만드는 서비스는 next.js를 가지고 동작하죠.

이걸 서버에서 node.js를 가지고 실행을 한 뒤 브라우저로 해당 서버에 요청을 보내면 next.js에서 html, js, css 등을 전달하여 브라우저를 통해서 최종 렌더링 되는거에요.

 

그럼 node.js를 동작시키는 서버 내 환경에 여러가지 변수가 지정되어있을 수 있습니다. .env는 이 서버에서 사요하는 환경 변수를 별도의 동작없이 로컬환경에서 쓰기 위해서 사용하는 파일입니다.

다시 말해 .env는 순수하게 서버에서만 확인할 수 있는 환경변수이고, 사용자가 화면을 만나는 브라우저 단에는 아무런 변수가 존재하지 않겠죠.

그렇지만 브라우저에서도 우리가 어떤 동작을 할 때 환경변수 등을 써야할 일이 있으니까 외부(클라이언트)에 노출되어도 문제 없는 변수를 next_public을 통해서 제공할 수 있도록 next.js가 기능을 제공합니다.

 

다시 요약하면 next_public은 next.js가 브라우저나 node.js 환경 모두에서 쓸 수 있도록 변수를 전달해주는거구요. .env는 순수하게 서버사이드에서만 사용가능한 정보가 포함되어있는겁니다.

 

(말이 어렵네요. 요고 관련해서는 영상 한번 찍어볼께요)

younhee.song님의 프로필 이미지
younhee.song
질문자

답변 감사합니다. ^^ 

younhee.song님의 프로필 이미지
younhee.song

작성한 질문수

질문하기