NodeJs ๊ธฐ์ด ์์๊ฐ๊ธฐ
์๋ํ๋ฅผ ์ํด์๋ Selenium ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก node ,python์ ์ฌ์ฉํ์ฌ ์น์ ์ปจํธ๋กค ํฉ๋๋ค. ํฌ๋กฌ๋ ๊ตฌ๊ธ์์ ๋ง๋ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ GAS (Google App Script) ๋ก Chrome์ ์ ์ดํ ์ ์๋ ์๊ฐํ๋ค๊ฐ ๋ช ์ผ๋์ ๋ฆฌ์์น๋ฅผ ํ์์ง๋ง ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ผ๋ก ํ๋จํ์ต๋๋ค. python์ ์ด๋ฏธ ๋ค๋ฅธ ์ ์ ๋ถ๋ค์ด ๊ฐ๋ฐํ์๊ธฐ ๋๋ฌธ์ node.js๋ก ์์ ํ๊ธฐ๋ก ์ ํํ์ต๋๋ค. ๋ํ ์ ๋ ๋ณ๋๋ก ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ nodejs๋ก ํ ์์ ์ด๋ผ ์ด๋ฒ ๊ธฐํ์ ์ตํ๋๋ ค๊ณ ํ๋ ์ฒ์ ํ์๋ ๋ถ๋ค๋ ์ ์ ํจ๊ป ํ์ตํด๋ณด๋๋ก ํฉ์๋ค.
1๋จ๊ณ. Node.js ์ค์น
Node JS๋ก ์น ์๋ฒ ๊ตฌ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํด๋ด ๋๋ค. ์ ๋ Mac์ฌ์ฉ์ด๋ฉด์ Visual code ํด์ ์ฌ์ฉํฉ๋๋ค. ์ Nodejs ์ฌ์ดํธ์ ์ ์ํ๋ฉด Windows๋ Mac์ด๋ ๋ค ์ค์น ๊ฐ๋ฅํฉ๋๋ค.
2๋จ๊ณ. Visual Code ์ค์น
์๋ํฐ ํ์์ ํ๋ก๊ทธ๋จ์
๋๋ค. ์ฝ๋ฉํ ํ์ผ์ ์์ ํด์ฃผ๊ณ ์ ์ฅํด์ฃผ๊ณ ์คํํ ์ ์๋๋ก ๋์์ฃผ๋ ํด์
๋๋ค. ๊ฒ์์ ๋ฐํ์ ํฐ ๊ธ์จ๋ค ์๊ฐํ์ฌ ์ด๋ ค์ ๋ง์๊ณ , ํด๋ฆญํ์ฌ ์๋ ์ ์ ํจ๊ป ์งํํ์๋ฉด ๋ฉ๋๋ค.
3๋จ๊ณ. ํฐ๋ฏธ๋ ์ด์ด์ express ๋ชจ๋ ์ค์น
npm init
์ ๋ช ๋ น์ด ์ ๋ ฅ ํ Enter๋ฅผ ๊ณ์ ์ ๋ ฅ ํ "Yes" ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
npm install express --save
4๋จ๊ณ. Visual Code > Open Folder > express
5๋จ๊ณ. index.js or app.js ์์ฑ ๋ฐ index.html ์์ฑ
5-1. ์๋์ ๊ฐ์ด index.js ํ์ผ์ ์์ฑํฉ๋๋ค. ์ ๋ 3000 ํฌํธ → 80 ํฌํธ๋ก ๋ณ๊ฒฝํ์์ง๋ง, ๊ธฐ๋ณธ์ค์ ์ ๋ง๊ฒ 3000 ํฌํธ๋ก ์ค์ ํ์ฌ๋ ์ข์ต๋๋ค. ํฌํธ๋ ์ซ์์ผ ๋ฟ ํฐ ์๋ฏธ๊ฐ ์์ต๋๋ค.
/*!
* express
* Copyright(c) 2009-2013 TJ Holowaychuk
* Copyright(c) 2013 Roman Shtylman
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*/
'use strict';
var express= require('./lib/express');
var app = express()
// 3000 ํฌํธ๋ก ์๋ฒ ์คํ
app.listen(3000, function() {
console.log("start! express server on port 3000")
})
app.get('/', function(req,res) {
res.sendFile(__dirname + "/public/index.html")
})
// localhost:3000/main ๋ธ๋ผ์ฐ์ ์ res.sendFile() ๋ด๋ถ์ ํ์ผ์ด ๋์์ง๋ค.
app.get('/index', function(req,res) {
res.sendFile(__dirname + "/public/index.html")
})
5-2. public/index.html ์ ์์ฑํด๋ด
์๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>main.html</title>
</head>
<body>
<h1>main page</h1>
<p>Node Express Package</p>
</body>
</html>
6๋จ๊ณ. ๋ค์ ํฐ๋ฏธ๋๋ก ๋์์์ node js ์๋ฒ๋ฅผ ์คํํ๊ธฐ ์ ์ nodemon package๋ฅผ ์ค์น
npm install nodemon
์์ค ์์ ์์ด ์๋ฒ๋ฅผ ๋ด๋ ธ๋ค ์ฌ๋ฆด ํ์ ์์ด "rs"๋ช ๋ น์ด๋ก ์๋ฒ๊ฐ ์์ ๋ ๋ฒ์ ์ผ๋ก ์ฌ์คํ๋ฉ๋๋ค. ๊ฐํน ๋ค๋ฅธ ํ์๋ฅผ ์ ๋ ฅํ์ฌ ์๋ชป ๋ช ๋ ฅ์ด๊ฐ ์ ๋ ฅ๋ ๊ฒ ์๋์ง ๊ฑฑ์ ๋ ๊ฒฝ์ฐ Enter๋ฅผ ์ ๋ ฅํ์ฌ ๋จ์ ๋์ฐ๊ณ "rs" ๋ช ๋ น์ด๋ฅผ ์ฌ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
7๋จ๊ณ. ์ด์ ํฐ๋ฏธ๋์์ ์ค์น๋ ํด๋๋ก ๊ฐ์ index.js๋ฅผ ๊ตฌ๋
nodemon index.js
์นํ์ด์ง๊ฐ ๋จ๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค. ์ ๋ ๋๋ฉ์ธ์ ๊ฑธ์๊ธฐ ๋๋ฌธ์ ๋๋ฉ์ธ์ผ๋ก ํ์ธํ ์ ์์ง๋ง, ์ฌ๋ฌ๋ถ์ https://localhost:3000 ์ผ๋ก ์ ์ํ๋ฉด ์ ์์ ์ผ๋ก ๊ตฌ๋๋๋๊ฑธ ํ์ธ ํ ์ ์์ต๋๋ค.
๐ก package ์ค์น ์ค npm fund ์ด๋ฐ ๋ฉ์์ง๊ฐ ๋ฌ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์?
> npm install --no-fund ๋์ Package Name ์ ์คํํด์ค๋ค.
๋๊ตฌ๋ ํ ์ ์์ต๋๋ค. ์ด๋ ต์ง ์์ต๋๋ค. ์ด์ ์์ ๋ง์ ์นํ์ด์ง๋ฅผ ์ ์ํด ๋ด ์๋ค. ๋ฌธ์ ์ฌํญ์ด ์์ ๊ฒฝ์ฐ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์๋ฉด ํผ๋๋ฐฑ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋๊ธ