๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ213

[NodeJS+Express] 8. EJS ๋ฌธ๋ฒ• ์ •๋ฆฌ ์ด์ „ 2๊ฐœ์˜ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ EJS ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด์ž! 1. - JS ๋ฌธ๋ฒ•์„ EJS ํŒŒ์ผ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ์˜ˆ์‹œ HELLO! ๊ฒฐ๊ณผ 2. - ์‚ฌ์ด์— ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ html์ด์–ด๋„ escapeํ•˜์—ฌ ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅ ์˜ˆ์‹œ ๊ฒฐ๊ณผ 3. - ์‚ฌ์ด์— ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ html์ด๋ผ๋ฉด ์‹ค์ œ html ๋ธ”๋ก ์ƒ์„ฑ (์ฆ‰, include() ๋“ฑ ํŠน์ˆ˜ํ•œ ๋ฌธ๋ฒ• ์‚ฌ์šฉ ํ˜น์€ DB์—์„œ html ๋ฐ›์•„์˜ฌ ๋•Œ ํ™œ์šฉ) ์˜ˆ์‹œ //footer.ejs @KassidBoard ๊ฒฐ๊ณผ 2023. 10. 9.
[NodeJS+Express] 7. EJS ํŒŒ์ผ ๋‚ด JS๋ฌธ๋ฒ• ์‚ฌ์šฉ & ํŒŒ์ผ ๋‚ด .ejsํŒŒ์ผ ์‚ฝ์ž… ์ด๋ฒˆ์—๋Š” ์ €๋ฒˆ ํฌ์ŠคํŠธ์— ์ด์–ด์„œ EJS ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ์•Œ์•„๋ณด์ž! 1. EJS ํŒŒ์ผ ๋‚ด JS๋ฌธ๋ฒ• ์‚ฌ์šฉ ejs ํŒŒ์ผ ๋‚ด์—์„œ๋Š” JS๋ฌธ๋ฒ•์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค! ์‚ฌ์šฉ๋ฒ• ์œ„์ฒ˜๋Ÿผ ์œผ๋กœ JS๊ตฌ๋ฌธ์„ ๊ฐ์‹ธ์„œ ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค. ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์ž. ์˜ˆ์‹œ1 Hello ๊ฒฐ๊ณผ1 for๋ฌธ์˜ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ๋ฅผ ๋ฐ˜๋ณตํ•  ๋•Œ ์œ„์™€ ๊ฐ™์€ ํ˜•์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ์‹œ2 HELLO!! Hello ๊ฒฐ๊ณผ2 if๋ฌธ๋„ ๋ฌธ์ œ์—†์ด ์ •์ƒ์ž‘๋™ํ•œ๋‹ค! 2. ํŒŒ์ผ ๋‚ด ejs ํŒŒ์ผ ์‚ฝ์ž… ejsํŒŒ์ผ ๋‚ด์— ๋‹ค๋ฅธ ejs ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ๋ถ™์—ฌ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. nav๋ฐ” ํ˜น์€ footer ๋“ฑ ํŽ˜์ด์ง€๋งˆ๋‹ค ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ๋“ค์„ ejs ํŒŒ์ผ๋กœ ๋”ฐ๋กœ ์ƒ์„ฑํ•œ ๋’ค ๊ทธ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณด๋‹ค ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ๋ฒ• server.js์—์„œ ejsํŒŒ์ผ์— ๋ฐ์ดํ„ฐ.. 2023. 10. 9.
[NodeJS+Express] 6. EJS๋กœ MongoDB ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์ €๋ฒˆ ํฌ์ŠคํŠธ๊นŒ์ง€ MongoDB๋ฅผ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•˜๊ณ  DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด์˜ค๋Š” ๊ฒƒ๊นŒ์ง€ ์™„๋ฃŒํ•˜์˜€๋‹ค. ์ด๋ฒˆ์—๋Š” ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์ œ์ž‘ํ•ด๋ณด์ž! 1. EJS (Embedded JavaScipt Template) 1) ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ธฐ EJS๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด๋‹ค. ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด๋ž€, DB๋‚˜ API์˜ ๋ฐ์ดํ„ฐ์™€ ๋ฏธ๋ฆฌ ์ •์˜๋œ ํ…œํ”Œ๋ฆฟ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ HTML ํŒŒ์ผ์„ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ์ด๋‹ค. ํŠนํžˆ EJS๋Š” JavaScript ๋ฌธ๋ฒ•์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ์•„์ฃผ ๊ฐ„ํŽธํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 2) ์„ธํŒ…ํ•˜๊ธฐ (1) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ npm install ejs (2) server.js(์„œ๋ฒ„ํŒŒ์ผ) ์ˆ˜์ • app.set('view engine', 'ejs') ์œ„ ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„ํŒŒ์ผ ์ƒ๋‹จ์— ์ž‘์„ฑํ•œ๋‹ค. (3) views ๋””๋ ‰.. 2023. 10. 8.
[React] 12. Styled-components (+ ํ•œ ์ปดํฌ๋„ŒํŠธ์— cssํŒŒ์ผ ์ ์šฉ๋ฒ•) ์ด์ „ ๊ธ€ โ–ผ ๋”๋ณด๊ธฐ 0. 2023.05.05 - [๐ŸŒŒ | WEB DEV/React] - [React] 0. React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  & ์ดˆ๊ธฐ ์„ธํŒ… 1. 2023.05.07 - [๐ŸŒŒ | WEB DEV/React] - [React] 1. JSX 2. 2023.05.26 - [๐ŸŒŒ | WEB DEV/React] - [React] 2. state (๋ณ€์ˆ˜, array, object) 2-1. 2023.05.27 - [๐ŸŒŒ | WEB DEV/React] - [React] 2-1. array state ์ •๋ ฌํ•˜๊ธฐ ( .sort()ํ™œ์šฉ) 3. 2023.05.28 - [๐ŸŒŒ | WEB DEV/React] - [React] 3. ์ปดํฌ๋„ŒํŠธ (Component) 4. 2023.05.28 - [๐ŸŒŒ | WEB DEV/React] - .. 2023. 10. 4.
[React] 11. ๋ผ์šฐํŒ…-3 ์–‘์‚ฐํ˜• ๋ผ์šฐํŒ… ์ด์ „ ๊ธ€ โ–ผ ๋”๋ณด๊ธฐ 0. 2023.05.05 - [๐ŸŒŒ | WEB DEV/React] - [React] 0. React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  & ์ดˆ๊ธฐ ์„ธํŒ… 1. 2023.05.07 - [๐ŸŒŒ | WEB DEV/React] - [React] 1. JSX 2. 2023.05.26 - [๐ŸŒŒ | WEB DEV/React] - [React] 2. state (๋ณ€์ˆ˜, array, object) 2-1. 2023.05.27 - [๐ŸŒŒ | WEB DEV/React] - [React] 2-1. array state ์ •๋ ฌํ•˜๊ธฐ ( .sort()ํ™œ์šฉ) 3. 2023.05.28 - [๐ŸŒŒ | WEB DEV/React] - [React] 3. ์ปดํฌ๋„ŒํŠธ (Component) 4. 2023.05.28 - [๐ŸŒŒ | WEB DEV/React] - .. 2023. 10. 3.
[NodeJS+Express] 5. MongoDB์—์„œ ๋ฐ์ดํ„ฐ ๊บผ๋‚ด๊ธฐ ์ด๋ฒˆ์—๋Š” MongoDB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด์™€๋ณด์ž! 1. MongoDB์˜ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ ๊บผ๋‚ด์˜ค๊ธฐ ์ „์— ์‚ฌ์ดํŠธ์—์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด๋ณด์ž. ์„ธํŒ…์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ํ˜•ํƒœ๋กœ DB / collection ์ด ๋“ฑ๋ก๋˜์–ด์žˆ์„ ๊ฒƒ์ด๋‹ค. [INSERT DOCUMENT]๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด {Key: Value}๋ฅผ ์ž…๋ ฅํ•ด๋ณด์ž. ์ด๋ ‡๊ฒŒ ์ž˜ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค! ์ € ํ•œ ๋ธ”๋ก์ด document์ธ ๊ฒƒ์ด๋‹ค. โ€ป _id ๋ž€? document ์ƒ์„ฑ ์‹œ _id ๋ผ๋Š” ํ•ญ๋ชฉ๋„ ํ•จ๊ป˜ ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ, ์ด๋Š” document ๊ฐ„ ๊ตฌ๋ถ„์„ ์œ„ํ•œ id ์ด๋‹ค. ์ด๋•Œ ObjectId ๋ผ๋Š” ๋žœ๋ค ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š”๋ฐ ๋ช‡๊ฐ€์ง€ ํŠน์ง•์ด ์žˆ๋‹ค. 1. ์ค‘๋ณตX / 2. ๋จผ์ € ๋งŒ๋“ค์ˆ˜๋ก ๋‚ฎ์€ ObjectId / 3. ObjectId ๋Œ€์‹  ์ž„์˜๋กœ ์„ค์ • ๊ฐ€๋Šฅ(e.g.. 2023. 9. 24.
[NodeJS+Express] 4. MongoDB ํƒ‘์žฌํ•ด์ฃผ๊ธฐ ์ง€๊ธˆ๊นŒ์ง€ ์„ธํŒ…ํ•œ ์„œ๋ฒ„์— DB๋ฅผ ๋‹ฌ์•„๋ณด์ž! 1. DB ํ†บ์•„๋ณด๊ธฐ 0) DB๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ์›น ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ค‘์š”ํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” ์‚ฌ์šฉ์ž๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด DataBase(DB)์ด๋‹ค! ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•ด ๋น ๋ฅธ ๋ฐ์ดํ„ฐ์˜ ์ž…์ถœ๋ ฅ๊ณผ ๋Œ€์šฉ๋Ÿ‰ ๋ณด๊ด€์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 1) DB์˜ ์ข…๋ฅ˜ DB์˜ ์ข…๋ฅ˜์—๋Š” ๊ณ„์ธตํ˜•, ๋„คํŠธ์›Œํฌํ˜•, ๊ด€๊ณ„ํ˜•, ๊ฐ์ฒด์ง€ํ–ฅ, ๋น„๊ด€๊ณ„ํ˜•์ด ์žˆ๋‹ค. ์ด์ค‘ ์ตœ๊ทผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ด€๊ณ„ํ˜•๊ณผ ๋น„๊ด€๊ณ„ํ˜•์ด๋‹ค. ์ด ๋‘˜์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์ž. - ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‰ฝ๊ฒŒ ์ด๊ฒƒ์„ ์„ค๋ช…ํ•˜๋ฉด ์—‘์…€๊ณผ ๋น„์Šทํ•˜๋‹ค. ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ํ–‰์”ฉ ์ฐจ๋ก€๋กœ ๋ณด๊ด€ํ•œ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” DBMS(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ)๋ฅผ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค. ex) MySQL, Oracle, SQL.. 2023. 9. 24.
[NodeJS+Express] 3.์ •์ ํŒŒ์ผ ๋„ฃ์–ด์ฃผ๊ธฐ (cssํŒŒ์ผ ๋“ฑ๋ก) & Bootstrap ์ด์šฉํ•˜๊ธฐ ์ด์ œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋””์ž์ธ ํ•ด๋ณด์ž. 1. ์ •์ ํŒŒ์ผ ์‚ฝ์ž…ํ•˜๊ธฐ 1) css ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ css ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ •์ ํŒŒ์ผ์€ ๋ณดํ†ต public ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์ฒ˜๋Ÿผ public/main.css ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. 2) public ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„œ๋ฒ„์— ๋“ฑ๋กํ•˜๊ธฐ app.use(express.static(__dirname + '/public')) public ํด๋”์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋ฒ„์— ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋“ฑ๋กํ•ด์ค€๋‹ค. (์˜คํƒ€์ฃผ์˜) 3) htmlํŒŒ์ผ์— ๋„ฃ์–ด์ฃผ๊ธฐ html ํŒŒ์ผ์˜ header์— ์œ„ ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 4) ํ™•์ธํ•ด๋ณด๊ธฐ /* main.css */ .square{ width: 100px; height: 100px; background: #4cb1ff; } 2. Bootstrap ์ด.. 2023. 9. 23.
[NodeJS+Express] nodemon์œผ๋กœ ์ž๋™ํ™”ํ•˜๊ธฐ ์ง€๊ธˆ๊ป ์•„๋ž˜์˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด node server.js ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ท€์ฐฎ์€ ์ ์€ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ ๋’ค ์ ์šฉ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ctrl+c๋กœ ์‹คํ–‰์„ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์žฌ์‹œ์ž‘์„ ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ์•„์ฃผ ์ฐฉํ•œ ์นœ๊ตฌ๊ฐ€ ์žˆ๋‹ค! 1. nodemon ์„ค์น˜ํ•˜๊ธฐ npm install -g nodemon ์œ„ ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด ์ž˜ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž. 2. ํ™•์ธํ•˜๊ธฐ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž. nodemon server.js ์ด์ œ server.js๋ฅผ ์ˆ˜์ •ํ•ด๋ณด์ž! app.get('/news', (request, response) => { response.send('์˜ค๋Š˜์˜ ๋‰ด์Šค...') }) ์œ„ ์ฝ”๋“œ๋ฅผ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•ด์ค€๋’ค ์ €์žฅํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ์ž๋™์œผ๋กœ ์žฌ์‹œ์ž‘ ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. htmlํŒŒ์ผ๋„ ์ˆ˜์ •ํ•ด๋ณด๋ฉด.. 2023. 9. 23.
๋ฐ˜์‘ํ˜•