본문 바로가기

외부 활동/UMC 2기 서버[NODE]

6주차 - RestfulAPI와 프레임워크

 

get메소드

==> 무언가를 조회 할 때 사용이 된다.

클라이언트는 서버에서 어떤 정보를 주어야 할까?

==>어떤 정볼르 조회 할것인지 서버에게 주어야한다. 대표적으로 querystring을이용

 

 

 

회원가입을 할때는 id,비밀번호,휴대전화번호, 이름 들을 보내야한다.

물론 이 많은 정보들을 쿼리 스트링으로 보낼수 있겠지만 매우 비효율적이다.

그래서 post메소드를 회원가입시 주로 사용을 한다. 특히 무언가를 생성해야할떄.

 

 

또한 주로 JSON 형태로 데이터를 주고 받는다.

 

 

 

API(application Programming Interface) 란?

 

예를 들어 핵폭탄을 터트리려는데 핵폭탄의 원리를 알 필요 없이 버튼 하나만 누르면 된다.

또한 스테이크를 먹기위해서 스테이크 요리하는법 전체를 알 필요없이 주문하는 법을 알면 된다.

 

 

주로 서버 구성 템플릿이다.

템플릿 내부 데이터 베이스와 연결

host에는 AWS에 RDS의 엔드 포인트

user에는 admin

port는 mysql 3306으로 관습적고정

password는 비번 ㅇㅇ

database에는 datagrip으로 만든 데이터베이스 이름을 넣어주면 된다.

 

 

 

잘 작동한다 ㅇㅇ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이제 ec2에 배포를 해보자.

우선 로컬에서 작업한걸 깃에 올려준다.

난 이미 해당 폴더를 깃으로 클론을 받아 작성을 했기 때문에 이미 깃에는 올라가 있다.

 

/var/www로 이동한 뒤     그곳에 깃 클론을 해준다.

 

 

 //깨알정보:cgi-bin, html 디렉터리가 있는 곳으로 웹서버 파일스크립트 정보가 html, cgi(perl, python 등)에 맞게 담겨있다.

 

이후 클론 받은 디렉토리로 가서 npm i를 해준다.

여기서 오류가 나면  sudo apt install npm 명령어를 작성해 준다.

여기서 처음 오류가 나서

https://stackoverflow.com/questions/51843595/how-to-fix-this-error-npm   이 곳을 참조해서 해결.

이후 

 

대충 express 모듈이 안보인다고 해서 설치했다. npm install express

 

이런 에러가 떴다 생긴건 막상 무시무시하게 생겼지만 그냥 express가 없어서 징징 대는 이야기이다.

그래서 express가 있는지,설치가 잘 됬는지 확인하기 위해 버전확인을 해보니 없었고 뭐 딱봐도 밑에 커맨드로 설치 할 수 있다고 알려줘서 설치하였다.

 

이렇게 다산다난한 ec2에서의 라이브러리 설치를 끝냈고 이제 ec2에서 서버를 실행 시켜 보자

sudo node index.js

 

이전에 꼭 aws ec2 인바운드 규칙에서 3000번 포트를 열어주자

 

야미쓰 

이제 나의 aws 로 받은 주소로도 접근이 가능하다

77ㅣ약~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이제 보안접속과 (https)도메인 사용을 위해 reverse proxy 설정을 하려고 한다.

https://losskatsu.github.io/it-infra/reverse-proxy/#2-%ED%8F%AC%EC%9B%8C%EB%93%9C-%ED%94%84%EB%A1%9D%EC%8B%9Cforward-%EC%84%9C%EB%B2%84%EB%9E%80

 

[Infra] 리버스 프록시(reverse proxy) 서버 개념

리버스 프록시(reverse proxy) 서버 개념

losskatsu.github.io

라고 한다. 참고하자.

 

 

우선 /etc/nginx/sites-availavle       로 이동

sudo vi default 파일 편집에서

39번 줄에 루트를 깃 클론된 경로로 수정하고

42번 줄에 index.js를 추가해준다.

그리고 49번 라인에 try_files $uri $uri/ =404; 부분앞에 #을 추가하여 주석 처리를 해준다.

그리고 50번에 proxy_pass http://localhost:3000;를 추가해준다

==>간단하게 이게뭐냐면, 서버로 정보가 오면 3000번 포트로 넘겨줘라. 라는 뜻이다.

그 후 테스트(sudo nginx -t)하고 재시작(sudo service nginx restart)을 해준다.

 

 

예스 이제 도메인으로도 접속가능

77ㅣ약

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이제 무중단 서버를 설정하기 위해 pm2를 설치해주자.

 

sudo npm install pm2 -g

 

 

또 오류가 떴다. 이정도면 유데미가 일부러 에러를 직접 찾아서 해결하라고 강의를 대충 만든것같다 ㅋㅋ

뭐 암튼 npm패키지들 사이에 버전 차이가 있을 때 생기는 오류라고 한다. 종속성 오류인것 같다고 한다 -웅-

 

 

sudo npm cache clean --force

sudo npm install -g n

sudo n stable

명령어를 차례로 실행.

 

이렇게 다시 pm2를 설치해준다.

sudo pm2 start index.js로 pm2를 시작한다. 그럼 가장 밑에 status 가 online(온라인)으로 되어있다.

이후 postman으로 테스트해보면

야미쓰 잘된다 ㅎ

 

이후 pm2 로그를 볼수도 있고 여러가지 기능이 있는것 같지만 그건 그때 그때 구글링해서 찾아봅세~~

 

 

길고긴 UMC2기 server 졸업쓰 ㅎㅎ

이제 각자 필요한 api를 만들고 postman으로 실습을 해보며 연습해보자 !