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

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge/Git & GitHub (8)

Daehyunii's Dev-blog

08. Github

01. Github๋ž€? ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ์กฐ๊ธˆ์ด๋ผ๋„ ํ•œ ์‚ฌ๋žŒ๋“ค์ด๋ผ๋ฉด Github์— ๋Œ€ํ•ด์„œ ์ž˜ ์•Œ๊ณ  ์žˆ๊ฑฐ๋‚˜ ์ ์–ด๋„ ํ•œ ๋ฒˆ์€ ๋“ค์–ด๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค. hub๋Š” '์–ด๋–ค ์žฅ์†Œ์˜ ์ค‘์‹ฌ'์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ž˜์„œ Github๋Š” Git์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋“ค์„ ์˜จ๋ผ์ธ ๊ณต๊ฐ„์— ๊ณต์œ ํ•ด์„œ ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์„ฑ์›๋“ค์ด ํ•จ๊ป˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค์–ด ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์„œ๋น„์Šค์ด๋‹ค. ์ฆ‰, ํ˜‘์—…์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. github๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•จ๊ป˜ ํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ฐ€์žฅ ์ข‹์€ ์ ์€ ๋‹น์—ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ž‘์—…ํ•œ ๋‚ด์šฉ์„ github์— ์˜ฌ๋ฆฌ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์—…๋ฐ์ดํŠธํ•ด ๋†“์€ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ์ด์–ด๋ฐ›์•„ ๋‚ด๊ฐ€ ์ž‘์—…์„ ์ด์–ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋˜ github๋Š” ์‹œ๊ฐ„์ฐจ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์„ ์ „๋ถ€ ํ•ด๊ฒฐํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ๋™์ผํ•œ ๋‚ด์šฉ์„ ๋‚˜๋Š” ๋กœ..

07. ์ถฉ๋Œ ํ•ด๊ฒฐ

01. ํ•ฉ๋ณ‘์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ branch๋“ค์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. main bracnh์™€ test branch ๊ฐ๊ฐ ๊ฐ™์€ ์œ„์น˜์˜ ๋‚ด์šฉ์„ ๋ถ€๋ถ„ ์ˆ˜์ •ํ•ด์„œ commit์„ ํ•˜๊ฒŒ ๋˜๋ฉด, git์˜ ์ž…์žฅ์—์„œ๋Š” ์–ด๋–ค๊ฒŒ ๋” ์ค‘์š”ํ•œ ๋‚ด์šฉ์ธ์ง€ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ถฉ๋Œ ๋ฐœ์ƒ์‹œ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. VsCode๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ต‰์žฅํžˆ ์นœ์ ˆํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค. ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 02. merge ๋ฐฉ์‹์—์„œ ๋ฐœ์ƒํ•œ ์ถฉ๋Œ 1. ์ถฉ๋Œ์„ ๋จผ์ € ํ•ด๊ฒฐํ•œ๋‹ค. ์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฉด, vscode์—์„œ ์นœ์ ˆํ•˜๊ฒŒ ์–ด๋–ค ๋‚ด์šฉ์œผ๋กœ ํ•ฉ๋ณ‘์„ ํ•  ๊ฒƒ์ธ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐœ๋ฐœ์ž๋Š” ๋‚ด์šฉ์„ ์„ ํƒํ•˜์—ฌ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ๋‹ค.(Accept Current ..

06. Branch ํ•ฉ์น˜๊ธฐ

01. branch ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ• ์•ž์„œ branch๋ฅผ ์ƒ์„ฑํ•ด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋“ค์„ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ์ด์ œ ํ”„๋กœ๊ทธ๋žจ์— ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๋ฐ”๋กœ branch๋ฅผ ํ•ฉ์น˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ ๊ธฐ์กด ํ”„๋กœ๊ทธ๋žจ์— ๋‹ค๋ฅธ ์ฐจ์›์—์„œ ์ž‘์„ฑํ•œ ํŒŒ์ผ๋“ค์„ ๊ธฐ์กด ํ”„๋กœ๊ทธ๋žจ์— ํ•ฉ์น˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‘ ๊ฐœ์˜ ์ฐจ์›์„ ํ•˜๋‚˜์˜ ์ฐจ์›์œผ๋กœ ๋‚ด์šฉ์„ ํ•ฉ์ณ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. branch๋ฅผ ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. merge ๋ฐฉ์‹๊ณผ rebase ๋ฐฉ์‹์ด๋‹ค. merge ๋ฐฉ์‹์€ ๋‘ branch๋ฅผ ํ•˜๋‚˜์˜ commit์œผ๋กœ ์ด์–ด ๋ถ™์ด๋Š” ๊ฒƒ์ด๋‹ค. ์œ„ ์‚ฌ์ง„์˜ ๋ฐฉ์‹์ด merge๋ฐฉ์‹์ด๋‹ค. merge ๋ฐฉ์‹์€ branch ์‚ฌ์šฉ ๋‚ด์—ญ์„ ๋‚จ๊ธธ ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ ํ™œ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด main branch๊ฐ€ ์žˆ๊ณ  test branch๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. test branch..

05. Branch ์ƒ์„ฑํ•˜๊ธฐ

01. branch git์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋‘ ๋ฒˆ์งธ ์ด์œ ๋Š” ํ•˜๋‚˜์˜ ํด๋” ๋‚ด์—์„œ๋„ branch๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. branch๋ž€ ๋‹จ์–ด์˜ ๋œป ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ธฐ์กด์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด๊ฐ€ ๋– ์˜ค๋ฅด๊ฑฐ๋‚˜ ์ƒˆ๋กญ๊ฒŒ ์ ์šฉํ•  ๊ธฐ์ˆ ์„ ๊ฐœ๋ฐœํ• ๋•Œ ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ”๋กœ ์ ์šฉํ•ด ๋ณด๋Š”๊ฒƒ ๋ณด๋‹ค๋Š” ์ƒˆ๋กญ๊ฒŒ ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์ด ์ž˜ ์ž‘๋™์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ๋„์™€์ฃผ๋Š” ์—ญํ• ์ด ๋ฐ”๋กœ branch์ด๋‹ค. ์ฆ‰, ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋žจ์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์ƒˆ๋กœ์šด ๊ฐ€์ง€๋ฅผ ๋ป—์–ด ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋žจ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ๊ฐ€์ ธ์˜จ ํ›„ ์ดํ›„ ์ž‘์—…๋“ค์„ ๋ฏธ๋ฆฌ ์ง„ํ–‰ํ•ด ๋ณด๋Š” ๊ฒƒ์ด๋‹ค. ์œ„์˜ ์‚ฌ์ง„์„ ๋ณด๋ฉด ํŒŒ๋ž€์ƒ‰ ์„ ๊ณผ ๋นจ๊ฐ„์ƒ‰ ์„ ์ด ์žˆ๋‹ค. ํŒŒ๋ž€์ƒ‰ ์„ ์€ ์ฒ˜์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์ดํ›„์— ๊ณ„์†ํ•ด์„œ commit์„ ํ•ด์™”๋˜ ๊ฒƒ์ด๊ณ ,..

04. Git์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณผ๊ฑฐ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ

01. ๊ณผ๊ฑฐ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ ์•ž์„œ ๋งํ•œ๊ฒƒ ์ฒ˜๋Ÿผ git์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์‹œ๊ฐ„์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์ค‘ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๊ณผ๊ฑฐ ๋ฒ„์ „์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ๋ฒ„์ „์„ ๋ฐฑ์—…ํ•ด ๋†“๊ณ , ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ๋ฐฑ์—…ํ•ด ๋†“์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋งค์šฐ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด git์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ธ๋ฐ ๋ฐ”๋กœ git์„ ์‚ฌ์šฉํ•ด์„œ ์ด์ „ commit์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณผ๊ฑฐ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋ฐ”๋กœ reset ๋ฐฉ์‹๊ณผ revert ๋ฐฉ์‹์ด๋‹ค. 02. reset reset ๋ฐฉ์‹์€ ์›ํ•˜๋Š” ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ„ ๋’ค ์ดํ›„์˜ ๋‚ด์—ญ๋“ค์„ ๋‹ค ์ง€์šฐ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด v1 -> ..

03. Commitํ•˜๊ธฐ(๋ฒ„์ „ ๋งŒ๋“ค๊ธฐ)

01. ๋ณ€ํ™”๋“ค์„ commit ํ•˜๊ธฐ(๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ธฐ) git init ๋ช…๋ น์„ ํ†ตํ•ด gitํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  git์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”๋กœ ๋งŒ๋“ค์—ˆ๊ณ  ์ด์ œ๋Š” ๊ทธ๊ฒƒ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ์„  git์ด ํ˜„์žฌ ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ํŒŒ์ผ๋“ค์„ ์ „๋ถ€ ๊ด€๋ฆฌ๋Œ€์ƒ์ธ์ง€ ํ™•์ธ์„ ๋จผ์ € ํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ์•ž์—์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. git status ๋ช…๋ น์„ ํ†ตํ•ด ์ƒˆ๋กœ ์ž‘์—…์„ ํ–ˆ์ง€๋งŒ ์•„์ง git์ด ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ํŒŒ์ผ๋“ค์ด ์žˆ๋Š”์ง€ ๋จผ์ € ํ™•์ธํ•œ ํ›„, ๋งŒ์•ฝ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์ง€ ์•Š์€ ํŒŒ์ผ๋“ค์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด git์ด ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. git add (ํŒŒ์ผ๋ช….ํ™•์žฅ์ž) - ๊นƒ์ด ๊ด€๋ฆฌํ•˜๋Š” ํด๋” ์•ˆ์˜ ํ•ด๋‹น ํŒŒ์ผ์„ ๊นƒ์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค. git add . - ๊นƒ์ด ๊ด€๋ฆฌํ•˜๋Š” ํด๋” ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ..

02. Git ์‹œ์ž‘ํ•˜๊ธฐ

01. Git ์„ค์ • ๋ฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ์‹œ์ž‘ํ•˜๊ธฐ ์•ž์„œ ๋งํ–ˆ๋“ฏ์ด ๊นƒ์€ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋” ์‰ฝ๊ฒŒ ๋งํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด git์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๋ง ๊ทธ๋Œ€๋กœ git์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก CLI๋ฐฉ์‹์ธ ๊ฒฝ์šฐ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊นƒ์œผ๋กœ ๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์šฐ์„  VsCode์— git์œผ๋กœ ๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•  ํด๋”๋ฅผ ์—ด๊ณ , ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด์„œ ์•„๋ž˜ git init ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.(๋งฅ ํ„ฐ๋ฏธ๋„ ๋‹จ์ถ•ํ‚ค : control + `) git init - ํ•ด๋‹น ํด๋”๋ฅผ git์œผ๋กœ ๊ด€๋ฆฌ์‹œ์ž‘. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ƒˆ๋กœ์šด gitํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ˆจ๊ธด ํŒŒ์ผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆจ๊ธด ํŒŒ์ผ ๋ณด๊ธฐ๋ฅผ ํ†ตํ•ด์„œ gitํด๋”๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.(๋งฅ ์ˆจ๊ธด ํŒŒ์ผ ๋ณด๊ธฐ ๋‹จ์ถ•ํ‚ค : shift + c..

01. Git์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

01. git์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  git์€ vcs(version control system) ํ”„๋กœ๊ทธ๋žจ๋“ค ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ฆ‰ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด v.0.1๋“ฑ์˜ ๋ฒ„์ „ ํ‘œ๊ธฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ฒ„์ „๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ฆ‰ git์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด git์€ ๋ฌด์—‡์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ผ๊นŒ? ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๋ฐ”๋กœ '์‹œ๊ฐ„'์„ ๊ด€๋ฆฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด v1 -> v2 -> v3 -> v4์˜ ๋ฒ„์ „์ด ์—…๋ฐ์ดํŠธ ๋˜์—ˆ๋‹ค๊ณ  ๋ณด์•˜์„๋•Œ, v3๋ถ€๋ถ„์—์„œ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ๋‚˜์™€์„œ ๋ฐฑ์—…์„ ํ•ด๋†“๊ณ  ๋ณด์™„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋„ˆ๋ฌด ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค...