๐Ÿ‘ฉ‍๐Ÿ’ป 93

[React.js Hooks] useState, useEffect, useReducer

useState ๊ธฐ๋ณธ Hook์— ์†ํ•˜๋Š” useState. ์ƒํƒœ ์œ ์ง€ ๊ฐ’๊ณผ ๊ทธ ๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น์„ ํ†ตํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฒ˜์Œ ๋ Œ๋”๋ง์ด ๋œ ์‹œ์ ์— ๋ฐ˜ํ™˜๋œ state ๊ฐ’์€ useState์ด ๋‘ ๋ฒˆ์งธ ์ธ์ž ๊ฐ’๊ณผ ๊ฐ™๋‹ค. ์ฝ”๋“œ ์ƒ๋‹จ์— useState๋ฅผ importํ•ด์ค€ ๋’ค, ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์— const \[value, setValue\] = useState(0); ๋กœ value์˜ ์ดˆ๊ธฐ ์ƒํƒœ๊ฐ’์„ useState์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค. ์ดํ›„, +1, -1์ด๋ผ๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ๋Š” setValue ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ธฐ์กด value์— 1์„ ๋”ํ•œ ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ, ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค. setValue ํ•จ์ˆ˜๋Š” ์ƒˆ๋กœ์šด state ๊ฐ’์„ ์ธ์ž๋กœ ๋ฐ›์•„ ์ปดํฌ๋„ŒํŠธ Re-rendering์„ ์‹œํ‚จ๋‹ค. ์ดํ›„ ๋ Œ..

[React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #5 ์–ธ์–ด ์„ค์ •์„ ์œ„ํ•œ react-i18next ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ/๊ตญ์ œํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(i18n)

2021/02/21 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #4 Window.scrollY/window.pageYOffset 2021/02/16 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #3 master ๋ธŒ๋žœ์น˜๋กœ ํ†ตํ•ฉํ•˜๊ธฐ/github pages์— ์žฌ๋ฐฐํฌํ•˜๊ธฐ 2021/02/13 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #2 react router ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ 2021/02/09 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #1 Figma ํ”„๋กœํ† ํƒ€์ดํ•‘/๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…/Grommet UI Library/useState/Responsive Hea..

[ES2020] Nullish Coalescing Operator (null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??)

๊ธฐ์กด || ์—ฐ์‚ฐ์ž์˜ ํ•œ๊ณ„์  function isEnabled(options) { return console.log(options.enabled || true) } isEnabled({}); // true isEnabled({enabled: null}); // true isEnabled({enabled: false}); // true ์†์„ฑ ๊ฐ’์ธ false๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ณ  true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. || ์—ฐ์‚ฐ์ž๋Š” ์ขŒํ•ญ์ด falsyํ•œ ๊ฒฝ์šฐ ๋ฌด์กฐ๊ฑด ์šฐํ•ญ์„ ํƒํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” null, undefined๋ฟ ์•„๋‹ˆ๋ผ false, 0, "", NaN ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐ’์„ falsyํ•˜๊ฒŒ ์—ฌ๊ธด๋‹ค. ๋˜ํ•œ || ์—ฐ์‚ฐ์ž๋Š” ์ฒซ ๋ฒˆ์งธ truthy ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด(์กด์žฌํ•  ๊ฒฝ์šฐ), ??๋Š” ์ฒซ ๋ฒˆ์งธ defined value..

๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ : WebStorage(localStorage์™€ SessionStorage) & Cookie #2

WebStorage์˜ API - ๋‘ ๊ฐ์ฒด ๋ชจ๋‘ ๋™์ผํ•œ ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ–๋Š”๋‹ค. setItem(key, value) // ํ‚ค-์Œ์„ ๋ณด๊ด€ getItem(key) // ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค. removeItem(key) // ํ‚ค์™€ ํ•ด๋‹น ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค. clear() // ๋ชจ๋“  ๊ฒƒ์„ ์‚ญ์ œํ•œ๋‹ค. key(index) // ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค๋ฅผ ๋ฐ›์•„์˜จ๋‹ค. length // ์ €์žฅ๋œ ํ•ญ๋ชฉ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ›์•„์˜จ๋‹ค. - ๋‘ ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋Š” setItem/getItem/removeItem ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์•„ Map๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ํ‚ค์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค๋ฅด๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. - ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋Š” origin(domain/port/protocol)์— ๋ฌถ์—ฌ ์žˆ๋‹ค. (ํ”„๋กœํ† ์ฝœ๊ณผ ์„œ๋ธŒ ๋„๋ฉ”์ธ์ด ๋‹ค๋ฅด..

๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ : WebStorage(localStorage์™€ SessionStorage) & Cookie #1

Vuex๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ state์— ์ €์žฅํ•˜๊ณ , ํŽ˜์ด์ง€๊ฐ€ ์ „ํ™˜๋˜์–ด๋„ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋‹ค๊ฐ€, vuex์˜ state๋ฅผ localStorage๋กœ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vuex-persistedState๋ฅผ ์‚ฌ์šฉํ•ด๋ดค๋‹ค. ์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์‚ฌ์ด๋“œ๋ฐ”์— ์œ ์ € ์ •๋ณด๊ฐ€ ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฐ˜์˜์ด ์•ˆ ๋˜๊ฑฐ๋‚˜, ๋ Œ๋”๋ง์ด ์›ํ•˜๋Š” ํƒ€์ด๋ฐ์— ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, Vue.js๊ฐ€ ์•„๋ฌด๋ž˜๋„ SPA๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋‹ค๋ณด๋‹ˆ, ์ด๋Ÿฐ ์ƒํ™ฉ์ด ์•ž์œผ๋กœ๋„ ์ž์ฃผ ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์€ HTML5์— ํฌํ•จ๋œ ์ž๋ฃŒ ๊ตฌ์กฐ์ธ Web Storage์˜ localStorage, sessionStorage๊ฐ€ ์žˆ๋‹ค. ์ฟ ํ‚ค์™€ ๊ฐœ๋…์ด ๋น„์Šทํ•˜์ง€๋งŒ, ์ฟ ํ‚ค์—์„œ ์กฐ๊ธˆ ๋” ๊ฐœ์„ ์ ์„ ๊ฐ€์ง€๋Š”..

[React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #4 Window.scrollY/window.pageYOffset

2021/02/09 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #1 Figma ํ”„๋กœํ† ํƒ€์ดํ•‘/๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…/Grommet UI Library/useState/Responsive Header ๋งŒ๋“ค๊ธฐ 2021/02/13 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #2 react router ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ 2021/02/16 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #3 master ๋ธŒ๋žœ์น˜๋กœ ํ†ตํ•ฉํ•˜๊ธฐ/github pages์— ์žฌ๋ฐฐํฌํ•˜๊ธฐ ์ด์Šˆ ์ž‘์—…๋ฌผ์˜ Preview ์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ™•๋Œ€๋˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ, ์ด๋ฏธ์ง€๋ฅผ ๋‹ซ๊ณ  ์›๋ž˜ ํŽ˜์ด์ง€๋กœ ๋Œ์•„์˜ค๋ฉด, ๋ธŒ๋ผ์šฐ์ € ์ƒ๋‹จ์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ..

[Programmers] ์†Œ์ˆ˜ ์ฐพ๊ธฐ, ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

๋ฌธ์ œ 1๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž n ์‚ฌ์ด์— ์žˆ๋Š” ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. ์†Œ์ˆ˜๋Š” 1๊ณผ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋งŒ ๋‚˜๋ˆ„์–ด์ง€๋Š” ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.) ์ œํ•œ ์กฐ๊ฑด n์€ 2์ด์ƒ 1000000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ํ’€์ด ์ฃผ์–ด์ง„ ์ˆซ์ž๊ฐ€ ๋ฐฐ์—ด ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ, ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋“ฑ์žฅ์‹œ์ผœ์„œ ์†Œ์ˆ˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ˆซ์ž ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค. 1์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ œ์™ธ๊ฐ€ ๋˜๋‹ˆ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด n๊นŒ์ง€ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ค€๋‹ค. ์ด๋•Œ arr[0], arr[1]์€ ์ฑ„์›Œ์ง€์ง€ ์•Š์•„์„œ undefined์ด ๋  ๊ฒƒ์ด์ง€๋งŒ, ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜์ด๋ฏ€๋กœ filter ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์ง€์›Œ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ๋“ค์–ด์ง„ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆ˜๋“ค์„ ์ œ๊ฑฐํ•ด์ค„ ๋ชฉ์ ์œผ๋กœ 0์„ ๋„ฃ์–ด์ค€๋‹ค. i = 2์ผ ๋•Œ, i๋ฒˆ์งธ์— ์œ„์น˜..

[Programmers] JavaScript์—์„œ ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

๋ฌธ์ œ ๋ฌธ์ž์—ด s์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ž๋ฅผ ํฐ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. s๋Š” ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ str์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ ZbcdefggfedcbZ ์ฝ”๋“œ ํ’€์ด JavaScript์˜ sort() ๋ฉ”์†Œ๋“œ๋Š” ๋ฌธ์ž์—ด์˜ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ์œ ๋‹ˆ์ฝ”๋“œ์—์„œ๋Š” ๋Œ€๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž๋ณด๋‹ค ํฌ๋ฏ€๋กœ, ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์— sort() ๋ฉ”์†Œ๋“œ๋ฅผ ์ ์šฉํ•˜๋ฉด abcdef...ABCD... ์ˆœ์œผ๋กœ ์ •๋ ฌ๋  ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ reverse() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋’ค์ง‘์œผ๋ฉด ZYXW... fedcba ์ˆœ์œผ๋กœ ์ •๋ ฌ๋  ๊ฒƒ์ด๋‹ค. ๋Œ€๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฏ€๋กœ reverse() ๋ฉ”์„œ๋“œ๋กœ ๋์ด ..

[Programmers] JavaScript ํฌ๋ ˆ์ธ ์ธํ˜• ๋ฝ‘๊ธฐ ๊ฒŒ์ž„

๋ฌธ์ œ ๊ฒŒ์ž„ ํ™”๋ฉด์€ 1 x 1 ํฌ๊ธฐ์˜ ์นธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ N x N ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž ์œ„์ชฝ์—๋Š” ํฌ๋ ˆ์ธ์ด ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ์—๋Š” ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋ชจ๋“  ์ธํ˜•์€ 1 x 1 ํฌ๊ธฐ์˜ ๊ฒฉ์ž ํ•œ ์นธ์„ ์ฐจ์ง€ํ•œ๋‹ค. ๊ฒŒ์ž„ ์‚ฌ์šฉ์ž๋Š” ํฌ๋ ˆ์ธ์„ ์ขŒ์šฐ๋กœ ์›€์ง์—ฌ์„œ ๋ฉˆ์ถ˜ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ธํ˜•์„ ์ง‘์–ด ์˜ฌ๋ฆฌ๊ณ , ์ง‘์–ด ์˜ฌ๋ฆฐ ์ธํ˜•์€ ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์ด๊ฒŒ ๋˜๋Š” ๋ฐ, ์ด๋•Œ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ฐ€์žฅ ์•„๋ž˜ ์นธ๋ถ€ํ„ฐ ์ธํ˜•์ด ์ˆœ์„œ๋Œ€๋กœ ์Œ“์ธ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ board ๋ฐฐ์—ด์€ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ํฌ๊ธฐ๋Š” 5 x 5 ์ด์ƒ 30 x 30 ์ดํ•˜์ž…๋‹ˆ๋‹ค. board์˜ ๊ฐ ์นธ์—๋Š” 0 ์ด์ƒ 100 ์ดํ•˜์ธ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค. 0์€ ๋นˆ ์นธ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 1 ~ 100์˜ ๊ฐ ์ˆซ์ž๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ธํ˜•์˜ ๋ชจ์–‘์„ ์˜๋ฏธํ•˜๋ฉฐ ๊ฐ™์€ ์ˆซ์ž๋Š” ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. moves ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” 1 ์ด์ƒ ..

[React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #3 master ๋ธŒ๋žœ์น˜๋กœ ํ†ตํ•ฉํ•˜๊ธฐ/github pages์— ์žฌ๋ฐฐํฌํ•˜๊ธฐ

2021/02/09 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #1 Figma ํ”„๋กœํ† ํƒ€์ดํ•‘/๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…/Grommet UI Library/useState/Responsive Header ๋งŒ๋“ค๊ธฐ 2021/02/13 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #2 react router ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ Github Pages์— ๋ฐฐํฌ๋œ ๊ธฐ์กด portfolio๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด์„œ second ๋ผ๋Š” ์ด๋ฆ„์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ž‘์—…์ด ์–ด๋Š ์ •๋„ ๋๋‚˜์„œ second ๋ธŒ๋žœ์น˜๋ฅผ master ๋ธŒ๋žœ์น˜๋กœ ์•„์˜ˆ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. git checkout second git merge -s ours master git checkout ..