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

Lect & Tip132

[React] SPA ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค ๋งจ ์œ„ ์œ ์ง€ ํ•˜๋Š” ๋ฐฉ๋ฒ• [React] SPA ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค ๋งจ ์œ„ ์œ ์ง€ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ตœ๊ทผ ์›น ๊ฐœ๋ฐœ ํŠธ๋ Œ๋“œ์—์„œ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SPA)์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์ด ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ React์™€ ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SPA๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ, ํŽ˜์ด์ง€ ๊ฐ„ ์ „ํ™˜์ด ๋น ๋ฅด๊ณ  ๋ถ€๋“œ๋Ÿฌ์šด ์ „ํ™˜ ํšจ๊ณผ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ SPA์˜ ํŠน์„ฑ์ƒ ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค ์œ„์น˜๊ฐ€ ์ด์ „ ํŽ˜์ด์ง€์˜ ์œ„์น˜๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” React ํ™˜๊ฒฝ์—์„œ SPA ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค์„ ํ•ญ์ƒ ๋งจ ์œ„๋กœ ์œ ์ง€ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๊ณผ ๊ทธ ๊ตฌํ˜„ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์‹ฌ๋„ ์žˆ๊ฒŒ ๋‹ค๋ฃจ์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.SPA์™€ ์Šคํฌ๋กค ๋ฌธ์ œ์˜ ์ดํ•ดSPA๋Š” ํ•œ ๋ฒˆ์˜ ๋กœ๋”ฉ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๋ฅผ ๋ถˆ๋Ÿฌ.. 2025. 2. 10.
word-break:break-all HTML ํ…Œ์ด๋ธ”์—์„œ ์ž๋™ ์ค„ ๋ฐ”๊ฟˆ, ๋„“์ด ์ง€์ • ๋ฐฉ๋ฒ•!! word-break:break-all HTML ํ…Œ์ด๋ธ”์—์„œ ์ž๋™ ์ค„ ๋ฐ”๊ฟˆ, ๋„“์ด ์ง€์ • ๋ฐฉ๋ฒ•!!๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์„ ํ•˜๋ฉฐ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๋ฏผ๋˜์‹ ์  ์žˆ์œผ์‹œ์ฃ ? ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋Š” ๋”ฑ ์š” ์ •๋„์ธ๋ฐ, ์นผ๋Ÿผ(TD) ์•ˆ์— ์ž…๋ ฅํ•œ ๊ธ€์ž์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ” ํฌ๊ธฐ๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ๋ณ€๊ฒฝ๋˜์–ด ๋ฒ„๋ฆฌ๋ฉด ์ฐธ ์†์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ด์œ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋จผ์ €, ์˜ˆ์ œ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๊ธฐ๋ณธ ์„ค์ •์„ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ TD ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ ๊ฐ๊ฐ์˜ ๋„ˆ๋น„๋ฅผ 150px๋กœ ์ง€์ •ํ•œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 12345 12345 1234512345์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ํ…Œ์ด๋ธ” ์•ˆ์— ์•„๋ฌด๋Ÿฐ ๋‚ด์šฉ์ด ์—†๊ฑฐ๋‚˜ ์ง€์ •ํ•œ ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ๊ธธ์ด๊ฐ€ ์ž‘์€ ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋œ๋‹ค๋ฉด, ๋‚ด๊ฐ€.. 2024. 10. 26.
[React] REST API, AXIOS๋กœ ๋ฐ›์•„์˜จ Array ๊ฐ์ฒด๋ฅผ mapํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋ถˆ๊ฐ€๋Šฅํ• ๋•Œ [React] REST API, AXIOS๋กœ ๋ฐ›์•„์˜จ Array ๊ฐ์ฒด๋ฅผ mapํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋ถˆ๊ฐ€๋Šฅํ• ๋•Œ์ด ๊ธ€์—์„œ๋Š” React๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ REST API๋กœ๋ถ€ํ„ฐ Axios๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐฐ์—ด(Array) ๊ฐ์ฒด์˜ map ํ•จ์ˆ˜ ํ˜ธ์ถœ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ์ƒ์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ , ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จํ•˜์—ฌ Promise ๊ฐ์ฒด๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ ์ „์— ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋˜์–ด ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์˜ ์›์ธ๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃจ๋ฉฐ, ๋กœ๋”ฉ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์„ ํ™œ์šฉํ•œ ์ ‘๊ทผ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.๋„์ž…๋ถ€React๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€ ๋ Œ๋”๋งํ•˜๋Š” ๊ณผ์ •์€ ๋งค์šฐ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด Axios๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ REST API์™€ ํ†ต์‹ ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ.. 2024. 10. 18.
ํŒŒ์ด์ฌ '์—ฐ์ฐจํœด๊ฐ€์ผ์ˆ˜ ๊ณ„์‚ฐ๊ธฐ' ๋งŒ๋“ค๊ธฐ ํŒŒ์ด์ฌ '์—ฐ์ฐจํœด๊ฐ€์ผ์ˆ˜ ๊ณ„์‚ฐ๊ธฐ' ๋งŒ๋“ค๊ธฐ์ง์žฅ์—์„œ ์—ฐ์ฐจ ํœด๊ฐ€๋Š” ์ง์›๋“ค์˜ ์ค‘์š”ํ•œ ๊ถŒ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฐ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ผ์ด ์ข…์ข… ๋ฒˆ๊ฑฐ๋กญ๊ณ  ๋ณต์žกํ•˜๊ฒŒ ๋А๊ปด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•ด ์—ฐ์ฐจํœด๊ฐ€์ผ์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” '์—ฐ์ฐจํœด๊ฐ€์ผ์ˆ˜ ๊ณ„์‚ฐ๊ธฐ'๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์—ฐ์ฐจํœด๊ฐ€์ผ์ˆ˜ ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ž…์‚ฌ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์—ฐ์ฐจํœด๊ฐ€๋ฅผ ์ž๋™์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ๋ณต์žกํ•œ ์ˆ˜์‹์„ ๋Œ€์‹ ํ•ด์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•˜๊ณ , ๊ทธ ํ™œ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์—ฐ์ฐจํœด๊ฐ€ ๊ณ„์‚ฐ ๊ทœ์น™ ์ดํ•ดํ•˜๊ธฐ๋จผ์ € ์—ฐ์ฐจํœด๊ฐ€ ๊ณ„์‚ฐ์˜ ๊ธฐ๋ณธ ๊ทœ์น™์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ•œ๋ฏผ๊ตญ ๊ทผ๋กœ๊ธฐ์ค€๋ฒ•์— ๋”ฐ๋ฅด๋ฉด ์—ฐ์ฐจํœด๊ฐ€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.์ž…์‚ฌ ํ›„ 1๋…„ ๋ฏธ๋งŒ: ๋งค๋‹ฌ ๊ฐœ๊ทผ ์‹œ 1์ผ์˜ ์œ ๊ธ‰ํœด๊ฐ€๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.์ž…์‚ฌ ํ›„ 1๋…„ ์ด์ƒ: 1๋…„ ๋™์•ˆ 80.. 2024. 10. 10.
์„œ๋ฒ„ ๋ฐ์ดํ„ฐ์™€ ์ปดํฌ๋„ŒํŠธ์˜ ๋ถ„๋ฆฌ: ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ• ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ์™€ ์ปดํฌ๋„ŒํŠธ์˜ ๋ถ„๋ฆฌ: ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ, ์„œ๋ฒ„์—์„œ ๋ฐ˜ํ™˜๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ปดํฌ๋„ŒํŠธ ์ฝ”๋“œ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ฒŒ ๋˜์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ์™€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์ฑ…์ž„์„ ๋ช…ํ™•ํžˆ ํ•˜๊ณ , ๋ณ€ํ™”ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ •์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋ฌธ์ œ์˜ ์ถœ๋ฐœ์ : ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ์™€ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ๋Œ€๋ถ€๋ถ„์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ด๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ดˆ๊ธฐ์—๋Š” ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์— ๋งž์ถฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฌ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค.. 2024. 9. 9.
bootstrap selectpicker multiple js ์ˆ˜์ •: ์ „์ฒด ์„ ํƒ์ด ์ฒดํฌ ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์˜ต์…˜์ด ํ•˜๋‚˜๋ผ๋„ ์ฒดํฌ ํ•ด์ œ๋  ๊ฒฝ์šฐ ์ „์ฒด ์„ ํƒ๋„ ๊ฐ™์ด ์ฒดํฌ ํ•ด์ œ ๋˜๊ฒŒ bootstrap selectpicker multiple js ์ˆ˜์ •: ์ „์ฒด ์„ ํƒ์ด ์ฒดํฌ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์˜ต์…˜์ด ํ•˜๋‚˜๋ผ๋„ ์ฒดํฌ ํ•ด์ œ๋  ๊ฒฝ์šฐ ์ „์ฒด ์„ ํƒ๋„ ๊ฐ™์ด ์ฒดํฌ ํ•ด์ œ๋˜๊ฒŒBootstrap์€ ์›น ๊ฐœ๋ฐœ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋‹ค์–‘ํ•œ UI ์ปดํฌ๋„ŒํŠธ์™€ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ๋„ bootstrap-select๋Š” ๊ธฐ๋ณธ HTML ์š”์†Œ๋ฅผ ๋”์šฑ ์„ธ๋ จ๋˜๊ฒŒ ๋ณด์ด๋„๋ก ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ selectpicker๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜ต์…˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ€ํ‹ฐ ์…€๋ ‰ํŠธ(dropdown) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฉ€ํ‹ฐ ์…€๋ ‰ํŠธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ, "์ „์ฒด ์„ ํƒ(Select All)" ์˜ต์…˜๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์—์„œ.. 2024. 8. 23.