๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Front-End11

RESTful API ๋ž€? ๐ŸŒฐ RESTful API๋ž€? HTTP ํ†ต์‹ ์—์„œ ์–ด๋–ค ์ž์›์— ๋Œ€ํ•œ CRUD ์š”์ฒญ์„ Resource์™€ Method๋กœ ํ‘œํ˜„ํ•˜์—ฌ ํŠน์ •ํ•œ ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹ API ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์ค‘์— ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ˜•์‹. HTTP method, URI, Resource๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. URL(Uniform Resource Identifier) ํ•ด๋‹น ์‚ฌ์ดํŠธ์˜ ํŠน์ • ์ž์›์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์œ ์ผํ•œ ์ฃผ์†Œ HTTP Method HTTP request๊ฐ€ ์˜๋„ํ•˜๋Š” action์„ ์ •์˜ํ•œ ๊ฒƒ Payload HTTP request์—์„œ server๋กœ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ (body) (์œ„์— 3๊ฐ€์ง€๋Š” ์ดํ•ด ์•ˆ๊ฐ€๋ฉด ๋”ฐ๋กœ ํ•™์Šตํ•ด๋ณผ๊ฒƒ!) ๐Ÿฅœ REpresentational State Transfer ์›น์ƒ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ HTT.. 2021. 11. 15.
gitignore gitignore '๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๋ฌด์‹œํ•˜๊ณ  ์‹ถ์€ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•ด ๋†“์€ ๋ฆฌ์ŠคํŠธ' ๋ฆฌ์ŠคํŠธ ๋‚ด์˜ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋“ค์€ git add ์‹œ ๋ณ€๊ฒฝ์„ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ๋œ๋‹ค. (๊ทธ๋Ÿฌ๋‚˜ ์ƒ๊ฐ๋ณด๋‹ค ์ ์šฉ์ด ์•ˆ๋จ) 2021. 11. 10.
await, async, promise ๐Ÿ“ž ๋น„๋™๊ธฐ๋ž€? ํŠน์ • ์ฝ”๋“œ์˜ ์—ฐ์‚ฐ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ. ex) ajax, setTimeout(), callback ๐Ÿ‘‰๐Ÿป ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ? ํ™”๋ฉด์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ–ˆ์„๋•Œ ์„œ๋ฒ„๊ฐ€ ์–ธ์ œ ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ค„์ง€ ๋ชจ๋ฅด๋Š”๋ฐ ๋งˆ๋ƒฅ ๊ธฐ๋‹ค๋ฆด ์ˆœ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋˜ํ•œ, JavaScript๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค. ๐Ÿ“ž await, async promise์˜ ๋ฌธ์ œ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋‚˜์˜จ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฌธ๋ฒ•. ๊ธฐ์กด์˜ callback์ด๋‚˜promise์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. ex) callback ์ง€์˜ฅ, then() ์ง€์˜ฅ await์™€ async๋Š” ์ฃผ๋กœ ๊ฐ™์ด ์“ฐ์ธ๋‹ค. ๊ธฐ์กด ๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ณ  ๊ฐ€๋….. 2021. 11. 10.
Axios ๋ž€? ๐ŸŽถ Axios๋ž€? ๋ธŒ๋ผ์šฐ์ €, Node.js๋ฅผ ์œ„ํ•œ Promise API๋ฅผ ํ™œ์šฉํ•˜๋Š” HTTP ๋น„๋™๊ธฐ ํ†ต์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๐ŸŽถ Axios์˜ ๊ธฐ๋Šฅ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ : XMLHttpRequests ์š”์ฒญ ์ƒ์„ฑ Node.js ํ™˜๊ฒฝ : http ์š”์ฒญ ์ƒ์„ฑ Promise API ์ง€์› ์š”์ฒญ/์‘๋‹ต ์ฐจ๋‹จ(Intercept) ์š”์ฒญ/์‘๋‹ต ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ์ทจ์†Œ ์š”์ฒญ JSON ๋ฐ์ดํ„ฐ ์ž๋™ ๋ณ€ํ™˜ ์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ(XSRF) ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์ง€์› ๐ŸŽถ ์‚ฌ์šฉ๋ฒ• ๐Ÿ‘‰ axios ์‚ฌ์šฉ๋ฒ• ๋‚˜๋Š” ์ฃผ๋กœ ์ด๋ ‡๊ฒŒ ์ผ๋‹ค. import axios from "axios"; const boardUpload = async () => { await axios .post(`${API}/board/write, ) .catch((err) => { throw e.. 2021. 11. 10.
SSR, CSR, SPA ๐ŸŒบ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ์›น ํŽ˜์ด์ง€์˜ ๋ Œ๋”๋ง์ด ์„œ๋ฒ„ ์ธก์—์„œ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„์— ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ๋ธŒ๋ผ์šฐ์ € ์ƒˆ๋กœ๊ณ ์นจ์ด ์ผ์–ด๋‚˜๊ณ , ์„œ๋ฒ„์— ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์žฅ์  ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ปจํ…์ธ ๋ฅผ ๋นจ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒ€์ƒ‰์—”์ง„์— ๋Œ€ํ•œ SEO(๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”)๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์  ๋งค๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ๊ณ ์นจ ๋˜๊ธฐ ๋•Œ๋ฌธ์— CSR์— ๋น„ํ•ด ํŽ˜์ด์ง€ ๊ตฌ์„ฑ ์†๋„๊ฐ€ ๋Šฆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์— ๋งค๋ฒˆ ์š”์ฒญ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋ž˜ํ”ฝ, ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ปค์ง‘๋‹ˆ๋‹ค. ๐ŸŒบ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(CSR) React, Vue ๋“ฑ์˜ SPA(Single Page Application)์—์„œ ์“ฐ์ด๋Š” ๊ธฐ๋ฒ•์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์›น ํŽ˜์ด์ง€์˜ ๋ Œ๋”.. 2021. 11. 5.
๋ฐ˜์‘ํ˜•