NodeJs ๊ธฐ์ด ์์๊ฐ๊ธฐ
์๋ํ๋ฅผ ์ํด์๋ Selenium ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก node ,python์ ์ฌ์ฉํ์ฌ ์น์ ์ปจํธ๋กค ํฉ๋๋ค. ํฌ๋กฌ๋ ๊ตฌ๊ธ์์ ๋ง๋ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ GAS (Google App Script) ๋ก Chrome์ ์ ์ดํ ์ ์๋ ์๊ฐํ๋ค๊ฐ ๋ช ์ผ๋์ ๋ฆฌ์์น๋ฅผ ํ์์ง๋ง ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ผ๋ก ํ๋จํ์ต๋๋ค. python์ ์ด๋ฏธ ๋ค๋ฅธ ์ ์ ๋ถ๋ค์ด ๊ฐ๋ฐํ์๊ธฐ ๋๋ฌธ์ node.js๋ก ์์ ํ๊ธฐ๋ก ์ ํํ์ต๋๋ค. ๋ํ ์ ๋ ๋ณ๋๋ก ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ nodejs๋ก ํ ์์ ์ด๋ผ ์ด๋ฒ ๊ธฐํ์ ์ตํ๋๋ ค๊ณ ํ๋ ์ฒ์ ํ์๋ ๋ถ๋ค๋ ์ ์ ํจ๊ป ํ์ตํด๋ณด๋๋ก ํฉ์๋ค.
1๋จ๊ณ. Node.js ์ค์น
๋ค์ด๋ก๋ | Node.js
Node.jsยฎ is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
Node JS๋ก ์น ์๋ฒ ๊ตฌ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํด๋ด ๋๋ค. ์ ๋ Mac์ฌ์ฉ์ด๋ฉด์ Visual code ํด์ ์ฌ์ฉํฉ๋๋ค. ์ Nodejs ์ฌ์ดํธ์ ์ ์ํ๋ฉด Windows๋ Mac์ด๋ ๋ค ์ค์น ๊ฐ๋ฅํฉ๋๋ค.
2๋จ๊ณ. Visual Code ์ค์น
Visual Studio Code - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
code.visualstudio.com
์๋ํฐ ํ์์ ํ๋ก๊ทธ๋จ์
๋๋ค. ์ฝ๋ฉํ ํ์ผ์ ์์ ํด์ฃผ๊ณ ์ ์ฅํด์ฃผ๊ณ ์คํํ ์ ์๋๋ก ๋์์ฃผ๋ ํด์
๋๋ค. ๊ฒ์์ ๋ฐํ์ ํฐ ๊ธ์จ๋ค ์๊ฐํ์ฌ ์ด๋ ค์ ๋ง์๊ณ , ํด๋ฆญํ์ฌ ์๋ ์ ์ ํจ๊ป ์งํํ์๋ฉด ๋ฉ๋๋ค.
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 ์ ์คํํด์ค๋ค.
๋๊ตฌ๋ ํ ์ ์์ต๋๋ค. ์ด๋ ต์ง ์์ต๋๋ค. ์ด์ ์์ ๋ง์ ์นํ์ด์ง๋ฅผ ์ ์ํด ๋ด ์๋ค. ๋ฌธ์ ์ฌํญ์ด ์์ ๊ฒฝ์ฐ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์๋ฉด ํผ๋๋ฐฑ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋๊ธ
์ผ์์ ๊ณต์ ํฉ๋๋ค๋์
๊ธ์ด ์ข์๋ค๋ฉด ์์์ ๋ณด๋ด์ฃผ์ธ์!
์ด ๊ธ์ด ๋์์ด ๋๋ค๋ฉด, ์์ ๋๊ธ์ ์จ๋ณด์ธ์. ๋ธ๋ก๊ฑฐ์๊ฒ ์ง๊ธ๋๋ ์์๊ธ์ ์๋ก์ด ์ฐฝ์์ ํฐ ํ์ด ๋ฉ๋๋ค.
์์ ๋๊ธ์ ๋ง 14์ธ ์ด์ ์นด์นด์ค๊ณ์ ์ด์ฉ์๋ผ๋ฉด ๋๊ตฌ๋ ํธํ๊ฒ ์์ฑ, ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
๊ธ ๋ณธ๋ฌธ, ๋๊ธ ๋ชฉ๋ก ๋ฑ์ ํตํด ์์ํ ํฌ๊ณผ ์์ ๋๊ธ, ์์๊ธ์ ๊ฐ์กฐํด ๋ณด์ฌ์ค๋๋ค.
์์๊ธ์ ์ฑ์์๋ ์ธ์ฑ๊ฒฐ์ , ์น์์๋ ์นด์นด์คํ์ด ๋ฐ ์ ์ฉ์นด๋๋ก ๊ฒฐ์ ํ ์ ์์ต๋๋ค.