• 로그인
  • 장바구니에 상품이 없습니다.

Docker로 띄워볼 서버만들기

 

0:00 서버가 뭐냐면

1:25 서버만들기

5:18 배포하려면

 

 

 

 

도커 명령어 깔짝대기만 하면 어짜피 다음날 다 까먹습니다.

실제로 활용해보는 식으로 배워야 기억에 오래남습니다.

그래서 웹서버를 하나 만들어서 그걸 이미지로 만들어서 배포를 하는 상황에서 도커를 배워보도록 합시다.

실제로도 그렇게 도커를 가장 많이 사용합니다.

 

 

 

 

 

서버만들기

 

Node.js 사용하면 서버는 5분이면 누구나 만들 수 있는데 일단 서버가 뭐냐면 

"누가 A라는 자료를 요청하면 A라는 자료를 보내주기"

이게 작성되어있는 간단한 프로그램입니다.

 

예를 들어 유튜브 서버는

"유저가 동영상 요구하면 동영상을 보내주기"

라고 작성되어있습니다.

 

예를 들어 네이버 뉴스 서버는

"유저가 뉴스 요구하면 뉴스를 보내주기"

라고 작성되어있습니다.

 

그런 호구같은 프로그램을 우리가 서버라고 부릅니다.

그래서 우리는 호구처럼 보이지 않도록 "접속하면 욕설을 보내주는 서버"를 만들어봅시다.

 

제일 쉬운 Node.js를 사용해볼 것인데 4-step을 거치면 서버가 완성됩니다.

1. Node.js 설치

2. Express 라이브러리 설치

3. 코드짜기

4. 코드실행

중요한 점은 이걸 잘 기억해야 앞으로 도커도 잘 사용할 수 있습니다.

밀키트 만들 때 이 작업 그대로 하라고 도커쨩에게 명령해야하니까요.

 

 

 

 

 

서버만들기 1. Node.js 설치

 

Node.js는 자바스크립트 코드를 컴퓨터 아무데서나 실행할 수 있게 도와주는 프로그램인데

이게 있으면 서버도 만들고 그럴 수 있습니다.

구글에 Node.js 검색해서 LTS라고 써있는 버전을 다운받아서 설치까지 합시다.

참고로 맥이나 윈도우나 똑같음

 

 

 

 

▲ 그 다음에 작업용 폴더 아무데나 하나 만들고

코드 에디터로 그 폴더를 오픈해서 코드를 짭시다.

저는 VSCode 에디터 사용할 것이고 없으면 하나 설치하면 되겠습니다.

 

 

 

▲ 이제 폴더 안에 server.js 파일을 하나 만들어서 서버 코드를 짤건데

그 전에 라이브러리 설치를 좀 해야합니다.

 

 

 

 

 

서버만들기 2. 라이브러리 설치

 

웹서버 쉽게 만들어주는 express라는 라이브러리를 설치해서 이용해봅시다.

에디터 상단에서 터미널을 오픈할 수 있는데

 

 

 

우선 npm init -y 입력 후 엔터누르면 라이브러리 어떤 것들을 설치했는지 기록할 수 있는 파일을 하나 생성할 수 있습니다.

그 다음에 npm install express 입력하면 express가 설치됩니다.

그럼 라이브러리 소스코드는 node_modules 라는 폴더에 담겨있습니다.

- npm으로 하는게 안되면 하단을 참고합시다

- 에디터에서 작업폴더 오픈 안하고 입력하면 코딩인생 끝남

 

 

 

 

서버만들기 3. 코드작성

 

코딩 배우는 시간이 아니기 때문에 server.js 파일에 그대로 복붙하도록 합시다.

 

const express = require('express');
const app = express();

app.listen(8080, () => {
  console.log('서버 실행중 http://localhost:8080');
});

app.get('/', (req, res) => {
  res.send('안녕');
}); 

대충 express 라이브러리를 이용해서 localhost:8080 주소에 서버를 띄워두라고 했고

누가 메인페이지로 들어오면 ‘안녕’ 이라는 글자를 보내라고 했습니다.

'안녕'이 마음에 안들면 취향따라 욕설을 적어보도록 합시다.

 

 

 

 

 

서버만들기 4. 코드실행

 

server.js 파일 실행하면 서버가 실행되는데

그건 터미널 열어서 node server.js 입력하면 끝입니다.

그 후에 웹브라우저 켜서 localhost:8080 이런 주소로 접속하면 여러분이 만든 웹서버를 만날 수 있습니다.

 

(참고) 개발할 때 코드를 수정해도 바로바로 반영되게 만들고 싶으면

터미널에 npm install -g nodemon 입력해서 라이브러리 하나 설치한 뒤에

nodemon server.js 입력으로 서버를 띄우는 경우도 있습니다.

 

(참고) 실제로 서버를 운영하는 경우에는 서버가 이상한 에러 때문에 죽는 경우가 많아서

그럴 때도 다시 알아서 잘 실행되도록 하려면 pm2같은 라이브러리를 설치해서 서버를 띄우는 경우들이 있습니다. 

 

 

 

 

 

 

배포하려면 

그래서 방금 서버개발 다 해봤는데 이걸 배포하고 싶으면 어떻게 합니까

AWS 이런데서 서버컴퓨터 빌려서 방금 했던 4-step 그대로 똑같이 하면 서버배포 끝입니다.

그 후에 "컴퓨터IPv4주소:8080"으로 들어가면 서버를 만날 수 있습니다.

근데 이건 단점이 있는데 1. 매우 귀찮고 2. 컴퓨터마다 환경이 달라서 의도대로 동작하지 않을 수도 있습니다.

 

Docker를 사용하면 내 환경과 코드를 이미지로 만들어놓을 수 있다고 했습니다.

이미지는 옮기기도 쉽고 실행도 쉽기 때문에

1. 내 환경과 코드를 이미지로 만들어놓은 다음에

2. AWS컴퓨터에 그대로 이미지를 옮겨서 실행만 하는게

훨씬 간단하고 에러도 적습니다.

 

 

Q. 이미지는 어떻게 만들죠?

- Dockerfile이 필요합니다.

Dockerfile은 밀키트 레시피 적는 곳인데

여기다가 어떤 OS를 설치해야되는지

어떤 프로그램과 라이브러리를 설치할건지

어떤 터미널 명령어를 실행할건지 다 적어놓을 수 있습니다.

 

 

 

이거저거 작성해둔 다음에 터미널에서 docker build 명령어 입력하면 여러분만의 이미지를 하나 생성할 수 있습니다. 

근데 dockerfile 문법으로 적어야 해서 그건 다음 시간에 알아볼 것임

 

 

 

 

 

npm으로 뭔가 입력하는게 잘 안되는 경우

 

- Node.js 설치된거 지우고 최근에 나온 LTS 버전으로 다시 설치해봅시다.

- 맥의 경우 sudo를 넣어서 sudo npm 어쩌구~ 입력해봅시다.

- 윈도우는 허가되지 않은 스크립트 어쩌구 에러가 나면 

시작 - 검색 - powershell 검색 후 관리자모드로 실행해서 

Set-ExecutionPolicy RemoteSigned 입력하고 터미널 껐다켜서 다시 시도해봅시다.

- 윈도우는 onedrive 폴더 안에 코딩하면 원래 잘 안됩니다.

- 요즘 Node.js는 한글 폴더명을 사용시 잘 안됩니다.

 

 

 

 

 

SEE ALL Add a note
YOU
Add your Comment

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠