오늘 한 일
- 아직도 오픈 못했다...dev 환경 배포 후 stage 환경 배포까지는 마쳤지만 production 배포를 못했다ㅠㅠ 이번 주 초반까지만 해도 별 어려움 없이 진행되지 않을까 싶었는데 꼬리에 꼬리를 무는 온갖 오류 덕분에 금요일까지 밀려버리고 말았다.
- 각 환경마다 연결되어 있는 서버도 달라서 환경별로 서버 url도 달라지고, 실서비스에서는 보여주지 않아야 할 부분이나 작동하지 않아야 할 함수 같은 것들을 각각 분기할 필요가 있다.
- 건드리는 게 금기시 된다고
아무도 얘기한 적 없는데 나만 그렇게생각한 프로젝트 내 package.json 파일을 직접 건드려서 스크립트 명령어를 고치면 손쉽게 환경변수를 분기할 수 있다. 물론 환경변수만 분기했다고 끝나는 건 아니고, 그것이 각각 다르게 작동해야 할 파일들에는 직접 조건문을 사용하든지 해서 적용을 해줘야 한다. - 프로젝트 내부 어느 위치에서든지 process.env.NODE_ENV를 찍어보면 development나 production이 나오는데, 이건 디폴트가 development이고 내가 어떤 환경으로 의도했건 빌드 후 배포를 하면 production이 되는 것 같다.
- 하지만 기능 테스트를 하기 위해 개발서버에 배포하고 싶을 수도 있고, production 직전에 동일한 환경을 만들어 최종 테스트를 하기 위해 개발환경도, 운영환경도 아닌 그 중간 어디쯤의 테스트 환경으로 배포하고 싶을 수도 있다. 하지만 배포하면 process.env.NODE_ENV는 production이 된다.
- 환경을 내 마음대로 분기하기 위해서는 package.json에 'env': 'process.env.REACT_APP_<CUSTOM>=<SOMETHING> react-script start' 같은 형식으로 스크립트 명령어를 적어두고, 키보드가 닳을 정도로 입력하던 yarn start 대신 내가 만든 명령어를 넣어서 yarn env를 입력하면 REACT_APP_<CUSTOM>이 <SOMETHING> 모드로 실행된다. App.jsx에 현재 실행되고 있는 환경을 확인할 수 있는 로그를 찍는 함수를 넣어놓으면 좋다.
아냐 이것보다 더 중요한 건오늘 항해 4기분들 멘토링(내가 뭐라고 멘토링을...ㅠㅠ)이 있었다는 것이다! 배포 프로세스 밟다가 삐걱거려서 30분이나 지각한 데다 말주변도 없어서 이 말 저 말 다 주워 섬기는 내가 너무 민망할 정도로 많은 분들이 계셨다.근데 그 분들이 리액트 거의 전체 인원이라는 게 함정...- 아무튼 내가 오늘 한 말들이 얼마나 실제로 도움이 되어 드릴 수 있는지는 모르겠지만 예전의 내 모습을 보는 것 같아 한편으로는 짠하고 한편으로는 기특(?)했다. 코딩에 한창 재미 느껴가며 스스로의 부족함도 깨달아가며 채찍질도 하고 모든 시간을 공부에 투자할 수 있다는 게 얼마나 좋았는지. 당시에는 잘 될 거다, 하면 된다, 어렵지 않다 같은 말들 코웃음 치며 한 귀로 듣고 한 귀로 흘렸는데 지금 생각해보면 그게 다 맞는 말이라는 것도 신기하다. 꼭 4기 분들도 나와 같은 기분을 느낄 수 있었으면 좋겠다.
아니 근데 벌써 4기라니 내 시간 다 어디 갔어
오늘 배운 것
- 환경변수 분기에 대해 자세히 설명한 링크. 다만 나는 이 분이 사용하신 모듈 없이 package.json 명령어만 수정했다. 그걸로도 충분하다고 생각한다.
아직은
- 이건 위 링크에 비하면 기본적인 내용이고 5년 전 게시글이지만 중요하다고 생각해서 가져왔다. package.json에 명령어 추가하고 사용하는 방법에 대한 짧은 스택오버플로우의 질답이다.
'post항해_배움일지 > 개발일기' 카테고리의 다른 글
개발일기_211207_클립보드에 복사하기 (2) | 2021.12.08 |
---|---|
개발일기_211124_element.scrollIntoView() (4) | 2021.11.24 |
개발일기_211123_youtube + iframe = react-youtube (4) | 2021.11.24 |