ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ


Express์—์„œ ์ •์  ํŒŒ์ผ ์ œ๊ณต

์ด๋ฏธ์ง€, CSS ํŒŒ์ผ ๋ฐ JavaScript ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ •์  ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋ ค๋ฉด Express์˜ ๊ธฐ๋ณธ ์ œ๊ณต ๋ฏธ๋“ค์›จ์–ด ํ•จ์ˆ˜์ธ express.static์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ •์  ์ž์‚ฐ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ด๋ฆ„์„ express.static ๋ฏธ๋“ค์›จ์–ด ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๋ฉด ํŒŒ์ผ์˜ ์ง์ ‘์ ์ธ ์ œ๊ณต์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ public์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ํฌํ•จ๋œ ์ด๋ฏธ์ง€, CSS ํŒŒ์ผ ๋ฐ JavaScript ํŒŒ์ผ์„ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.


Express์—์„œ ์ •์  ํŒŒ์ผ ์„œ๋น„์Šค์— ๊ด€ํ•œ ์ •์˜๋ฅผ ํ•ด๋†“์€ ๊ฒƒ์ด๋‹ค.
์ •์  ํŒŒ์ผ์„ ์„œ๋น„์Šคํ•œ๋‹ค๋Š” ๋ง์€ ์‚ฌ๋žŒ์ด ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด ๋†“์€ ๊ฒƒ์ด ์–ธ์ œ๋‚˜ ๋˜‘๊ฐ™์ด ๋ณด์ด๋Š” ๊ฒƒ์„ ์ •์ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ „์— ์‚ฌ์šฉํ–ˆ๋˜ ์ฝ”๋“œ์—์„œ ํ•œ ์ค„๋งŒ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์„ค๋ช…์„ ํ•ด๋ณด๊ฒ ๋‹ค.
์ผ๋‹จ ๋‚ด๊ฐ€ ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ž‘์—…์€ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•ด์„œ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋ณด์—ฌ์ฃผ๋ ค ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋ฌผ๋ก  ๊ทธ ์š”์ฒญ์ด๋ผ๋Š” ๊ฒƒ์€ ์ด๋ฏธ์ง€ํŒŒ์ผ์„ ๋ณด์—ฌ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ด๋‹ค.


์ผ๋‹จ public์ด๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์ž.(์ด๊ฑด ๊ด€์Šต์ ์œผ๋กœ public์ด๋ผ๊ณ  ๋ช…๋ช…ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.) ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ณด์—ฌ์ฃผ๋ ค๋Š” ์ด๋ฏธ์ง€ํŒŒ์ผ์„ ๋„ฃ์œผ๋ ค๊ณ  ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค. ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ (npm init์ด ๋œ ๊ณณ)์—์„œ public์ด๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“  ๊ธฐ์ค€์œผ๋กœ ํ•  ๊ฒƒ์ด๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
var express = require('express');
var app = express();
 
app.use(express.static('public'));
 
app.get('/',function(req,res){
    res.send('Hello World!');
});
 
app.listen(3000,function() {
    console.log("Example app listening on port 3000!");
});

cs


์ด์ „ ์ฝ”๋“œ์™€ ๋‹ค๋ฅธ์ ์ด๋ผ ํ•˜๋ฉด์€ app.use(express.static('public')); 
์ด ํ•œ ์ค„์ด ์ถ”๊ฐ€๋œ ๊ฒƒ ๋ฟ์ด๋‹ค.
์ด ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ฉด public ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ node ๋ช…๋ น์–ด๋กœ ์‹คํ–‰์‹œํ‚ค๊ฒŒ๋˜๋ฉด ์ด์ „ ํฌ์ŠคํŒ…ํ–ˆ๋˜ ๊ธ€์ฒ˜๋Ÿผ ์„œ๋ฒ„ ์ ‘์†์ด ๋  ๊ฒƒ์ด๊ณ , 
public ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ์ด๋ฏธ์ง€ํŒŒ์ผ์˜ ํ’€๋„ค์ž„์„ url์˜ ๋’ค์ชฝ์— ์ด์–ด์„œ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด ๋กœ๋“œ๋˜์–ด ๋ณด์—ฌ์ง„๋‹ค.


public์ด๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ์ด๋ฏธ์ง€์ด๋ฉฐ ํŒŒ์ผ์ด๋ฆ„์€ ํ™•์žฅ์ž๋ช…๊นŒ์ง€ ๋ชจ๋‘ ์จ์ค˜์•ผํ•œ๋‹ค. 


์ง€๊ธˆ์€ ์ด๋ฏธ์ง€๋งŒ ๋‹ฌ๋ž‘ ๋ณด์—ฌ์ฃผ๋Š” ํ˜•ํƒœ์ด๊ณ , ์กฐ๊ธˆ ๋” ๋‚˜์•„๊ฐ€์„œ ๋‚ด๊ฐ€ ์ด์ „์— app.get์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ์ฆ‰, ๋‹ค๋ฅธ ๊ฒฝ๋กœ(ํŽ˜์ด์ง€)์—์„œ๋„ public ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” static ๋ณ€์ˆ˜๋ผํ•˜๋ฉด ์–ด๋Š ํด๋ž˜์Šค์—์„œ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜ ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ๋น„์Šทํ•œ ์˜๋ฏธ์ธ ๋“ฏ ํ•˜๋‹ค.



1
2
3
4
5
 
app.get('/topic',function(req,res) {
    res.send('Hello btn, <img src="/enroll_btn.jpeg">');
})
 
cs

๋‚ด๊ฐ€ ๊ธฐ์กด ์ฝ”๋“œ์— ์œ„์™€๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด topic์ด๋ผ๋Š” ๊ฒฝ๋กœ์—์„œ๋„ public ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ์œ„์˜ ์†Œ์Šค์ฝ”๋“œ์—์„œ๋Š” topic ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์–ด๋–ค ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ์ „ํ˜€ ์•„๋‹ˆ๊ณ  ๊ทธ๋ƒฅ ํŽ˜์ด์ง€์— ๋ฐ”๋กœ sendํ•˜๋Š” ํ˜•ํƒœ์ธ๋ฐ ๋‹ค๋ฅธ ๊ฒฝ๋กœ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๋ ค๊ณ  ํ–ˆ๋‹ค. ์œ„์™€๊ฐ™์ด ์ฝ”๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด topic์ด๋ผ๋Š” ๊ฒฝ๋กœ์˜ url๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๋Š” ์ด๋Ÿฌํ•˜๋‹ค.


๊ฒฝ๋กœ๋ฅผ ๋ณด๋ฉด topic์ด๋ผ๋Š” ๊ฒฝ๋กœ์—์„œ๋„ public์— ์žˆ๋Š” ์ด๋ฏธ์ง€ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.










๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ