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

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

(78)
Section4 Unit7 [Deploy] CI/CD - Proxy ์„ค์ •ํ•ด HTTP ํ†ต์‹ ํ•˜๊ธฐ Section4 Unit7 [Deploy] CI/CD - Proxy ์„ค์ •ํ•ด HTTP ํ†ต์‹ ํ•˜๊ธฐ ๐Ÿ“Œ Chapter4. Proxy • ํ”„๋ก์‹œ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์‹ ์„ ๊ฑฐ์ณ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค‘๊ฐ„์—์„œ ๋Œ€๋ฆฌํ•ด์ฃผ๋Š” ์„œ๋ฒ„๋ฅผ ๋งํ•œ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์—์„œ ๋Œ€๋ฆฌ๋กœ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ๊ฒƒ์„ proxy๋ผ๊ณ  ํ•˜๊ณ , ๊ทธ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ proxy ์„œ๋ฒ„๋ผ๊ณ  ํ•œ๋‹ค. • ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ API๋ฅผ ์š”์ฒญ ํ•  ๋•Œ์—๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ํ˜„์žฌ ์ฃผ์†Œ์™€ API ์ฃผ์†Œ์˜ ๋„๋ฉ”์ธ์ด ์ผ์น˜ํ•ด์•ผ๋งŒ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์—์„œ API๋ฅผ ์š”์ฒญํ•ด์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ ค๋ฉด CORS ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค. โญ๏ธ ๊ณผ์ œ. Proxy ์„ค์ •ํ•ด HTTP ํ†ต์‹ ํ•˜๊ธฐ โœ”๏ธ Bare Minimum Requirement ๊ณผ์ œ1 ๐Ÿ“api ..
Section4 Unit7 [Deploy] CI/CD - Github Actions ์‹ค์Šต Section4 Unit7 [Deploy] CI/CD - Github Actions ์‹ค์Šต ๐Ÿ“Œ Chapter1. ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค • ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค, ์ฆ‰ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ƒ๋ช…์ฃผ๊ธฐ(SDLC, Software Develpment Life Cycle)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค. • ์ „ํ†ต์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋กœ ์›Œํ„ฐํ’€ ๋ฐฉ์‹์ด ์žˆ๊ณ , ๋ชจ๋˜ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋กœ ์• ์ž์ผ์ด ์žˆ๋‹ค. ๐Ÿ“Œ Chapter2. CI/CD • ์ง€์†์  ํ†ตํ•ฉ(Continuous Integration, CI) ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค (Code - Build - Test ๋‹จ๊ณ„) CI๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ •๊ธฐ์ ์œผ๋กœ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋˜์–ด ๊ณต์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํ†ตํ•ฉ๋˜๋ฏ€๋กœ ์—ฌ๋Ÿฌ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ..
Section4 Unit6 [Deploy] Amazon Web Service Section4 Unit6 [Deploy] Amazon Web Service ๐Ÿ“Œ Chapter1. AWS Regulations • AWS ์‹ค์Šต ๊ด€๋ จ ๊ทœ์ • ๋ฐ ๊ฐ€์ด๋“œ๋ผ์ธ ์•ˆ๋‚ด ๐Ÿ™‚ ๐Ÿ“Œ Chapter2. Amazon Web Service • ์•„๋งˆ์กด ์›น ์„œ๋น„์Šค(AWS)๋ž€ ์•„๋งˆ์กด์ด ์ž์‚ฌ์˜ ๋…ธํ•˜์šฐ๋ฅผ ์‚ด๋ ค ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ‘ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์„œ๋น„์Šค’๋ฅผ ์˜๋ฏธํ•œ๋‹ค. AWS์—๋Š” ์ปดํ“จํŒ…, ์Šคํ† ๋ฆฌ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ถ„์„, ๋„คํŠธ์›Œํ‚น, ๋ชจ๋ฐ”์ผ, ๊ฐœ๋ฐœ์ž ๋„๊ตฌ, ๊ด€๋ฆฌ ๋„๊ตฌ, IoT, ๋ณด์•ˆ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๊ฐ€ ์ค€๋น„๋˜์–ด ์žˆ์œผ๋ฉฐ, AWS์˜ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ์ „์—๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์—…์ž์—๊ฒŒ ๊ฐ๊ฐ ๋นŒ๋ ค์•ผ ํ–ˆ๋˜ ์ธํ”„๋ผ๋ฅผ ์ผ๊ด„๋กœ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋์œผ๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ์šด์˜์ฒด์ œ(O..
Section4 Unit5 [TypeScript] ๊ธฐ์ดˆ - ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘ Section4 Unit5 [TypeScript] ๊ธฐ์ดˆ - ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘ ๐Ÿ“Œ Chapter1. TypeScript • TypeScript๋Š” JavaScript์— ์ •์ ํƒ€์ž… ๊ฒ€์‚ฌ์™€ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐœ๋ฐœ๋œ ์–ธ์–ด๋กœ, JavaScript๊ฐ€ ๋ฐœ์ „ํ•˜๋ฉด์„œ ์ƒ๊ธด ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. VSCode์—์„œ TypeScript ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ ๐Ÿ‘พ VSCode์—์„œ TypeScript ํ™˜๊ฒฝ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ณธ๊ฒฉ์ ์œผ๋กœ TypeScript ํ•™์Šต์„ ํ•˜๊ธฐ ์œ„ํ•ด VSCode์—์„œ ํ™˜๊ฒฝ ์„ค์ •์„ ํ–ˆ๋‹ค. ๊ณผ์ •์ด ๋งˆ๋ƒฅ ๋‹จ์ˆœํ•œ๊ฑด ์•„๋‹Œ๊ฒƒ ๊ฐ™์•„์„œ ์ •๋ฆฌ๋ฅผ ํ•ด๋‘๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ˜น์‹œ๋‚˜ ๋‹ค์Œ์— ๋‹ค์‹œ ๋ณด fay-story.com ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ•™์Šต์„ ์œ„ํ•œ VSCode ํ™˜๊ฒฝ์„ค์ • ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋”ฐ๋กœ ๊ธฐ๋กํ•ด๋‘์—ˆ๋‹ค :) ..
Section4 Unit4 [UX/UI] Design System - ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ Section4 Unit4 [UX/UI] Design System - ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ ๐Ÿ“Œ Chapter3. ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ • ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๋„์ž…ํ•˜๊ธฐ ์ข‹์€ ์‹œ๊ธฐ : ์ œํ’ˆ๊ตฐ ๋ฐ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋  ๋•Œ, ๊ด€๋ จ๋œ ์ธ์›์ด ๋Š˜์–ด๋‚  ๋•Œ, ์ฑ„๋„์ด ํ™•์žฅ๋  ๋•Œ โญ๏ธ ๊ณผ์ œ. ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ ์ง€๋‚œ ๊ณผ์ œ์˜€๋˜ Component Library๋Š” ๊ฒจ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์„œ ์ œ์ถœ์„ ํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ณผ์ œ์ธ ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ๋Š” ํ•  ์—„๋‘๊ฐ€ ์•ˆ๋‚˜์„œ ํฌ๊ธฐํ–ˆ๋‹ค. ์–ด๋–ค ๋ถ€๋ถ„์ด ํ•  ์—„๋‘๊ฐ€ ๋‚˜์ง€ ์•Š์•˜๋ƒํ•˜๋ฉด, ์Šคํ† ๋ฆฌ๋ถ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์„œ ๋ง‰ํ˜”๋‹ค. ๋ผ์ด๋ธŒ ์„ธ์…˜ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์Šคํ† ๋ฆฌ๋ถ์„ ์„ธํŒ…ํ•˜๊ณ , ์ปดํฌ๋„ŒํŠธ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค๊ธฐ๋Š” ํ–ˆ๋Š”๋ฐ ๊ธ€์Ž„... ์ง€๋‚œ Section3 ์—์„œ๋„ ์Šคํ† ๋ฆฌ๋ถ์„ ์ œ๋Œ€๋กœ ๋ณด์ง€ ์•Š์•„์„œ ์ด๋ฒˆ Section์—์„œ ๋‹ค์‹œ ํ•ด๋ณด๋ ค๋‹ˆ ๋นˆ ์Šค์ผ€์น˜๋ถ์—..
Section4 Unit4 [UX/UI] Design System Section4 Unit4 [UX/UI] Design System ๐Ÿ“Œ Chapter1. Design System • ๋””์ž์ธ ์‹œ์Šคํ…œ(Design System)์€ ๋””์ž์ธ ์›์น™๋ถ€ํ„ฐ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” UI ํŒจํ„ด๊ณผ ์ปดํฌ๋„ŒํŠธ, ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋œ ์‹œ์Šคํ…œ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Š” ์ „์ฒด ์„œ๋น„์Šค์— ํšจ์œจ์ ์ด๊ณ  ์ผ๊ด€๋œ ๋””์ž์ธ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. • ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด, 1. ๋””์ž์ด๋„ˆ์™€ ๊ฐœ๋ฐœ์ž๋Š” ๋ฌธ์„œ ํ˜น์€ ํˆดํ‚ท ํ˜•ํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๊ณต์œ ํ•ด ์ด๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉฐ ์„œ๋กœ์˜ ์ž‘์—…์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๊ณ , ๋”ฐ๋ผ์„œ ํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€๋ฉฐ, ํŒ€์› ๊ฐ„์˜ ์†Œํ†ต๊ณผ ํ˜‘์—…์ด ์›ํ™œํ•ด์ง€๋Š” ๋“ฑ ํŒ€ ๊ฐ„์˜ ์›ํ™œํ•œ ํ˜‘์—…์„ ์ด‰์ง„ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ๋””์ž์ธ ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ์ œํ’ˆ์ด ๋งŒ๋“ค์–ด์ง€๋ฉด, ์‚ฌ์šฉ์ž๋“ค์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์„œ๋น„์Šค์˜ ์ผ๊ด€๋œ ๋””์ž..
Section4 Unit3 [React] ์‹ฌํ™” - React Hooks ์ ์šฉํ•˜๊ธฐ Section4 Unit3 [React] ์‹ฌํ™” - React Hooks ์ ์šฉํ•˜๊ธฐ โญ๏ธ ๊ณผ์ œ. React Hooks ์ ์šฉํ•˜๊ธฐ โœ… Bare Minimum Requirement โœ”๏ธ json-server ์„ค์น˜ โœ”๏ธ ์ƒ์„ธ ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„ํ•˜๊ธฐ - App.js react.lazy()์™€ suspense ์‚ฌ์šฉ - BlogDetail.js createBlog.js CRUD ๊ตฌํ˜„ - useFetch.js custom hook ๋งŒ๋“ค๊ธฐ โœ… Advanced โœ”๏ธ ๋ธ”๋กœ๊ทธ ๊ธ€ ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ”์„ ๋•Œ ์Šคํฌ๋กค ๋งจ ์œ„๋กœ ์ ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ โœ”๏ธ custom hook๊ณผ custom component ๋งŒ๋“ค๊ธฐ ๋‚˜๋ฆ„ ์žฌ๋ฏธ์žˆ์—ˆ๋˜ ์ด๋ฒˆ ๊ณผ์ œ. ๋‚ด๊ฐ€ ํ•œ ๋ฐฉ๋ฒ•์ด ๋งž๋Š”๊ฑด์ง€, ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ (ํŠนํžˆ custom hook์„ ๋งŒ๋“œ๋Š” ๋ถ€..
Section4 Unit3 [React] ์‹ฌํ™” - ์ฝ”๋“œ๋ถ„ํ• ๊ณผ React.lazy() & Suspense Section4 Unit3 [React] ์‹ฌํ™” - Code Spliting, React.lazy() & Suspense ๐Ÿ“Œ Chapter3. React์˜ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์ธ๊ฐ€? ์˜ค๋Š˜ QnA ์„ธ์…˜์—์„œ ์™ธ๋ถ€ ๊ฐ•์‚ฌ๋‹˜์ด Suspense๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜์‹œ๊ธด ํ–ˆ๋‹ค๋งŒ...๐Ÿ˜ ์—ฌํŠผ, ๋ฌด๊ฑฐ์›Œ์ง„ ๋ฆฌ์•กํŠธ ์•ฑ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•œ ์ผ์ž„์€ ํ‹€๋ฆผ์—†๋‹ค. ์ด ๋ถ€๋ถ„์€ ์ข€ ๋” ๊ณต๋ถ€๋ฅผ ํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์šฐ์„  ๋ฐฐ์šด ๋‚ด์šฉ๋“ค๋งŒ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. • React๋Š” SPA(Single-Page-Application)์ด๋ฏ€๋กœ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ปดํฌ๋„ŒํŠธ๊นŒ์ง€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. React.lazy ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋™์ ์œผ๋กœ import๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ดˆ๊ธฐ ๋ Œ๋”๋ง ..

๋ฐ˜์‘ํ˜•