๋ค์๊ณผ ๊ฐ์ด 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..