네트워크 통신을 하려면 IP주소와 포트의 쌍이 필요한데요, 포트 번호에는 예약된 번호들이 있습니다. 0부터 1023까지가 그것인데요, 모두 사용되는 건 아닙니다. 추후에 추가될 수 있기 때문에 예약해놓았다고 생각하시면 됩니다. 이 글에서 다룰 포트 번호는 몇가지 없는데요, HTTP는 80, HTTPS는 443이라는 것만 알고계시면 됩니다.
리눅스 같은 경우 예약된 포트에 소켓을 바인딩하려면 루트 권한이 필요합니다. 이러한 이유 때문에 웹서버를 개발할 떄 80이나 443을 쓰지 않습니다. 루트 권한을 요구하는 건 보안상 매우 안 좋은 일인데, 겨우 localhost 뒤에 숫자 없애자고 루트 권한을 요구하는 건 지나친 일이기 때문입니다.
CDN은 Content Delivery Network의 약자입니다. 우선 CDN이 어떤 문제를 해결하기 위해서 나왔는지 알아보겠습니다.
필요성 브라우저로 웹사이트에 접속하는 것이나 앱에서 백엔드로 요청을 보내는 것 등은 전부 인터넷을 통해 데이터를 주고받아야 가능한 일입니다. 우선 클라이언트에서 서버로 요청 데이터를 보낸 뒤, 서버에서 다시 클라이언트로 응답 데이터를 보내줘야하죠. 서버가 데이터를 처리하는데에도 시간이 필요하지만, 실제 처리보다 데이터 전송이 더 오래 걸리는 경우가 많습니다. 다르게 말하면, 서버의 처리 속도를 아무리 올려도 총 시간을 줄이는데는 한계가 있다는 얘기입니다.
corepack이란 corepack은 node.js에서 패키지 매니저 호환성 이슈를 해결하는 도구입니다. pnpm, yarn 등은 lockfile을 생성하는데요, 해당 lockfile들은 패키지 매니저의 버전에 영향을 받기 때문에 한 패키지 매니저만 사용하는 경우에도 호환성 문제가 생길 수 있습니다. 그래서 node.js 팀이 만든 게 corepack입니다.
작동 방식 corepack을 활성화하면 yarn 명령어와 pnpm 명령어의 동작이 달라집니다. 설치된 명령어의 버전을 사용하는 대신, 프로젝트 설정에 따라 적절한 버전의 패키지 매니저를 사용합니다. 만약 적절한 버전의 패키지 매니저가 설치되어있지 않은 경우, 조용히 설치한 뒤 실행합니다.
필요성 저도 어릴 땐 API 키나 민감한 정보를 소스코드에 하드코딩했는데요, 이러면 소스코드에 접근할 수 있는 모든 사람이 API 키들을 볼 수 있게 됩니다. 이건 보안상 매우 안 좋은 일입니다. 그리고 API 키등이 변경 됐을 때 프로그램을 다시 빌드해야한다는 문제점도 있습니다.
이러한 이유들 떄문에, API 키등의 민감한 정보는 환경 변수를 사용해서 소스코드와 별개로 관리해아합니다. 이럴 때 흔히 쓰이는 게 .env 파일입니다.
.env 파일? .env 파일은
KEY1=VALUE1 ENV2=VALUE2 처럼 생긴 텍스트 파일입니다. 일반적으로 .
개발하다보면 프로젝트마다 필요한 node.js의 버전이 다른 경우가 있습니다. 매번 node.js를 지우고 다시 깔기는 너무 귀찮으니, 저 같은 경우 node.js 버전 관리자인 fnm을 이용해서 여러 버전을 동시에 설치하고 관리합니다. 다른 node.js 버전 관리자도 많지만, fnm이 가장 편하고 빨랐습니다.
설치 방법 설치 방법도 간단합니다. OS별 패키지 매니저로 설치할 수도 있고 스크립트로 설치할 수도 있는데요, 어느 쪽이든 한 줄로 끝납니다. 리눅스나 mac 같은 posix 계열 운영체재를 사용하시는 경우 아래 명령어를 터미널에서 입력하시면 설치가 끝납니다.