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

Frontend Dev/๐Ÿฅ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE ๋ถ€ํŠธ์บ ํ”„

(78)
Section2 Unit10 [Web Server] ๊ธฐ์ดˆ - Refactor Express Section2 Unit10 [Web Server] ๊ธฐ์ดˆ - Refactor Express ๐Ÿ“Œ Chapter2. Refactor Express โญ๏ธ ๊ณผ์ œ. Mini-Node Server๋ฅผ Express๋กœ ๋ฆฌํŒฉํ† ๋ง ๊ตฌํ˜„๊ณผ์ • ๐Ÿ’ก TIP. ํฌ์ŠคํŠธ๋งจ์„ ํ™œ์šฉํ•ด์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 1. express ๋ชจ๋“ˆ ํ•™์Šต ์–ด์ œ node.js ๋ง› ์ข€ ๋ณด๊ณ , ํ•˜๋ฃจ๋งŒ์— express๋กœ ๋„˜์–ด์™”๋‹ค… ์—ฌ์ „ํžˆ ๋ชจ๋ฅด๋Š”๊ฑฐ ํˆฌ์„ฑ์ด์— ๊ฐ๋„ ์•ˆ์žกํ˜€์„œ express๋„ node.js ์ฐ๋จนํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„๋งŒ ๋จผ์ € ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. express๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋‹ˆ node.js๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„๋“ค์ด ํ›จ์”ฌ ํŽธํ•˜๊ฒŒ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ๋“ค์ด ๋ณด์˜€๋‹ค. express๊ฐ€ ํŽธํ•˜๋‹ค๋”๋‹ˆ, ์™œ ๊ทธ๋Ÿฐ์ง€ ์•Œ ๊ฒƒ ๊ฐ™์€ ๋Š๋‚Œ์— ๊ธฐ๋ถ„์ด ์•ฝ๊ฐ„..
Section2 Unit10 [Web Server] ๊ธฐ์ดˆ - CORS & Mini Node Server Section2 Unit10 [Web Server] ๊ธฐ์ดˆ - CORS & Http ๋ชจ๋“ˆ๋กœ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ(Mini Node Server) ๐Ÿ“Œ Chapter1. CORS • ๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ (Cross-Origin Resource Sharing, CORS)๋Š” ์ถ”๊ฐ€ HTTP ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ํ•œ ์ถœ์ฒ˜์—์„œ ์‹คํ–‰ ์ค‘์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ์„ ํƒํ•œ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋„๋ก ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋ ค์ฃผ๋Š” ์ฒด์ œ์ด๋‹ค. → ๋ธŒ๋ผ์šฐ์ €๋Š” SOP์— ์˜ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ ๋ฅผ ๋ง‰์ง€๋งŒ, CORS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ‘๊ทผ ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. • SOP(Same-Origin Policy. ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…)๋Š” ๊ฐ™์€ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค๋งŒ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ •์ฑ…์ด๋‹ค. ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…์€ ์ž ์žฌ์ ์œผ๋กœ ํ•ด๋กœ์šธ ์ˆ˜ ์žˆ๋Š” ๋ฌธ..
Section2 Unit9 [React] ํด๋ผ์ด์–ธํŠธ Ajax ์š”์ฒญ - StateAirline Client ๊ณผ์ œ ๋ฆฌ๋ทฐ Section2 Unit9 [React] ํด๋ผ์ด์–ธํŠธ Ajax ์š”์ฒญ - StateAirline Client ๊ณผ์ œ ๋ฆฌ๋ทฐ โญ๏ธ ๊ณผ์ œ. StateAirline Client โœ”๏ธ Bare Minimum Requirement โœ… Part 1 ํ…Œ์ŠคํŠธ ํ†ต๊ณผ โœ… Part 2 ํ…Œ์ŠคํŠธ ํ†ต๊ณผ โœ๏ธ ๊ตฌํ˜„ ๊ณผ์ • ๋…ธํŠธ โœจ Search.js import { useState } from "react"; function Search({ onSearch }) { const [textDeparture, setTextDeparture] = useState("ICN"); const [textDestination, setTextDestination] = useState(""); const handleChange = (e, callback) =>..
Section2 Unit9 [React] ํด๋ผ์ด์–ธํŠธ Ajax ์š”์ฒญ Section2 Unit9 [React] ํด๋ผ์ด์–ธํŠธ Ajax ์š”์ฒญ ๐Ÿ“Œ Chapter1. React ๋ฐ์ดํ„ฐ ํ๋ฆ„ • ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด๋ผ๋Š” ์›์น™์— ๋”ฐ๋ผ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ ํ˜น์€ ํƒ€์ž…์ด ๋ฌด์—‡์ธ์ง€๋งŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ state๋กœ๋ถ€ํ„ฐ ์™”๋Š”์ง€, ํ•˜๋“œ์ฝ”๋”ฉ์œผ๋กœ ์ž…๋ ฅํ•œ ๋‚ด์šฉ์ธ์ง€๋Š” ์•Œ์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ์˜ ์–ด๋–ค ์ด๋ฒคํŠธ๋กœ ์ธํ•ด ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์€ ๋งˆ์น˜ “์—ญ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„”๊ณผ ๊ฐ™์ด ์กฐ๊ธˆ ์ด์ƒํ•˜๊ฒŒ ๋“ค๋ฆด ์ˆ˜ ์žˆ๋‹ค. React๊ฐ€ ์ œ์‹œํ•˜๋Š” ํ•ด๊ฒฐ์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. → ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ “์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜” ๊ทธ ์ž์ฒด๋ฅผ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•˜๊ณ , ์ด ํ•จ์ˆ˜๋ฅผ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‹คํ–‰ํ•œ๋‹ค. ์ด๋ฅผ “์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ(Lifting State Up)”๋ผ๊ณ  ํ•œ๋‹ค. ์ƒํƒœ..
Section2 Unit8 [HTTP/๋„คํŠธ์›Œํฌ] ์‹ค์Šต - Postman Section2 Unit8 [HTTP/๋„คํŠธ์›Œํฌ] ์‹ค์Šต - Postman ๐Ÿ“Œ Chapter2. Postman • ์›น ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํด๋ผ์ด์–ธํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €์ด๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ฃผ๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐ›์•„์˜ค๋Š” GET ์š”์ฒญ์— ์‚ฌ์šฉํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ์ฐฝ์— URL์„ ์ž…๋ ฅํ•˜๋ฉด, ํ•ด๋‹น URL์˜ root-endpoint๋กœ GET ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉฐ, ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด GET์š”์ฒญ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ์ฝ˜์†” ์ฐฝ์—์„œ Web API fetch๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. Postman์€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋งค๋ฒˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์„ ๋Œ€์‹ ํ•ด HTTP ์š”์ฒญ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” API ํ…Œ์ŠคํŠธ ๋„๊ตฌ์ด๋‹ค. โญ๏ธ ๊ณผ์ œ. Message States ์š”์ฒญ ๐Ÿ“Œ Postman์œผ๋กœ GET, POS..
Section2 Unit8 [HTTP/๋„คํŠธ์›Œํฌ] ์‹ค์Šต - REST API Section2 Unit8 [HTTP/๋„คํŠธ์›Œํฌ] ์‹ค์Šต - REST API ๐Ÿ“Œ Chapter1. REST API • REST(Representational State Transfer)๋Š” ๋กœ์ด ํ•„๋”ฉ(Roy Fielding)์˜ ๋ฐ•์‚ฌํ•™์œ„ ๋…ผ๋ฌธ์—์„œ ์ฒ˜์Œ ์†Œ๊ฐœ๋˜์—ˆ๋‹ค. ๋ฐœํ‘œ ๋‹น์‹œ ์›น์ด HTTP์˜ ์„ค๊ณ„์ƒ ์šฐ์ˆ˜์„ฑ์„ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์„ ๋ณด๊ณ  ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜๋กœ์„œ REST๋ฅผ ์†Œ๊ฐœํ•˜์˜€๊ณ  ์ด๋Š” HTTP ํ”„๋กœํ† ์ฝœ์˜ ์˜๋„์— ๋งž๊ฒŒ ๋””์ž์ธํ•˜๋„๋ก ์œ ๋„ํ•˜๊ณ  ์žˆ๋‹ค. REST์˜ ๊ธฐ๋ณธ ์›์น™์„ ์„ฑ์‹คํžˆ ์ง€ํ‚จ ์„œ๋น„์Šค ๋””์ž์ธ์„ RESTful์ด๋ผ๊ณ  ํ•œ๋‹ค. • ๋กœ์ด ํ•„๋”ฉ์ด ๋…ผ๋ฌธ์—์„œ ์ œ์‹œํ•œ REST ๋ฐฉ๋ฒ•๋ก ์„ ๋ณด๋‹ค ๋” ์‹ค์šฉ์ ์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆ์˜ค๋‚˜๋ฅด๋“œ ๋ฆฌ์ฒ˜๋“œ์Šจ(Leonard Richardson)์€ REST API..
Section2 Unit7 [HTTP/๋„คํŠธ์›Œํฌ] ๊ธฐ์ดˆ Section2 Unit7 [HTTP/๋„คํŠธ์›Œํฌ] ๊ธฐ์ดˆ ๐Ÿ“Œ Chapter1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ • ํด๋ผ์ด์–ธํŠธ๋Š” ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์‚ฌ์šฉ์ž์˜ ๋””๋ฐ”์ด์Šค, ๋˜๋Š” ์›น์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋œปํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” HTML, CSS, JavaScript ๋“ฑ์œผ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ถ€ ์—”์ง„์œผ๋กœ ํ•ด๋…ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์˜ ์ฝ˜ํ…์ธ ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์ž์›์„ ์š”์ฒญํ•˜๋ฉด ํ•ด๋‹น ์š”์ฒญ์„ ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š ์„œ๋ฒ„์˜ ์ž์›์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ช…์‹œํ•ด ๋‘” ์ธํ„ฐํŽ˜์ด์Šค API์— ๋”ฐ๋ผ ์š”์ฒญ์„ ์ „์†กํ•œ๋‹ค. • ์ด๋ ‡๊ฒŒ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ HTTP ํ†ต์‹  ๊ทœ์•ฝ ๋•๋ถ„์ด๋‹ค. ๐Ÿ“Œ Chapter..
Section2 Unit6 [React] React State & Props - ๊ณผ์ œ Twittler State & Props Section2 Unit6 [React] React State & Props - ๊ณผ์ œ Twittler State & Props โญ๏ธ ๊ณผ์ œ. React Twittler State & Props → ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ๊ณผ css๋Š” ์ฝ”๋“œ์Šคํ…Œ์ด์ธ ์—์„œ ์ค€๋น„ํ•œ ์ฝ”๋“œ๋ฅผ forkํ•ด์„œ ๋ช‡๊ฐ€์ง€ ๊ธฐ๋Šฅ๋งŒ ๋ง๋ถ™์ด๋ฉฐ ํ•™์Šตํ•˜๋Š” ๊ณผ์ œ์˜€๋‹ค. → ์ƒ์„ธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , map()์„ ์‚ฌ์šฉํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , React Router๋ฅผ ์ ์šฉํ•ด SPA๋ฅผ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ, state์™€ props๋ฅผ ์ด์šฉํ•ด Tweet ์ „์†ก Form์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๐Ÿ“Œ ๊ตฌํ˜„ ๊ณผ์ • ์ค‘ Memo 1. defaultValue์™€ value → defalutValue์™€ value๋Š” ํ•จ๊ป˜ ์“ฐ๋ฉด ๋‘˜ ์ค‘์— ํ•˜๋‚˜๋งŒ ์“ฐ๋ผ๊ณ  ๊ฒฝ๊ณ ๊ฐ€ ๋‚จ. Warning: Tweets contains an inpu..

๋ฐ˜์‘ํ˜•