[React] gitHub pages์—์„œ ๋ผ์šฐํŒ…๋œ ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ 404 ํŽ˜์ด์ง€๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” ๋ฌธ์ œ

react๋กœ ๋งŒ๋“  ๋งˆํˆฌ์‚ฌ ๊ฐœ์ธํ”„๋กœ์ ํŠธ๋ฅผ 1์ฐจ ์™„๋ฃŒํ•˜๊ณ  gitHub pages๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๐Ÿšจ ์—๋Ÿฌ ๋‚ด์šฉ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ, ์ฒซ ์‹œ์ž‘์ด ๋กœ๊ทธ์ธ์ด์–ด์„œ ๋กœ๊ทธ์ธ ์ปดํฌ๋„ŒํŠธ๋ฅผ path="/" ๊ฒฝ๋กœ๋กœ ๋‘์—ˆ๋‹ค. "/" ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€๋‹ˆ ์•„๋ฌด๊ฒƒ๋„ ๋ Œ๋”๋ง๋˜์ง€ ์•Š์•„ ๋นˆํ™”๋ฉด๋งŒ ๋‚˜์™”๋‹ค. ๐Ÿค” ์—๋Ÿฌ ์›์ธ ๋ผ์šฐํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” "/" ๊ฒฝ๋กœ๋Š” https://jeongeum.github.io/ ์ด๋‹ค. ํ•˜์ง€๋งŒ, ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ๋กœ๋Š” https://jeongeum.github.io/MyTodoSite ์— ์žˆ๋‹ค. ๋ผ์šฐํ„ฐ๊ฐ€ ์ด๋™ํ•˜๊ณ ์žํ•˜๋Š” ๊ฒฝ๋กœ์™€ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ๋กœ ๊ฐ„์— ์ฐจ์ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ๋œ ๋™์ž‘์„ ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋˜ ๊ฒƒ์ด๋‹ค. โœจ ์—๋Ÿฌ ํ•ด๊ฒฐ ํ•ด๊ฒฐ 1 // ์ˆ˜์ • ์ „ // ๐Ÿ”ฅ ์ด ๋ถ€๋ถ„ // ์ˆ˜์ • ํ›„ // ๐Ÿ”ฅ ..

[React] ๋‹คํฌ๋ชจ๋“œ ๊ตฌํ˜„ํ•˜๊ธฐ ๐ŸŒ๐ŸŒš

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

[React] localStorage์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ useState ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ๊ฐ€์ ธ์™€๋ณด์ž!

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ MyTodoSite (์ค„์—ฌ์„œ ๋งˆํˆฌ์‚ฌ)๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…์ด ์ƒ๊ฒผ๋‹ค. ํˆฌ๋‘๋ฅผ ๋“ฑ๋กํ•œ ํ›„ localStorage์— ์ €์žฅ์ด ๋˜๋Š”๋ฐ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜๋ฉด localStorage๊ฐ€ ์ „๋ถ€ ์ดˆ๊ธฐํ™” ๋˜๋Š” ์ƒํ™ฉ์ด์—ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์—ฐํžˆ ํˆฌ๋‘ ๋“ฑ๋ก ํ•  ๋•Œ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ–ˆ๊ณ  ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์‹œ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์•„๋‹ˆ์—ˆ๋‹ค. ๋‚ด๊ฐ€ ๋„ˆ๋ฌด ์•ˆ์ผํ–ˆ์Œ์„....๐Ÿ˜‚ ํ•ด๋‹น ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‘๊ฐ€์ง€๋ฅผ ์•Œ๊ฒŒ๋˜์—ˆ๋Š”๋ฐ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋ฌธ์ œ์  ํˆฌ๋‘๋ฅผ ๋“ฑ๋กํ•œ ํ›„ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ ํ•˜์ง€๋งŒ, ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ ๊ธฐ์กด ์ฝ”๋“œ import React, { useEffect, useState } from "react"; import..

[React] ๊ฐ„๋‹จํ•œ TodoList ๋งŒ๋“ค๊ธฐ ๐Ÿƒ

๊ฐ€์žฅ ํ”ํ•˜์ง€๋งŒ ์•Œ์ฐจ๊ณ  ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ตํžˆ๊ธฐ์— ์ข‹์€ ๊ฒƒ ๊ฐ™์€ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌ์•กํŠธ๋กœ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ๋Š” ๊ทธ๋™์•ˆ 2-3๋ฒˆ ์ •๋„ ๋งŒ๋“ค์–ด๋ณธ ๊ฒƒ ๊ฐ™์€๋ฐ..๐Ÿค” ๋ฆฌ์•กํŠธ๋กœ๋Š” ๊ฐ•์˜ ๋”ฐ๋ผ ์นœ ๊ธฐ์–ต๋งŒ ๋‚˜๊ณ  ํ˜ผ์ž ํž˜์œผ๋กœ๋Š” ๋งŒ๋“ค์–ด๋ณธ ๊ธฐ์–ต์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์ด๋ ‡๊ฒŒ ๋œ๊ฑฐ ๊ฐ„๋‹จํ•œ ํˆฌ๋‘ ์•ฑ์„ ๋งŒ๋“ค๋ฉด์„œ ๋ฆฌ์•กํŠธ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์‹œ ์žก๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค! ๐ŸŽจ ๋””์ž์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ๋” ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋””์ž์ธ์€ ์ดˆ์ดˆ์ดˆ ๊น”๋”ํ•˜๊ฒŒโœจ ํ•ด์•ผ์ง€ ์ƒ๊ฐํ–ˆ๋‹ค. ํ”ผ๊ทธ๋งˆ๋ฅผ ์ž˜ ๋‹ค๋ฃจ์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ ์•„์˜ˆ ๋ชจ๋ฅด๋Š” ๊ฑด ์•„๋‹ˆ๊ธฐ์— ํ”ผ๊ทธ๋งˆ๋ฅผ ์ด์šฉํ•ด ๋””์ž์ธ ์‹œ์•ˆ์„ ์žก์•„๋ณด์•˜๋‹ค. (์—ฌ๋ฐฑ์˜ ๋ฏธ-!ใ…Žใ…Žใ…Ž) โš™๏ธ ๊ธฐ๋Šฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ์•ž์„œ์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ฃผ์—ˆ๋‹ค. ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ (๋ฒ„ํŠผ, input)๋ฅผ ๋งŒ๋“ค๊นŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์—์„œ๋Š” ๊ทธ์ •๋„๊นŒ์ง„ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ํŒ๋‹จํ–ˆ..

[React] Router๋ฅผ ์‚ฌ์šฉํ•ด ํŽ˜์ด์ง€ ์ด๋™ํ•˜๊ธฐ!

๊ธฐ์—…๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ 'Link ํƒœ๊ทธ๋ฅผ ์จ์•ผํ•˜๋‚˜..? ๊ทธ๋ƒฅ ์ƒํ™ฉ์— ๋งž์ถฐ ์ปดํฌ๋„ŒํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋„˜๊ฒจ์ฃผ๋ฉด ๋˜๋ ค๋‚˜..?๐Ÿค”' ํ—ท๊ฐˆ๋ ธ๋˜ ์ˆœ๊ฐ„์ด ์žˆ์—ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ํ›„์ž์˜ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰์„ ํ–ˆ์ง€๋งŒ ์•„๋ฌด๋ž˜๋„ ๋ผ์šฐํ„ฐ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜์–ด ๊ธฐ๋ณธ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ฐœ๋…์„ ๋‹ค์‹œ ์žก์•„๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. React์—์„œ์˜ ํŽ˜์ด์ง€์ด๋™ ๋ผ์šฐํŒ…?๐Ÿค” ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ URL์— ๋”ฐ๋ผ ์•Œ๋งž๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ. ์˜ˆ์‹œ ๐Ÿ› ์‡ผํ•‘๋ชฐ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, ์–ด๋–ค ํŽ˜์ด์ง€๋“ค์ด ํ•„์š”ํ• ๊นŒ? ์ƒํ’ˆ ๋ชฉ๋ก ํŽ˜์ด์ง€ ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€ ๋งˆ์ด ํŽ˜์ด์ง€ ... ๋“ฑ ์ด์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ ํŽ˜์ด์ง€๋ณ„๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์ด๋‹ค. โš™๏ธ ์„ค์น˜ npm install ..

[CSS] ํ—ค๋”๋ฅผ ๊ณ ์ •์‹œ์ผœ๋ณด์ž!

์ด ๊ธ€์„ ์‹œ์ž‘์œผ๋กœ ๋ช‡ ๊ฐœ์˜ ํฌ์ŠคํŒ…์€ ๊ธฐ์—…๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ ๋ถ€์กฑํ•˜๋‹ค๊ณ  ๋А๋‚€ ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ณด๋Š” ๊ธ€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ํŠนํžˆ๋‚˜ sticky์˜ ๊ฒฝ์šฐ, ์›น SQL ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ์—๋„ stickyํ•œ ํ—ค๋”๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋‚ด ๋‹ด๋‹น์ด์—ˆ๋Š”๋ฐ ๊ทธ ๋‹น์‹œ์—๋„ ๋ถ€์กฑํ•œ ๊ฐœ๋…์„ ์–ต์ง€๋กœ ๊ฐ€์ ธ๋‹ค ์“ฐ๋ ค๊ณ ๋งŒ ํ•˜๋Š” ๋А๋‚Œ์ด ๋“ค์—ˆ์—ˆ๊ธฐ์— ์ด๋ฒˆ์— ์‰ฝ๊ฒŒ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๐Ÿ”ฎ position์˜ ์—ญํ•  ํ™”๋ฉด์ƒ์—์„œ ์–ด๋–ค ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์–ด๋””์— ์ค„์ง€ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” ์†์„ฑ ๐Ÿ“ position: sticky ์ผ๋ฐ˜์ ์ธ ๋ฌธ์„œ ํ๋ฆ„์— ๋”ฐ๋ผ ๋ฐฐ์น˜ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ top, bottom, left, right๋ฅผ ํ†ตํ•ด ์œ„์น˜ ์„ ์ • (ํ•„์ˆ˜) ์ตœ์ดˆ ์Šคํฌ๋กค ์‹œ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์„œ ํ๋ฆ„์„ ๋”ฐ๋ผ ์›€์ง์ด์ง€๋งŒ, ์Šคํฌ๋กค์ด ํŠน์ • ์ง€์ ์— ๋„๋‹ฌํ•˜๋ฉด fixed์ฒ˜๋Ÿผ ๊ณ ์ • ๐Ÿ“ position: fixed ์ผ..

XOR์„ ์ด์šฉํ•ด ๋ฐฐ์—ด์— ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ์ˆ˜ ์ฐพ๊ธฐ

๋ฐฐ์—ด์—๋Š” ์›์†Œ๊ฐ€ ๋ชจ๋‘ 2๋ฒˆ์”ฉ ๋“ค์–ด์žˆ์ง€๋งŒ ์˜ค์ง 1๊ฐœ์˜ ์›์†Œ๋งŒ 1๋ฒˆ ๋“ค์–ด์žˆ๋‹ค. 1๋ฒˆ๋งŒ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ์›์†Œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฒ˜์Œ ์ง„ํ–‰ํ•œ ๋ฐฉ๋ฒ• 1. ๋ฐฐ์—ด ๊ธธ์ด๋งŒํผ 0์œผ๋กœ ์ฑ„์›Œ์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ๋‹ค. 2. ๋ฐฐ์—ด ๋‚ด ๊ฐ’๋“ค์ด [1, 1, 2, 2, 3, 5, 5] ์ด๋ฉด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ ๊ฐ ์ˆซ์ž ์ธ๋ฑ์Šค์— count๋ฅผ ํ•ด์ค€๋‹ค. 3. ๊ทธ๋Ÿฌ๋ฉด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์€ [0, 2, 2, 1, 0, 2]๋กœ ์นด์šดํŠธ๊ฐ€ ๋  ๊ฒƒ ์ด๋‹ค. 4. ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด (ํ™€์ˆ˜์ด๋ฉด) ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์—์„œ ํ™€์ˆ˜์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. → ์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ ์‹คํ–‰์€ ๋˜์ง€๋งŒ ์ œ์ถœํ•  ๋•Œ์—๋Š” ๋‹ค ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์™”๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• xor์˜ ์›๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. xor์€ ์ž๊ธฐ ์ž์‹ ๊ณผ xor ์—ฐ์‚ฐ์ด ๋˜๋ฉด 0์ด ๋‚˜์˜ค๊ณ  0๊ณผ xor ์—ฐ์‚ฐ์„ ํ•˜๋ฉด ์ž๊ธฐ..