๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก2025/05 (10)

Soony's House

[Git/SourceTree] Sourcetree '์ž์‹ ์ปค๋ฐ‹ ์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜(Interactive Rebase) ์•ˆ ๋œธ' ํ•ด๊ฒฐํ•˜๊ธฐ

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์ž์‹์ปค๋ฐ‹์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜ ๋ฅผ ํด๋ฆญํ–ˆ๋Š”๋ฐ ํ…… ๋น„์–ด์žˆ๋‹ค. . Sourcetree์—์„œ ์ž์‹์ปค๋ฐ‹ ์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜(Interactive Rebase)๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ์ด์œ  1. ๋ธŒ๋žœ์น˜๊ฐ€ HEAD ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋ฐ˜๋“œ์‹œ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์— ์ฒดํฌ์•„์›ƒ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.Detached HEAD ์ƒํƒœ์—์„œ๋Š” ํ•ด๋‹น ๋ฉ”๋‰ด๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋œ๋‹ค. → Sourcetree ์ƒ๋‹จ์—์„œ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์„ ํƒ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. 2. ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹ ์ˆ˜๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜๋Š” ์ตœ์†Œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ปค๋ฐ‹์ด ์กด์žฌํ•ด์•ผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.์ปค๋ฐ‹์ด 1๊ฐœ ์ดํ•˜์ผ ๊ฒฝ์šฐ, ๋ฉ”๋‰ด๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค. 3. ๋ฉ”์ธ ๋ธŒ๋žœ์น˜(main/master)์—์„œ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ rebase๋Š” ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜(featur..

โš™๏ธERROR & CS/ERROR 2025. 5. 30. 15:48
[Node.js] Node.js ์ดˆ๊ธฐ ์„ค์ •, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ

Node.js๋Š” JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋‹ค. ๊ฐ„๊ฒฐํ•˜๊ณ  ์œ ์—ฐํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ฐ–์ถ”๊ธฐ ์œ„ํ•ด, ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ค์ •์€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. Node.js ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ํ•„์ˆ˜์ ์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํ•  ์„ค์ • ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด์žโ˜บ๏ธ 1. Node.js ์„ค์น˜Node.js๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ์„ค์น˜ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜, nvm(Node Version Manager)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. nvm์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ Node.js๋ฅผ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.# nvm ์„ค์น˜ (Mac/Linux ๊ธฐ์ค€)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash# ์›ํ•˜..

โš™๏ธBackend/NODE.JS 2025. 5. 28. 21:54
[React] useMemo (ft. ์žฌ์—ฐ์‚ฐ ์ตœ์ ํ™”)

๐Ÿ’ก์ตœ์ ํ™” ์ฝ”ํ…Œ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ๋„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ๋„ ํ•ญ์ƒ ์‹ ๊ฒฝ์จ์•ผํ•œ๋‹ค๊ณ  ๋ˆ„๋ˆ„ํžˆ ๋“ค์€ ์ฝ”๋“œ ์ตœ์ ํ™”.. ! ๋‘๋‘ฅ.. ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์—ญ์‹œ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ๋Š” '๋ Œ๋”๋ง๊ณผ ์—ฐ์‚ฐ'์ด ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.ํŠนํžˆ, ์ƒํƒœ( state) ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์ด๋‚˜ ๋ Œ๋”๋ง์ด ๋ฐ˜๋ณต๋˜๋ฉด ์ „์ฒด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์•กํŠธ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์ง€์–‘ํ•ด์•ผํ•  ์š”์†Œ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง2. ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์˜ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ3. ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์˜ ๋ถˆํ•„์š”ํ•œ ํ•จ์ˆ˜ ์žฌ์ƒ์„ฑ ์ด์ค‘ useMemo ํ›…์€ React์˜ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ๋ง‰์•„ ์ตœ์ ํ™”ํ•œ๋‹ค. ๐Ÿ’กuseMemo : ํŠน์ • ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜(memoization) ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ(์žฌ์—ฐ์‚ฐ)์„ ๋ฐฉ์ง€ํ•˜๋Š”..

โš™๏ธFrontend/REACT 2025. 5. 28. 15:55
[React] Props ์ „๋‹ฌ ์‹œ {} ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  / map() ํ•จ์ˆ˜

TodoList ์•ฑ ๊ฐœ๋ฐœ ์ค‘ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด ์ข‹์„ ๋‚ด์šฉ์ด ์ƒ๊ฒจ ์ •๋ฆฌํ•˜๊ธฐ:) ๋ชฉ์ฐจ1. Props์— {} ์ „๋‹ฌํ•˜๋Š”์ด์œ 2. map() ํ•จ์ˆ˜ 1. Props์— {} ์ „๋‹ฌ ํ•˜๋Š” ์ด์œ  ์ผ๋‹จ Props ๋ž€ ๋ฆฌ์•กํŠธ์—์„œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ props ๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ๋•Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค. 1. Props ์ „์ฒด๋ฅผ ๋ฐ›์Œ const List = (props) => { console.log(props.todos); // ์ ‘๊ทผํ•˜๋ ค๋ฉด props.todos} ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์„ ํ•˜์ง€ ์•Š๊ณ  ์ „๋‹ฌ props๋ฅผ ์ „๋‹ฌ ๋ฐ›์œผ๋ฉด, ๊ฐ์ฒด ํ˜•ํƒœ(object)๋กœ ์ „๋‹ฌ๋œ๋‹ค. { todos : [...] } ํ˜•ํƒœ๋กœ ์ „๋‹ฌ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.๊ฐ์ฒด(object)๋Š” key- value ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ..

โš™๏ธFrontend/REACT 2025. 5. 19. 17:53
[React] React Hook๊ณผ Custom Hook

๋ชฉ์ฐจ1. React Hook2. custom Hook 1. React Hook๐Ÿ’กHook์ด๋ž€? Hook์€ React์˜ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ƒ๋ช…์ฃผ๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜.๊ธฐ์กด์—๋Š” ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ๊ฐ€๋Šฅํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์„ ํ•จ์ˆ˜ํ˜•์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ค€ ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด๋‹ค. Hook์€ React 16.8์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ด๋ฉฐ,Hook์€ class๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ state์™€ ๋‹ค๋ฅธ React์˜ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค๊ณ  ํ•œ๋‹ค. โš™๏ธ ๋Œ€ํ‘œ์ ์ธ Hook ์ข…๋ฅ˜useState: ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๊ฐ’(state)์„ ์ €์žฅํ•˜๊ณ  ๋ณ€๊ฒฝuseEffect: ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ (๋งˆ์šดํŠธ, ์—…๋ฐ์ดํŠธ, ์–ธ๋งˆ์šดํŠธ ๋“ฑ) useRef, useContext, useReducer, us..

โš™๏ธFrontend/REACT 2025. 5. 14. 17:48
[React] useState์™€ useRef

๋ชฉ์ฐจ1. useState์™€ setํ•จ์ˆ˜2. ๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž… ํผ์œผ๋กœ ํ๋ฆ„ ์‚ดํŽด๋ณด๊ธฐ3. useRef React๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋ฉด์„œ ๊ฐ€์žฅ ๋จผ์ € ์ ‘ํ•˜๋Š” Hook์ด ๋ฐ”๋กœ useState์ด๋‹ค. useState๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ(state)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ์ด๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž… ํผ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด useState์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” set ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 1. useState์™€ setํ•จ์ˆ˜ โœ๏ธuseState- ์ปดํฌ๋„ŒํŠธ์— state ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” React Hook.- ์ƒํƒœ๊ฐ’์„ ๋งŒ๋“ค๊ณ , ์ด๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•œ๋‹ค. ๐Ÿ’ก์‚ฌ์šฉ๋ฒ•: ์ปดํฌ๋„ŒํŠธ์— state ์ถ”๊ฐ€ํ•˜๊ธฐ ์ปดํฌ๋„ŒํŠธ์˜ ์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ์—์„œ useState๋ฅผ ํ˜ธ..

โš™๏ธFrontend/REACT 2025. 5. 10. 17:37
[React] JSX ๋ž€? (ํŠน์ง•, CSS์ ์šฉ, className)

๋ชฉ์ฐจ1. JSX ๋ž€?2. JSX ํŠน์ง• ๋ฐ ์ฃผ์˜์‚ฌํ•ญ3. JSX์˜ CSS ์ ์šฉ4. JSX ์†์„ฑ ์‚ฌ์šฉ๋ฐฉ์‹ 1. JSX ๋ž€? JSX๋Š” JavaScript์— XML/HTML ํ˜•ํƒœ์˜ ๋งˆํฌ์—…์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” JavaScript ํ™•์žฅ ๋ฌธ๋ฒ• Javascript์— XML ํ˜•์‹์˜ ๋ฌธ๋ฒ•์„ ๊ฒฐํ•ฉํ•œ ํ˜•ํƒœReact์—์„œ๋Š” ๋ Œ๋”๋ง ๋กœ์ง๊ณผ UI ๋กœ์ง์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋ณด๊ธฐ ๋•Œ๋ฌธ์—, ๋‘˜์„ ํ•จ๊ป˜ ๊ตฌ์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•จ. 2. JSX ํŠน์ง• ๋ฐ ์ฃผ์˜์‚ฌํ•ญ ๐Ÿ’ก JSX์˜ ํŠน์ง• JS ํ‘œํ˜„์‹ ํฌํ•จ ๊ฐ€๋Šฅ์ค‘๊ด„ํ˜ธ {} ์•ˆ์— JavaScript ํ‘œํ˜„์‹ ์‚ฌ์šฉ ๊ฐ€๋Šฅ์˜ˆ: Hello, {name}JSX๋„ ํ‘œํ˜„์‹์ด๋‹ค!JSX๋Š” JavaScript ์ฝ”๋“œ์ฒ˜๋Ÿผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ฑฐ๋‚˜, ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜, ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜ ๊ฐ€๋Šฅ์†์„ฑ ์ •์˜๋ฌธ..

โš™๏ธFrontend/REACT 2025. 5. 8. 17:06