ํ๋ ์์ํฌ๋ฅผ ์ ์ฌ์ฉํ ๊น?
Framework
๋ฐ๋ณต์ ์ผ๋ก ์ด๋์์๋ ๋ฑ์ฅํ๋ ์ผ์ ๋ ์ ์ ์ฝ๋๋ก ๋ง์ ์ผ์ ์์ ํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ
๋ฏธ๋ฆฌ ์ ์ฑ๊ป ๊ตฌํํด๋์ ๊ธฐ๋ฅ์ ์ฌ์ฉํจ
๐ค
๊ฐ๋ฐ์๋
web์์ ๋ฐ๋ณต์ ์ผ๋ก ์ด๋์์๋ ์ผ์ด๋๋ ์ผ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์๋์ ์ผ๋ค์ ํ๋ ์์ํฌ๋ก ์ํํ ์ ์๋ค.
- url ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํ๋ ์ผ
- ์ ์ ์ธ jsํ์ผ, imageํ์ผ๋ค์ ์ปดํจํฐ์์ ์ฝ์ด์ ์ฌ์ฉ์์๊ฒ ์ ๊ณต
- ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ณด์์ ์ธ ์ด์ ํด๊ฒฐ
express
node.js ์ ๋ณดํธ์ ์นํ๋ ์์ํฌ์ค ํ๋
๋ฐฐ์ฐ๊ธฐ ์ด๋ ต์ง๋ง, ์ฌ์ฉํ๊ธฐ ์ข์ ํ๋ ์์ํฌ ์ค ํ๋
Node.js
์๋ฒ์ฌ์ด๋์์ ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์คํํ๊ฒฝ
์๋ฒ์ธก์ ํ์ค ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฑ ๋๊ฑฐ ํฌํจ
nvm: ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ ์ฌ์ฉํ์ฌ ๋ฒ์ ๊ด๋ฆฌ
npm (node package manager)
Node.js ๊ฐ๋ฐ์์ด์ฉํ๋ ํจํค์ง ๊ด๋ฆฌ ํด
์ด๋ค ํจํค์ง์ ์ด๋ ๋ฒ์ ์ ์ฌ์ฉํ๋์ง "package.json" ์ด๋ผ๋ ํ์ผ์ ๊ธฐ๋กํด ๊ด๋ฆฌ
ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ์ง ์์ ๊ฐ๋จํ ์๋ฒ ๊ตฌ์ถํด๋ณด๊ธฐ (์ค์ต)
๊ฐ๋จํ local ์๋ฒ ๊ตฌ์ถ
1๏ธโฃ ์์ ์ฉ ์์ ํด๋ ์์ฑ
npm init -y
์ด ํด๋์์ ํ๋ก์ ํธ ์์ํ ๋! ๋ผ๊ณ npm์ ์ ๋ฌ
-> package.json ํ์ผ ์์ฑ
2๏ธโฃjs ํ์ผ ์์ฑ ( app.js)
const http = require('http');
const server = http.createServer((req,res)=>{
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World');
})
//8080์ด๋ผ๋ ํฌํธ์
server.listen(8080);
http ๋ชจ๋๋ก๋
createServer ๋ฉ์๋ ์ด์ฉํ์ฌ ์๋ฒ ์์ฑ ๋ณ์์ ์ ์ฅ
req(request ์ ์ธ๋ถ ์ฌํญ)
res(response ๋ณด๋ด๊ธฐ ์ํ ํด ๊ทธ๋ฃน)
writeHead ๋ฉ์๋๋ก ์๋ตํค๋ ์ง์ -> "Hello World" ํ ์คํธ ๋ฉ์ธ์ง ๋ฐํ
-> ์์ฑ๋ server object๊ฐ listen ๋ฉ์๋ ์คํํ์ฌ ์์ฒญ ์์
3๏ธโฃ app.js ํ์ผ ์คํ
node app.js
โจ์ง์~ ๋๋ง์ local ์๋ฒ ์์ฑ
์ฐธ๊ณ ์๋ฃ
[์งง์ ์๋ฒ ๊ธฐ์ด๊ฐ์] :www.youtube.com/watch?v=CGV_01QdM-4
๊ทธ๋ฌ๋. ๋งค๋ฒ ์์ฒญ(request)์ ๋ฐ๋ฅธ ์๋ต(response)์ ํํ๋๊ฒ์ ๊ท์ฐฎ์ง ์์๊น?
๊ทธ๋์ Node.js express ๋ผ๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ค
Node.js ์ express ํ๋ ์์ํฌ ์ฌ์ฉํด๋ณด๊ธฐ (์ค์ต)
express-generator: ์์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ฃผ๋ ํด
1๏ธโฃ express ์ค์น
npm install express --save
express ์ค์นํ๊ณ , package.json ๋ ์ ๋ฆฌํ์๊ธธ-!
node_modulse ์์ฑ
package-lock.json ์์ฑ
express ์ค์น ํ์ธ
2๏ธโฃํด๋์ ํ์ผ ์ค๋น
< ํด๋น๊ณผ ๊ฐ์ด ํ์ผ๊ณผ ํด๋ ์ค์
๐public :์ ์ ์ ํ์ผ๋ค ๋ชจ์๋
- css
- images
- js
๐index.html : ์นํ์ด์ง์ ๋ผ๋
๐api: ๋ฏธ๋ค์จ์ด ๋๊ณณ๋ค ( ํ์ ๋์ด)
3๏ธโฃ html, css ๊ตฌํ
index.html
sample.css
sample.js
<!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>Document</title>
</head>
<body>
<h1>hello wrold!</h1>
<p id="hoge"></p>
<div>
<img src="/img/sample.jpg">
</div>
<script src="./js/sample.js"></script>
</body>
</html>
h1{
font-size: 1.5rem;
color:pink;
}
img{
max-width:100%;
}
{
const el = document.getElementById('hoge');
el.innerText=("hahahaha");
}
4๏ธโฃWeb ์๋ฒ ์์ฉ ํ๋ก๊ทธ๋จ ํ์ผ ๋ง๋ค๊ธฐ ( app.js )
const express = require('express');
const app=express();
//ํจ์ค ์ง์ ์ฉ ๋ชจ๋
const path = require('path');
//8080ํฌํธ๋ก ๊ธฐ๋ค๋ฆผ
app.listen(8080,()=>{
console.log('Running at Port 8080');
})
//์์ฒญํ์ผ ๋ฃจํ
app.use(express.static(path.join(__dirname,'public')));
//๊ธฐํ ๋ฆฌํ์คํธ 404์๋ฌ
app.use((req,res)=>{
res.sendStatus(404);
})
โ express ๋ชจ๋ ๋ก๋ ( http.createServer ๋์ฒด)
โ listen ๋ฉ์๋ : ๋ฆฌํ์คํธ ๋๊ธฐ
โapp.listen( ํฌํธ๋ฒํธ, ์์ ํ ์ฝ๋ฐฑํจ์ )
โapp.use( express.static
__dirname: Node.js์์ ๋ฏธ๋ฆฌ ๋ก๋ํ ํ์ ์๋ ๋ชจ๋์ด ์์ฑ๋ ํ์ผ๊ฒฝ๋ก ๋ฐํ : test
path.join(__dirname,'public') : ์ ์ ํ์ผ ์ ์ฅ๋์ด ์๋ ํด๋(public)๊ณผ ์ฐ๊ฒฐํ์ฌ ์ ์ฒด๊ฒฝ๋ก์์ฑ : test/public
express.static: Node.js์ ์ ์ ๋ฉ์๋
app.use( :๋ฃจํ ํ๋ ๋ฏธ๋ค์จ์ด : Node.js express์ ์ ์ ๋ฉ์๋์ ์ ์ ํ์ผ์ด ๋ชจ์ฌ์๋ ํด๋ ๊ฒฝ๋ก ์ ๋ฌ (๋ค๊ฒฝ๋ก)
404 : ํด๋น ํ์ผ์ด ์กด์ฌํ์ง ์์๋ 404 ์ค๋ฅ ๋ฐํํ๋๋ก ์ค์
์์ฑ
API
:์ธํฐํ์ด์ค SW ์ ์ฌ์ฉ์ ์ฌ์ด์ ์ํตํ ์ ์๋ ์ฐฝ๊ตฌ
์ง์ ๋ ํ์์ผ๋ก ์์ฒญ ๋ช ๋ น์ ๋ฐ์ ์ ์๋ ์๋จ
Rest API
HTTP ์๋ฒ์ REST API ์์ฒญ์ ๋ณด๋ผ๋ ์ฌ์ฉํ๋ ์ ํธ ๊ท์ฝ
:HTTP ์์ฒญ ๋ณด๋ผ๋ ์ด๋ URI ์ด๋ค ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ง ๊ฐ๋ฐ์๋ค ์ฌ์ด์ ํ์ ฉ๋ ๊ท์น
: ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๋ฑ , ์์ฒญ์ ๋ณด๋ธ ์ฃผ์๋ง์ผ๋ก๋ ์ด๋ค ์์ฒญ์ธ์ง ์ ์ ์๋
: ๊ฐ ์์ฒญ์ด ์ด๋ค ๋์์ด๋ ์ ๋ณด๋ฅผ ์ํ ๊ฒ์ธ์ง ์์ฒญ์ ๋ชจ์ต ์์ฒด๋ก ์ถ๋ก ๊ฐ๋ฅ
* ์กฐํ (URI) : ์์์ ๊ตฌ์กฐ์ ํจ๊ป ๋ํ๋ด๋
* ์ ๋ณด ์ญ์ , ์์ : CREATE READ UPDATE DELETE
GET | ๋ฐ์ดํฐ Read (์กฐํ) | www.naver.com ์ด ์๋ฒ์ html,js,css์์ฒญ |
POST | Create( ์ถ๊ฐ) | id: xxx pw:xxxx ์๋ฒ๋ก ๋ณด๋ด์ก์ ๋ valid ํ์ง ํ์ธ |
DELETE |
์ ๊ฑฐ | ์ ์ ๊ฐ ํํด |
PUT | Upadte (๋ณ๊ฒฝ) ํต์งธ๋ก | ํ๋กํ์ผ ๋ณ๊ฒฝ ์ ์ ๋ฐ์ดํธ |
PATCH | Update ์ผ๋ถ |
์ ๋ณด์ค ์ผ๋ถ๋ฅผ ํน์ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ |
*P*** ( Body : ๋ ๋ง์ด ์ ์ก ๊ฐ๋ฅ)
์ถ์ฒ
์์ฃผ๋์๋ง์ด ๋ฐ์ ๋ธ๋ก๊ทธ :codingcoding.tistory.com/1305
'๐ JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ์คํฌ๋ฆฝํธ์ Promise()๋ก callback์ง์ฅ ๋ฒ์ด๋๊ธฐ (0) | 2021.02.25 |
---|---|
Javascript JSON.parse(), JSON.stringify() ์ฌ์ฉํ๋๋ฒ (0) | 2021.02.23 |
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด (0) | 2021.02.22 |
์ด๋ฒคํธ ๋ฒ๋ธ๋ง, ์ด๋ฒคํธ ์บก์ณ๋ง - DOM์ ์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2021.02.22 |
[JavaScript ] ์ด๋ฒคํธํธ๋ค๋ง (0) | 2021.02.16 |
๋๊ธ