ํ”„๋ ˆ์ž„์›Œํฌ vs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋…
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๋“ค์–ด๊ฐ€๋ฉด์„œ์•Œ๊ธฐ๋Š” ์•„๋Š”๋ฐ๋ˆ„๊ตฐ๊ฐ€ ๊ตฌ์ˆ ๋กœ ๋ฌผ์–ด๋ณด๋ฉด, ๋ญ”๊ฐ€ ์‹œ์›ํ•˜๊ฒŒ ๋Œ€๋‹ตํ•˜๊ธฐ ํž˜๋“  ์งˆ๋ฌธ."ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค๋ฅธ๊ฑฐ์•ผ?"์˜ค๋Š˜ ๋‹ตํ•ด๋ณธ๋‹ค..ํ”„๋ ˆ์ž„์›Œํฌ vs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๐Ÿ”ํ”„๋ ˆ์ž„์›Œํฌ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ชจ์Œ์ด๋‹ค.์†Œํ”„ํŠธ์›จ์–ด ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ํŠน์ • ์†Œํ”„ํŠธ์›จ์–ด ํ‘œ์ค€ ๋ฐ ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.๐Ÿ“š๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฏธ๋ฆฌ ๊ธฐ๋Šฅ๋“ค(์ฑ…)์„ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ก๋œ ์ฝ”๋“œ๋ฅผ ๋นผ์™€์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํด๋ž˜์Šค๋‚˜ ํ•จ์ˆ˜๊ฐ€ ๋ชจ์—ฌ์žˆ๋Š” ์ง‘ํ•ฉ์†Œ(๋„์„œ๊ด€)์ด๋‹ค.๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋งค๋ฒˆ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๊ธฐ์—” ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์ง€๋‹ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ชจ๋‘ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ..
[๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ] ์‰ฌ์šด ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ๋ณด๋Š” SOLID ์›์น™
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ”Ž ์ฃผ์ œ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—๋Š” 'SOLID' ์›์น™์ด ์žˆ๋‹ค. Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion ์ด 5๊ฐ€์ง€ ์›์น™์„ ๋งํ•˜๋Š”๋ฐ ์ž์„ธํ•œ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ 5๊ฐœ์˜ ๊ฐœ๋…์„ ๋ชจ๋‘ ๋ณด๊ณ ์ž ํ•œ๋‹ค.โœ… S: ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP)๋‹จ์ผ ์ฑ…์ž„ ์›์น™(Single Responsibility, SRP)๋Š” "ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค"๋Š” ์›์น™์ด๋‹ค.์ฑ…์ž„: ํด๋ž˜์Šค๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ณ€๊ฒฝ ์ด์œ ์‰ฝ๊ฒŒ๋Š” ํด๋ž˜์Šค๊ฐ€ ๋‹ด๋‹นํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํ•˜๋‚˜์˜ "์ผ"์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํด๋ž˜์Šค๋Š” ์ž์‹ ์ด ๋งก์€ ํŠน์ •ํ•œ "์ผ"๋งŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ๋‹จ ํ•œ๊ฐ€์ง€์˜ ์ด์œ ๋กœ๋งŒ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค.ํ•˜๋‚˜์˜ ํด๋ž˜์Šค..
[Git] git fetch์™€ git pull์˜ ์ดํ•ด
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ”Ž ์ฃผ์ œgit fetch์™€ git pull์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ๊ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•œ ์ƒํ™ฉ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.๋‘˜ ๋‹ค ์›๊ฒฉ์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ..? ์ •ํ™•ํžˆ๋Š” ์ž˜ ๋ชจ๋ฅด๊ณ  ๋ฌด์กฐ๊ฑด pull์„ ์ผ๋˜ ๊ณผ๊ฑฐ... ์˜ค๋Š˜์€ pull๊ณผ fetch์˜ ์ฐจ์ด๋ฅผ ๋‹ค๋ฃฌ๋‹ค.โœ… git pullgit pull์€ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ณด๋‹ค ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋” ์ตœ์‹  ์ปค๋ฐ‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋•Œ, ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋‚ด์šฉ์„ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.pull='์žก์•„๋‹น๊ธฐ๋‹ค'๋กœ ์›๊ฒฉ์˜ ๋‚ด์šฉ์„ ๋กœ์ปฌ๋กœ ์žก์•„๋‹น๊ธด๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.๋™๋ฃŒ ๊ฐœ๋ฐœ์ž์™€ ํ˜‘์—…์„ ํ•˜๋ฉฐ ์ฝ”๋“œ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ผ ์ค‘ ๋ฐ›๋Š”์ผ์— ํ•ด๋‹นํ•œ๋‹ค.์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์€์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋ฅผ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ(merge)..
[Git] git rebase์™€ git merge์˜ ์ดํ•ด
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
์•ˆ ๊ทธ๋ž˜๋„ ์ตœ๊ทผ Git Flow๋ฅผ ๋ฐฐ์šฐ๋ฉฐ rebase๊ฐ€ ํ—ท๊ฐˆ๋ ธ๋Š”๋ฐ ๋งˆ์นจ ์ด๋ฒˆ ์œ„ํด๋ฆฌ ํŽ˜์ดํผ ์ฃผ์ œ๊ฐ€ rebase๋ฅผ ๋‹ค๋ฃจ๊ฒŒ ๋๋‹ค. (์‚ฌ์‹ค ๋‚˜ ๊ฐ™์€ ์ดˆ๋ณด์ž๋Š” ์•„์ง ํŒ€์˜ ๋ฆฌํฌ์—์„œ merge๋งŒ ํ•ด๋ณผ ๋ฟ, rebase๋Š” ํ•œ ์ ์ด ์—†๋‹ค.)rebase์™€ merge๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์‹œ๋„ ์—ด์‹ฌํžˆ ์ž‘์„ฑํ–ˆ์œผ๋‹ˆ ๋‚˜ ๊ฐ™์€ ์ดˆ๋ณด๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ. ๐Ÿ”Ž ์ฃผ์ œgit rebase์™€ git merge์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ๊ฐ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•œ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์šฐ์„  ๊ฐ ๊ฐœ๋…์„ ์‚ดํŽด๋ณด์ž.๋” ์ต์ˆ™ํ•œ ๋จธ์ง€๋ฅผ ๋จผ์ € ์‚ดํŽด๋ณด๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. โœ… git mergegit merge๋ž€?๋ง ๊ทธ๋Œ€๋กœ ํ•ฉ์น˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ณดํ†ต ๋จธ์ง€๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.0. develop ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ feature1, feature2 ๋ธŒ๋žœ์น˜๋ฅผ..
[Git] Git Flow ์ „๋žต์˜ ์ดํ•ด์™€ ํ˜‘์—… ์‹œ ํ™œ์šฉ
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
velog์—์„œ ๋ณด๋Š” ๊ฒŒ ๋” ๊ฐ€๋…์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค :)velog link ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ด์šฉํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ๊ทœ์น™ ์—†์ด ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉดํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์•„์ฃผ ๋ณต์žกํ•ด์ง€๊ณ , ํŒ€์› ๊ฐ„์˜ ์†Œํ†ต๋„ ํž˜๋“ค์–ด์ง„๋‹ค.์˜ค๋Š˜์€ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ์ „๋žต ์ค‘ Git Flow์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.Git Flow๋ง ๊ทธ๋Œ€๋กœ flow, ํ๋ฆ„์ด๋‹ค.์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ๊ฐ ๋ธŒ๋žœ์น˜๋“ค์ด ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๊ฐ€ ์™„์„ฑ๋˜๋Š”์ง€์— ์ง‘์ค‘ํ•ด๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.๊ตฌ์„ฑ ๋ธŒ๋žœ์น˜main๋ฐฐํฌ(์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋˜๋Š”)ํ•˜๋Š” ์ฃผ ๋ธŒ๋žœ์น˜์ด๋‹ค.ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์•ˆ์ •์ ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.develop๋‹ค์Œ ์ถœ์‹œ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŒ€์›๋“ค์ด ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ชจ์œผ๋Š” ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜์ด๋‹ค.์ƒˆ ๊ธฐ๋Šฅ(feature)๋“ค๊ณผ ๋ฒ„๊ทธ ์ˆ˜์ •(release/hotfix)๋“ค์ด ๋ชจ์ด๋Š” ๋ธŒ๋žœ์น˜์ด๋‹ค...