FE

    [Next.js] ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

    Next.js๋Š” ์„œ๋ฒ„์‚ฌ์ด๋“œ๋ Œ๋”๋ง์„ ์ง€์›ํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์˜ ์žฅ์ ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์— ์ •๋ฆฌํ•ด๋†“์•˜๋‹ค. SSR์˜ ๊ฒฝํ—˜์„ ์Œ“๊ณ  ์‹ถ์–ด์„œ Next.js๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.2024.05.30 - [Front-end/React] - [React] ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ๋”ฅ๋‹ค์ด๋ธŒ 4. ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ์ฃผ์š” ์ •๋ฆฌ [React] ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ๋”ฅ๋‹ค์ด๋ธŒ 4. ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ์ฃผ์š” ์ •๋ฆฌ1. ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ž€?์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ฝ์ž์ธ SPA๋Š” ๋ Œ๋”๋ง๊ณผ ๋ผ์šฐํŒ…์— ํ•„์š”ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์„ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ €์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. SPAworld-developer.tistory.comํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐnpx create-next-app@latest ๋งŒ์•ฝ typescript๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ..

    [React] ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ๋”ฅ๋‹ค์ด๋ธŒ 4. ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ์ฃผ์š” ์ •๋ฆฌ

    1. ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ž€?์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ฝ์ž์ธ SPA๋Š” ๋ Œ๋”๋ง๊ณผ ๋ผ์šฐํŒ…์— ํ•„์š”ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์„ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ €์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. SPA๋Š” ๋ง ๊ทธ๋Œ€๋กœ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋กœ ๊ตฌํ˜„๋˜๋ฉฐ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋ฐ›์•„์˜ค์ง€ ์•Š๋Š”๋‹ค. ์ตœ์ดˆ์— ์ฒซ ํŽ˜์ด์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜จ ์ดํ›„์— ํŽ˜์ด์ง€ ์ „ํ™˜ ๋‹จ๊ณ„์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋ธŒ๋Ÿฌ์šฐ์ €์˜ history.pushState์™€ history.replaceState๋กœ ์ด๋ค„์ง€๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ HTML์„ ๋‚ด๋ ค๋ฐ›์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€์—์„œ ๋ชจ๋“  ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. SPA๋Š” ์ตœ์ดˆ ์ฒซ ํŽ˜์ด์ง€๋ฅผ ๋ฐ›์„ ๋•Œ๋Š” SSR์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ดํ›„์—๋Š” CSR์„ ์ด์šฉํ•˜์—ฌ ๋ Œ๋”๋ง์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. 1.1 SPA์—์„œ ํŽ˜์ด์ง€ ์ „ํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•˜์‹œ์˜คํŽ˜์ด์ง€ ์ „ํ™˜ ์‹œ..

    [React] SPA, CSR์€ ๊ฐ™์„๊นŒ ๋‹ค๋ฅผ๊นŒ

    ๋‹ต๋ถ€ํ„ฐ ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด SPA, CSR์€ ๊ฐ™์ง€ ์•Š๋‹ค. ์• ์ดˆ์— ๋น„๊ต ๋Œ€์ƒ์ด ์•„๋‹ˆ๋‹ค. CSR(Client Side Rendering)์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๋นˆ HTML๋งŒ ๋ฐ›์•„์˜ค๊ณ , ๋ฐ์ดํ„ฐ๋Š” ์—ฌ๋Ÿฌ static ํŒŒ์ผ๋“ค์ด ๋กœ๋“œ๋œ ์ดํ›„์— ์š”์ฒญํ•ด์„œ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋จSSR(Server Side Rendering)CSR๊ณผ ๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋ชจ๋‘ ์‚ฝ์ž…ํ•˜์—ฌ ์™„์„ฑ๋œ HTML์„ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋จSPA(Single Page Application)์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ฒซ ํŽ˜์ด์ง€๋งŒ ๋ฐ›์•„์˜ค๊ณ  ์ดํ›„์—๋Š” ๋™์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋ฐ›์•„์˜ค์ง€ ์•Š๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งํ•จ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•  ๋•Œ ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ ๋˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š์ŒMPA(Multiple Page Appl..

    [JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ์ž์—ด ๋ฐ˜๋ณต ๋ฉ”์†Œ๋“œ repeat()

    โœ”๏ธ repeat() ์š”์•ฝํŠน์ • ๋ฌธ์ž์—ด์„ ์›ํ•˜๋Š”๋งŒํผ ๋ฐ˜๋ณตํ•œ ๋ฌธ์ž์—ด์„ ์–ป๊ณ ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ.โœ”๏ธ repeat() ๊ธฐ๋ณธํ˜•string.repeat(count);string : ๋ฌธ์ž์—ด์ด ์ €์žฅ๋œ string ๋ณ€์ˆ˜count : ๋ฐ˜๋ณตํ•  ํšŸ์ˆ˜โœ”๏ธ repeat() ์‚ฌ์šฉ๋ฒ•str = 'abc';console.log(str.repeat(3)); // abcabcabc ์ถœ๋ ฅ

    [JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ตœ๋Œ€/์ตœ์†Œ ์ •์ˆ˜๊ฐ’ MAX_SAFE_INTEGER/MIN_SAFE_INTEGER

    โœ”๏ธ Number.MAX_SAFE_INTEGER() / Number.MIN_SAFE_INTEGER() ์š”์•ฝNumber.MAX_SAFE_INTEGER() : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์•ˆ์ „ํ•œ ์ตœ๋Œ€ ์ •์ˆ˜ ๊ฐ’Number.MIN_SAFE_INTEGER() : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์•ˆ์ „ํ•œ ์ตœ์†Œ ์ •์ˆ˜ ๊ฐ’โœ”๏ธ Number.MAX_SAFE_INTEGER() / Number.MIN_SAFE_INTEGER() ์‚ฌ์šฉ๋ฒ•// ์ตœ๋Œ“๊ฐ’ ์„ค์ •const max = Number.MAX_SAFE_INTEGER;// ์ตœ์†Ÿ๊ฐ’ ์„ค์ •const min = Number.MIN_SAFE_INTEGER;

    [JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ •์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๋Š” Number.isInteger() ๋ฉ”์†Œ๋“œ

    โœ”๏ธ Number.isInteger() ์š”์•ฝ์ธ์ˆ˜๊ฐ€ ์ •์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•˜์—ฌ ์ •์ˆ˜์ด๋ฉด true๋ฅผ, ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œโœ”๏ธ Number.isInteger() ๊ธฐ๋ณธํ˜•Number.isInteger(value);Value : ์ •์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๋ ค๋Š” ๊ฐ’๋ฐ˜ํ™˜๊ฐ’ : ์ฃผ์–ด์ง„ ๊ฐ’์˜ ์ •์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Boolean๊ฐ’โœ”๏ธ Number.isInteger() ์‚ฌ์šฉ๋ฒ•Number.isInteger(0); // trueNumber.isInteger(-100); // trueNumber.isInteger(0.25); // falseNumber.isInteger("๋ฌธ์ž์—ด"); // falseNumber.isInteger(true); // falseNumber.isInteger(Infinity); // false

    [JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Œ€์†Œ๋ฌธ์ž ๋ณ€๊ฒฝํ•˜๊ธฐ toUpperCase(), toLowerCase()

    โœ”๏ธ toUpperCase(), toLowerCase() ์š”์•ฝ์˜์–ด๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ ๋Œ€๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ, ์†Œ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•จ.โœ”๏ธ toUpperCase(), toLowerCase() ์‚ฌ์šฉ๋ฒ•const str = "AbCdE";// ์†Œ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ€ ๋•Œconst upperStr = str.toUpperCase(); // "ABCDE"// ๋Œ€๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ€ ๋•Œconst lowerStr = str.toLowerCase(); // "abcde"

    [JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ String includes ๋ฉ”์†Œ๋“œ

    โœ”๏ธ includes() ์š”์•ฝ ๋ฌธ์ž์—ด์— ํŠน์ • ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฉ”์†Œ๋“œ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ โžก๏ธ true ๋ฐ˜ํ™˜ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋•Œ โžก๏ธ false ๋ฐ˜ํ™˜ โœ”๏ธ includes() ๊ธฐ๋ณธํ˜• ํ™•์ธ ๋ฌธ์ž์—ด.includes(ํŠน์ • ๋ฌธ์ž์—ด, ์ฐพ์„ ์‹œ์ž‘ ์œ„์น˜) ํ™•์ธ ๋ฌธ์ž์—ด(String) : String ์ž๋ฃŒํ˜•์˜ ๋ฌธ์ž์—ด์˜ ๋ณ€์ˆ˜๋ช…์ด ๋“ค์–ด๊ฐ ํŠน์ • ๋ฌธ์ž์—ด(String) : ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด์„ ๋„ฃ์–ด์คŒ ์ฐพ์„ ์‹œ์ž‘ ์œ„์น˜(Number) : ํ™•์ธ ๋ฌธ์ž์—ด์—์„œ ์–ด๋А ์œ„์น˜์—์„œ๋ถ€ํ„ฐ ํŠน์ • ๋ฌธ์ž์—ด์ด ์žˆ๋Š” ์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ, ๊ธฐ๋ณธ๊ฐ’์€ 0 โœ”๏ธ includes() ์‚ฌ์šฉ์˜ˆ์‹œ str = "abcde"; str.includes("a"); // ๊ฒฐ๊ณผ๊ฐ’ : true str.includes("f"); // ๊ฒฐ๊ณผ๊ฐ’ : ..

    [JavaScript] ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ (Math.max / Math.min)

    โœ”๏ธ Math.max(), Math.min() ์š”์•ฝ Math.min([์ˆซ์ž์ง‘ํ•ฉ]); // ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ ๋ฐ˜ํ™˜ Math.max([์ˆซ์ž์ง‘ํ•ฉ]); // ๊ฐ€์žฅ ํฐ ๊ฐ’ ๋ฐ˜ํ™˜ Math.min()์€ ์ˆซ์ž ์ง‘ํ•ฉ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜. Math.max()๋Š” ์ˆซ์ž ์ง‘ํ•ฉ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜. โœ”๏ธ Math.max(), Math.min() ์˜ˆ์ œ Math.min(0, 2, 1, 5); // 0 ๋ฐ˜ํ™˜ Math.max(0, 2, 1, 5); // 5 ๋ฐ˜ํ™˜ ๐Ÿค” ์ˆซ์ž ์ง‘ํ•ฉ์ด Array์— ๋“ค์–ด์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? const nums = [0, 1, 2, 5]; const num1 = Math.min(...nums); const num2 = Math.max(...nums); ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ๋ถ„๋ฆฌํ•ด์ค€๋‹ค!