🦝 2022-08-22 (월)
오늘 한 것
- Node.js + Express로 임시 서버 생성 및 리액트 연결
// terminal
npm install nodemon -g
// project
npm install express nodemon concurrently
- AWS EC2 인스턴스 생성 및 서버에 NGINX를 통한 배포 (진행중)
오늘 배운 것
nginx와 express는 무엇이고 왜 쓰는지?
nginx
- 동시 접속 처리에 특화된 웹서버로 클라이언트로부터 http 요청을 받아 요청에 해당하는 파일을 http 통신을 통해 응답해주는 프로그램
- 웹서버 특성상, WAS와는 다르게 정적 컨텐츠 호스팅에 특화되어있고 이 밖에 리버스 프록시, 캐싱, 로드 밸런싱, 미디어스트리밍 등 유용한 여러 역할을 수행한다.
- 가벼움과 높은 성능 지향
리버스 프록시 서버
- 내부 애플리케이션과 외부 클라이언트 사이에 자리 잡아 클라이언트 요청을 적절한 서버로 보내주는 역할
- Node.js나 tomcat 같은 많은 어플리케이션들은 스스로 서버와 같은 역할을 하지만 Nginx에서 제공하는 로드 밸런싱, 보안, 가속화 등의 이유로 Nginx 사용
express
- Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크
- 쉽게 말하면 NodeJS를 사용하여 쉽게 서버를 구성할 수 있게 만든 클래스와 라이브러리의 집합체
node.js 사용시 nodemon 설치해서 사용하는데 nodemon은 뭐지?
nodemon
- node.js를 이용하는 파일들은 수정을 해도 반영이 바로 안되고 서버를 재시작해줘야 반영이 되기 때문에 번거롭다. nodemon은 코드가 수정될 경우 자동으로 서버를 재시작 해주기 때문에 편리하게 사용할 수 있다.
concurrently 라이브러리는 뭐고 언제 써?
concurrently
- 리액트와 익스프레스를 동시 실행해주는 역할을 한다.
에러 해결
Error: listen EADDRINUSE: address already in use :::5000
원인 - 5000번 포트가 현재 다른 프로세스에서 사용중이기에 해당 포트를 사용하는 현재 서비스를 시작할 수 없다는 에러 메세지 (에러 포트 번호가 5000번이 아닐 수도 있음)
해결 - 5000번 포트를 사용하는 프로세스를 찾고, 필요하지 않은 경우 종료를 하거나 macOS Monterey 관련 이슈일 경우, 시스템 환경 설정 - 공유 - AirPlay 수신 모드 항목의 체크를 해제한다.
Can't find .ssh directory
mkdir -p ~/.ssh 로 직접 생성하기