๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Dev

๋‹ค์Œ๊ณผ ๊ฐ™์ด urlDetails ์— ์ •๋ณด๋ฅผ ์ €์žฅํ•œ ์ƒํ™ฉ์ผ ๋•Œ const [urlDetails, setUrlDetails] = useState(); // * urlDetails useEffect(() => { filecompAPI .urlDetails(selectedUrlHash) .then((response) => { setUrlDetails(response.data); }) .catch((error) => { console.error('Error fetching URL details: ', error); }); }, [selectedUrlHash]); export interface IUrlDetailContent { urlHash: string; url: string; rep: boolean; repU..
https://tanstack.com/table/v8 TanStack Table | React Table, Solid Table, Svelte Table, Vue Table Headless UI for building powerful tables & datagrids with TS/JS, React, Solid, Svelte and Vue tanstack.com ์ฒดํฌ ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•˜๊ณ , ์„ ํƒ๋œ ์ฒดํฌ๋ฐ•์Šค์—์„œ Hash ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค˜์•ผํ•˜๋Š” ์ƒํ™ฉ์ผ ๋•Œ import { useState } from 'react'; // ... ์ด์ „ ์ฝ”๋“œ ... const ExampleComponent = () => { const [selectedUrlHash, setSelectedUrlHash] = useState(null); con..
html, css ํ•˜๋ฉฐ ํ–ˆ๋˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์ธ๋ฐ justifyConfent ๋งŒ ํ•˜๊ณ  ๋์ด ์•„๋‹ˆ๋ผ display: 'flex' ๋„ ํ•ด์ฃผ๋Š” ๊ฑธ ๊นŒ๋จน์ง€ ๋ง™์‹œ๋‹ค ! JSX์—์„œ span๊ณผ select ํ•œ ์ค„ ์ถœ๋ ฅ ์˜ˆ์‹œ โฌ‡ (feat. chatGPT) . Flexbox ์‚ฌ์šฉ CSS์˜ Flexbox๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋ชจ div ์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ ์ž์‹ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. justifyContent: 'space-between'๋ฅผ ์ด๋ฏธ ์‚ฌ์šฉํ•˜์…จ์œผ๋ฏ€๋กœ, ์•„๋งˆ๋„ ๋ถ€๋ชจ ์ปจํ…Œ์ด๋„ˆ๋Š” Flex ์ปจํ…Œ์ด๋„ˆ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์‹œ๋„ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. {currentUrl} {/* ์˜ต์…˜๋“ค */} ์œ„ ์ฝ”๋“œ์—์„œ alignItems: 'center'๋Š” ์ž์‹ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ˆ˜์ง์œผ๋กœ ๊ฐ€์šด๋ฐ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค..
JSX expressions must have one parent element. ์ด ์˜ค๋ฅ˜๋Š”, JSX์—์„œ๋Š” ํ‘œํ˜„์‹(expression)์ด ํ•˜๋‚˜์˜ ๋ถ€๋ชจ ์š”์†Œ(parent element)๋กœ ๊ฐ์‹ธ์ ธ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ๋‹ค. ์ด ์˜ค๋ฅ˜์˜ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‚˜ ๋นˆ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋Š” React์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž์‹ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŠน์ˆ˜ํ•œ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. JSX์—์„œ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋Š” ๋ถ€๋ชจ ์š”์†Œ๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€์ ์ธ DOM ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์š”์†Œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋œ๋‹ค. {/* ์ž์‹ ์š”์†Œ๋“ค */} ๋˜๋Š” ์ถ•์•ฝํ˜•์œผ๋กœ ์™€ ํƒœ๊ทธ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. {/* ์ž์‹ ์š”์†Œ๋“ค */} ์ฆ‰, ๋Š” JSX๋ฅผ ์ž‘์„ฑํ•  ๋•Œ..
JSON ํ˜•์‹์„ ๋ฐ›์•„์™€์„œ, ํ™”๋ฉด์— ์ค„๋ฐ”๊ฟˆ์„ ๋ฐ˜์˜ํ•˜์—ฌ ์˜ˆ์˜๊ฒŒ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์€๋ฐ ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์„๊นŒ? response = "{\n \"hobby\": \"/exercise/swim\"\n}" ์ด๋ ‡๊ฒŒ ์‘๋‹ต์ด ์™”๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ์ด๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ฉด \n ์ด ๊ทธ๋Œ€๋กœ ๋ฌธ์ž๋กœ ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค. ** ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž {userDetails?.userInfo && ( {userDetails?.userInfo} )} JSX์—์„œ, ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด์ฃผ๋ฉด \n ๊ฐœํ–‰๋ฌธ์ž๋ฅผ ์ค„๋ฐ”๊ฟˆ์œผ๋กœ ๋ณ€ํ˜•ํ•˜์—ฌ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.
์ปค๋ฐ‹๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ์ผ๊ด€๋œ ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š” ์ •ํ•ด๋†“๊ณ  ๋”ฐ๋ฅด๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ '์ปค๋ฐ‹๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜'์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ปค๋ฐ‹๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜ ์ค‘์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” 'Conventional Commits' ์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Conventional Commits ์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•˜๋ฉด, ๊ตฌ์กฐ์™€ ๊ตฌ์„ฑ ์š”์†Œ, ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์ž์„ธํžˆ ๋‚˜์™€์žˆ๋‹ค. Conventional Commits ์‚ฌ์šฉ ๋ชฉ์ CHANGELOG๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ(ํฌํ•จ๋œ ์ปค๋ฐ‹์˜ ํƒ€์ž…์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ) ์œ ์˜์  ๋ฒ„์ „์„ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œํŒ€ ๋™๋ฃŒ, ํƒ€์ธ, ๊ทธ๋ฆฌ๊ณ  ๊ธฐํƒ€ ์ดํ•ด๋‹น์‚ฌ์ž์—๊ฒŒ ๋ณ€ํ™”์˜ ๋ณธ์งˆ์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋นŒ๋“œ์™€ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋” ๊ตฌ์กฐํ™”๋œ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณด์—ฌ์ค˜์„œ ์‚ฌ๋žŒ๋“ค์ด ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ๋” ์‰ฝ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ตฌ์กฐ[์ ์šฉ ๋ฒ”์œ„(์„ ํƒ ์‚ฌํ•ญ)]:..
ใ€ŽDo it! ๊นƒ & ๊นƒํ—ˆ๋ธŒ ์ž…๋ฌธใ€ 3์žฅ. ๊นƒ๊ณผ ๋ธŒ๋žœ์น˜ ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค ๋ชฉ์ฐจ 3-1 ๋ธŒ๋žœ์น˜๋ž€ 3-2 ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ ๋ฐ ์ด๋™ํ•˜๊ธฐ 3-3 ๋ธŒ๋žœ์น˜ ์ •๋ณด ํ™•์ธํ•˜๊ธฐ 3-4 ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉํ•˜๊ธฐ 3-1 ๋ธŒ๋žœ์น˜๋ž€? ๋ธŒ๋žœ์น˜(branch) ๋‚˜๋ฌด๊ฐ€ ๊ฐ€์ง€์—์„œ ์ƒˆ ์ค„๊ธฐ๋ฅผ ๋ป—๋“ฏ์ด ์—ฌ๋Ÿฌ ๊ฐˆ๋ž˜๋กœ ํผ์ง€๋Š” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊นƒ์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ main ๋ธŒ๋žœ์น˜(๊ตฌ master ๋ธŒ๋žœ์น˜) ๋งŒ๋“ค์–ด์ง ์‚ฌ์šฉ์ž๊ฐ€ ์ปค๋ฐ‹ํ•  ๋•Œ๋งˆ๋‹ค main ๋ธŒ๋žœ์น˜๋Š” ์–ด๋–ค ๊ฒŒ ์ตœ์‹  ์ปค๋ฐ‹์ธ์ง€ ์ •๋ณด๋ฅผ ๊ฐ€์ง. ๊ธฐ์กด ํŒŒ์ผ์€ main ๋ธŒ๋žœ์น˜์— ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ, ์ƒˆ ๋ธŒ๋žœ์น˜์—์„œ ๊ธฐ์กด ํŒŒ์ผ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ. main๋ธŒ๋žœ์น˜์—์„œ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ '๋ถ„๊ธฐ(branch)ํ•œ๋‹ค' ๋ถ„๊ธฐํ–ˆ๋˜ ๋ธŒ๋žœ์น˜๋ฅผ main ๋ธŒ๋žœ์น˜์— ํ•ฉ์น˜๋Š” ๊ฒƒ์„ '๋ณ‘ํ•ฉ(merg..
ใ€ŽDo it! ๊นƒ & ๊นƒํ—ˆ๋ธŒ ์ž…๋ฌธใ€ 2์žฅ. ๊นƒ์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌํ•˜๊ธฐ ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค ๋ชฉ์ฐจ 2-1 ๊นƒ ์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ 2-2 ๋ฒ„์ „ ๋งŒ๋“ค๊ธฐ 2-3 ์ปค๋ฐ‹ ๋‚ด์šฉ ํ™•์ธํ•˜๊ธฐ 2-4 ๋ฒ„์ „ ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„๋งˆ๋‹ค ํŒŒ์ผ ์ƒํƒœ ์•Œ์•„๋ณด๊ธฐ 2-5 ์ž‘์—… ๋˜๋Œ๋ฆฌ๊ธฐ 2-1 ๊นƒ ์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ ์ €์žฅ์†Œ(repository) : ๋ฒ„์ „์ด ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„ 1. ์ƒˆ๋กœ์šด ๋””๋ ‰ํ„ฐ๋ฆฌ ๋งŒ๋“ค๊ธฐ $ git init 'initialize(์ดˆ๊ธฐํ™”ํ•˜๋‹ค) 'Initialized empty Git repository in...' ๋ผ๋Š” ๋ฉ”์‹œ์ง€ ๋‚˜์™”์œผ๋ฉด ์ด์ œ๋ถ€ํ„ฐ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๊นƒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์ดํ›„ ๋‹ค์‹œ ls -la ํ•ด๋ณด๋ฉด? git ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ๊น€! ์ด ํด๋”๊ฐ€ ๊นƒ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฒ„์ „์ด ์ €์žฅ๋  '์ €์žฅ์†Œ(repository)' *Finder์—์„œ hello-git ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์—ด์—ˆ์„ ๋•Œ..
ใ€ŽDo it! ๊นƒ & ๊นƒํ—ˆ๋ธŒ ์ž…๋ฌธใ€ 1์žฅ. ๊นƒ ์‹œ์ž‘ํ•˜๊ธฐ ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค ๋ชฉ์ฐจ> 1-1 ์ง€์˜ฅ์—์„œ ์˜จ ๋ฌธ์„œ ๊ด€๋ฆฌ์ž, ๊นƒ 1-2 ๋งฅ์— ๊นƒ ์„ค์น˜ํ•˜๊ธฐ 1-3 ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น ์—ฐ์Šตํ•˜๊ธฐ 1-4 ๋น” ํŽธ์ง‘๊ธฐ์—์„œ ํ…์ŠคํŠธ ๋ฌธ์„œ ๋งŒ๋“ค๊ธฐ 1-1 ์ง€์˜ฅ์—์„œ ์˜จ ๋ฌธ์„œ ๊ด€๋ฆฌ์ž, ๊นƒ ๊นƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค - ๋ฒ„์ „ ๊ด€๋ฆฌํ•˜๊ธฐ, ๋ฐฑ์—…ํ•˜๊ธฐ, ํ˜‘์—…ํ•˜๊ธฐ - "๋ฒ„์ „๊ด€๋ฆฌ → ๋ฐฑ์—… → ํ˜‘์—…" ์ˆœ์„œ๋กœ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค. ๊นƒ ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฅ˜ - ๊นƒํ—ˆ๋ธŒ ๋ฐ์Šคํฌํ†ฑ(GitHub Desktop) ; ์˜จ๋ผ์ธ ์ €์žฅ์†Œ ์„œ๋น„์Šค์ธ ๊นƒํ—ˆ๋ธŒ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ. ์žฅ์  : ๋ณต์žกํ•œ ๊นƒ ์‚ฌ์šฉ๋ฒ•์„ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(graphic user interface, GUI)๋กœ ๊ตฌํ˜„ํ•ด์„œ ์‚ฌ์šฉ์ด ํŽธ๋ฆฌ. ๋‹จ์  : ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ ์œ„์ฃผ์—ฌ์„œ ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž์—๊ฒ ์•„์‰ฌ์›€ - ์ปค๋งจ๋“œ ๋ผ์ธ ์ธํ„ฐํŽ˜์ด์Šค(co..
yesolz
'๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Dev' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (6 Page)