๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (311)

Daehyunii's Dev-blog

[๋ฐ๋ธŒ์ฝ”์Šค] ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

1. ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ž€? ๋ง ๊ทธ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™” ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์ฝ”๋กœ๋‚˜ ์ง€์—ญ๋ณ„ ํ™•์ง„์ž ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ง€๋„๋‚˜ ๋Œ€์‹œ๋ณด๋“œ ์ „๋žต์ง€ํ‘œ ์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ ์ผ๋ฐ˜์ ์ธ ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์Šคํฌ๋กค๋ง ์‹œ๊ฐํ™”์™€ ์Šคํ† ๋ฆฌํ…”๋ง๋„ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ์‹œ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ทธ๋Ÿผ ์™œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™” ํ•ด์•ผํ• ๊นŒ? ์™œ๋ƒํ•˜๋ฉด ์‹œ๊ฐํ™”๊ฐ€ ๋ฐ์ดํ„ฐ์— ํ˜•ํƒœ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ํŒจํ„ด์„ ๋น„๊ตํ•˜์—ฌ ํฌ์ธํŠธ ๋“ฑ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ณ , ์‹œ๊ฐํ™”๋ฅผ ํ†ตํ•ด ์ธ์‚ฌํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ• ๊นŒ? ์ผ๋ฐ˜์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ค‘ ์šฐ๋ฆฌ๊ฐ€ ์•ž์œผ๋กœ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•  ๋‚ด์šฉ์€ D3.js ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ณ  ..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-133 React, Redux

1. Redux Redux๋Š” Prop Drilling ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Context API์™€ ๋ฌด์—‡์ด ๋‹ค๋ฅผ๊นŒ? Context API๋Š” React์˜ ๋‚ด์žฅ API์—ฌ์„œ ๋”ฐ๋กœ ์„ค์น˜์—†์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ˜๋ฉด, Redux๋Š” Third Party ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๋ฏธ๋“ค์›จ์–ด ๊ธฐ๋Šฅ๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 2. ๋™์ž‘ ๋ฐฉ์‹ Redux๋Š” Action์ด ๋ฐœ์ƒํ•˜๋ฉด Reducer๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  Reducer๋ฅผ ํ†ตํ•ด store์— ์ƒํƒœ๋ฅผ ์ €์žฅํ•œ๋‹ค. store๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๋‹ค์‹œ view๋ฅผ ๋ฆฌ๋ Œ๋”๋งํ•œ๋‹ค. Context API์— useReducer๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๋‹ค. 3. 3๊ฐ€์ง€ ์›์น™ ์ง„์‹ค์€ ํ•˜๋‚˜์˜ ๊ทผ์›์œผ๋กœ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋“  ์ƒํƒœ๋Š” ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ ์•ˆ์— ..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-132 React, ์ปดํฌ๋„ŒํŠธ์‹ฌํ™”

์ปดํฌ๋„ŒํŠธ ์‹ฌํ™” 1. ์•„ํ‚คํ…์ฒ˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ผ์„ ์ž˜ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“ˆ์˜ ๊ตฌํ˜„๊ณผ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ์ •ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค. ๋ชจ๋“ˆ์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‘์ง‘๋„์™€ ๊ฒฐํ•ฉ๋„๋‹ค. 2. ์‘์ง‘๋„ ๋ชจ๋“ˆ ๋‚ด์— ํฌํ•จ๋œ ์š”์†Œ๋“ค์ด ์„œ๋กœ ์—ฐ๊ด€๋˜์–ด ์žˆ๋Š” ์ •๋„๋ฅผ ๋œปํ•œ๋‹ค. ์ฆ‰, ๋ชจ๋“ˆ ๋‚ด ๊ธฐ๋Šฅ๋“ค์ด ํ•˜๋‚˜์˜ ์ฑ…์ž„์œผ๋กœ ์ž˜ ๋ญ‰์ณ ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์‘์ง‘๋„๊ฐ€ ๋†’์„ ์ˆ˜๋ก ์ข‹์€ ์„ค๊ณ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜์˜ ์ฑ…์ž„์— ์ง‘์ค‘ํ•˜๊ณ  ๋…๋ฆฝ์„ฑ์„ ๋†’์ด๋ฉฐ ์šฐ๋ฆฌ๊ฐ€ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ณตํ†ต ํ์‡„ ์›์น™ ๊ฐ™์€ ์ด์œ ๋กœ ๋™์ผํ•œ ์‹œ์ ์— ๋ณ€๊ฒฝ๋˜๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋กœ ๋ฌถ์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์›์น™์ธ ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ ์ปดํฌ๋„ŒํŠธ ๊ด€์ ์œผ๋กœ ๋ฐ”๋ผ๋ณธ ๊ฒƒ ๊ณผํ•˜๊ฒŒ ์ ์šฉํ•˜๋ฉด ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Œ ๊ณตํ†ต ์žฌ์‚ฌ์šฉ ์›์น™ ๋ชจ๋“ˆ ๋‚ด์˜ ..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-131 React, ์›น ๋ณด์•ˆ ๊ณต๊ฒฉ, SPA ์—ญ์‚ฌ

์›น ๋ณด์•ˆ ์›น ์‚ฌ์ดํŠธ์˜ ์ทจ์•ฝ์ ์„ ๊ณต๊ฒฉํ•˜๋Š” ๊ธฐ์ˆ ์  ์œ„ํ˜‘์œผ๋กœ, ์›น ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ๊ถŒํ•œ์ด ์—†๋Š” ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ์œ ์ถœ ๋ฐ ํŒŒ๊ดด์™€ ๊ฐ™์€ ํ–‰์œ„๋ฅผ ๋งํ•œ๋‹ค. ์›น ๋ณด์•ˆ ๊ณต๊ฒฉ ๊ธฐ๋ฒ• 1. SQL Injection ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” SQL์„ ์•…์˜์ ์œผ๋กœ ์ด์šฉํ•˜๋Š” ๊ณต๊ฒฉ์ด๋‹ค. ๊ธฐ์กด SQL์— ์•…์˜์ ์ธ SQL์„ ์‚ฝ์ž…ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ํƒˆ์ทจ๋‚˜ ์‚ญ์ œ ๋“ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐฉ์–ด ๋ฐฉ๋ฒ• SQL์—์„œ ํŠน๋ณ„ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฌธ์ž๋ฅผ ์ด์Šค์ผ€์ดํ”„ํ•œ๋‹ค. \\n, \\t, |, /, &, # … ์ค€๋น„๋œ ์„ ์–ธ์„ ์‚ฌ์šฉํ•œ๋‹ค. placeholder๋ฅผ ๋‹ด์€ SQL์„ ๋จผ์ € DB์— ๋ณด๋‚ธ ํ›„ placeholder์— ํ•ด๋‹นํ•˜๋Š” ์ž…๋ ฅ ๊ฐ’์„ DB์— ๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ฑฐ์˜ 100% ๋ง‰์•„์ค€๋‹ค. ์‹ฌํ™” ๊ณต๊ฒฉ Error based SQL ********..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-130 React, Context API

Context API ์ปดํฌ๋„ŒํŠธ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋งŒ์•ฝ ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ฐ€์žฅ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ prop์„ ๋„˜๊ธฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐพ์„ ๋•Œ ๊นŒ์ง€ ๊ณ„์† ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ Prop Drilling์ด๋ผ๊ณ  ํ•œ๋‹ค. Context API๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 1. ๊ตฌ์„ฑ Context API๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์ค„ Context Provider์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ Context Consumer๊ฐ€ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” Context Provider๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ , Context Consumer๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌ๋งŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์˜ค๋Š˜์„ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋ฉฐ ์˜ค๋Š˜์€ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ContextAPI์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€๋ฅผ ํ•˜์˜€๋‹ค. ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ํ•ญ์ƒ ๋ฌธ์ œ๊ฐ€..

MVC

MVC๋ž€? (Model - View - Controller) MVC๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์šฐ์„  ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์ด๋ž€ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ๊ณต์‹ํ™”ํ•œ ๋ฐฉ๋ฒ•๋ก ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ๋ถ€ํ„ฐ ์ง€๊ธˆ๊นŒ์ง€ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๊ณตํ†ต์ ์ธ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋””์ž์ธ ํŒจํ„ด์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๊ฐ€๋…์„ฑ, ๊ฐ„๊ฒฐ์„ฑ ๊ทธ๋ฆฌ๊ณ  ํ™•์žฅ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜์—ฌ ํšจ์œจ์ ์ธ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์ž์ธํŒจํ„ด์˜ ์ข…๋ฅ˜๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด MVC์—์„œ ์ •ํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ๊ณต์‹ํ™”ํ•œ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ์š”? ์•ฑ ๊ฐœ๋ฐœ์„ ์„ธ ๊ฐœ์˜ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ ์š”์†Œ์— ๊ณ ์œ ํ•œ ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Model : Controller์—๊ฒŒ ๋ฐ›์€ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์‹œ Control..

[๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ] TIL-129

์˜ค๋Š˜์€ ๋ฆฌ์•กํŠธ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋ฆฌ์•กํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ๋“ค์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. ๋ฐ๋ธŒ์ฝ”์Šค๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋“ค์„ ๋ฐฐ์šฐ๊ณ ๋Š” ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์„ ์•Œ๊ณ  ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„๋กœ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„์ด ๋ถ€์กฑใ…Žํ•˜์ง€๋งŒ ใ… ใ… ใ…  ๊ทธ๋ž˜๋„ ์ ˆ๋Œ€ ๋น ์ ธ์„œ๋Š” ์•ˆ๋˜๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์•˜๋‹ค. 2022.12.23 - [๐Ÿ“š Language & CS knowledge/React] - ์ปดํฌ๋„ŒํŠธ ๋ฐ˜๋ณต ์ปดํฌ๋„ŒํŠธ ๋ฐ˜๋ณต map( ) ํ•จ์ˆ˜์˜ ํ™œ์šฉ map ํ•จ์ˆ˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด ๋‚ด ๊ฐ ์š”์†Œ๋ฅผ ์›ํ•˜๋Š” ๊ทœ์น™์— ๋”ฐ๋ผ ๋ณ€ํ™˜ํ•œ ํ›„ ๊ทธ ๊ฒฐ๊ณผ๋กœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. map( ) ํ•จ์ˆ˜์˜ ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. pinetree93.tistor..