๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ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. ์ด์ 1 2 3 4 5 6 ยทยทยท 24 ๋ค์