[๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
https://app.codecov.io/ codecov์— ๋กœ๊ทธ์ธํ•ด์„œ ๊นƒํ—ˆ๋ธŒ์™€ ์—ฐ๋™ํ•˜๋ฉด๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. (๋‚˜๋Š” ํผ๋ธ”๋ฆญ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ง„ํ–‰ํ•˜์—ฌ ํ”„๋ผ์ด๋น— ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.) ์›ํ•˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ณ ๋‚˜๋Š” GitHub Actions๋ฅผ ์ด์šฉํ•ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์—์…‹์—… ์˜ต์…˜์€ GitHub Options๋ฅผ ์„ ํƒํ–ˆ๋‹ค. ์•„๋งˆ codecov๋ฅผ ์ ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์€์Šคํ”„๋ง์—์„œ jacoco๋ฅผ ์ด๋ฏธ ์ ์šฉํ–ˆ์„ ๊ฒƒ์ด๋‹ค.๊ทธ๋Ÿฐ ๊ฒฝ์šฐ ๋‹ค์Œ ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค. ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›์•„ codecov์™€ ๋‚ด ๋ ˆํฌ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์˜ Setting > Security > Secrets and variables > Actions์—์„œ๋˜‘๊ฐ™์ด ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ๋„ˆ๋ฌด๋‚˜๋„ ์นœ์ ˆํ•˜๊ฒŒwor..
CI/CD ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿš€ CI: Continuous Integration๊นƒํ—ˆ๋ธŒ๋ฅผ ๋ชฐ๋ž๋˜ ์‹œ์ ˆ,ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด "๋‚ด๊ฐ€ A ๋ถ€๋ถ„์„ ํ• ๊ฒŒ, ๋„ค๊ฐ€ B ๋ถ€๋ถ„์„ ํ•ด!" ํ•˜๋ฉฐ์†Œ์Šค์ฝ”๋“œ ํŒŒ์ผ์„ ์ฃผ๊ณ ๋ฐ›์•„ ์™„์„ฑํ–ˆ๋˜ ์ ์ด ์žˆ๋‹ค.์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ผ ์ถฉ๋Œ๋„ ๊ฑฐ์˜ ์—†์—ˆ๊ณ , ์žˆ์–ด๋„ ๊ธˆ๋ฐฉ ๊ณ ์ณค์ง€๋งŒ์ง€๊ธˆ์ฒ˜๋Ÿผ ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ์ ํŠธ์—์„œ ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ˆˆ์•ž์ด ์บ„์บ„ํ•˜๋‹ค.์ด ์ฝ”๋“œ ๋ˆ„๊ฐ€ ์ž‘์„ฑํ–ˆ๋‚˜์š”?ํ…Œ์ŠคํŠธํ–ˆ๋‚˜์š”? ์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ์•ˆ ๋˜๋Š”๋ฐ์š”?์ฒด๊ณ„์ ์ธ ์ฝ”๋“œ ํ†ตํ•ฉ์˜ ํ•„์š”์„ฑ์„ ์‹ค๊ฐํ•˜๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„์ด๋‹ค.CI๋Š” Continuous Integration, ์ฆ‰ ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ผ๋Š” ์˜๋ฏธ๋กœ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋นŒ๋“œ๋˜๊ณ , ํ…Œ์ŠคํŠธ๋˜์–ด ๋ณ‘ํ•ฉ๋˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.๋Œ€ํ‘œ์ ์ธ CI ๋„๊ตฌ๋กœ Jenkins, GitHub Actions ๋“ฑ์ด ์žˆ๋‹ค.์ž๋™ํ™”๋œ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธCI ์„œ๋ฒ„ ํ˜น์€ ํŒŒ์ด..
์›น API: SOAP API, SOAP๊ณผ REST์˜ ์ฐจ์ด
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐ŸŽฏ ์ฃผ์ œ์›น API์˜ ๋ฐœ์ „ ๊ณผ์ •์—์„œ SOAP์—์„œ REST๋กœ์˜ ์ „ํ™˜์ด ์ผ์–ด๋‚œ ์ด์œ ์™€ ๊ทธ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์›น API๋จผ์ € ๊ฐ„๋‹จํ•˜๊ฒŒ API์™€ ์›น API์˜ ๊ฐœ๋…์„ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž. API?API(Application Programming Interface)์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์†Œํ”„ํŠธ์›จ์–ด)์ด ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์ธํ„ฐํŽ˜์ด์Šค์ด๋ฏ€๋กœ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ์ „๋ถ€ ์•Œ ํ•„์š” ์—†์ด, ์ •ํ•ด์ง„ ๋ฐฉ๋ฒ•(๋ฉ”์„œ๋“œ, ์—”๋“œํฌ์ธํŠธ ๋“ฑ)๋งŒ ๋”ฐ๋ฅด๋ฉด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.์‹๋‹น์—์„œ ์Œ์‹์„ ์ฃผ๋ฌธํ•  ๋•Œ๋ฅผ ๋– ์˜ฌ๋ ค๋ณด์ž. ๋ฉ”๋‰ดํŒ(API ๋ฌธ์„œ): ์†๋‹˜(์‚ฌ์šฉ์ž)์€ ๋ฉ”๋‰ดํŒ์„ ๋ณด๊ณ  ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์Œ์‹ ๋ชฉ๋ก์„ ํ™•์ธํ•œ๋‹ค.(๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ)์ฃผ๋ฌธ ์š”์ฒญ(์š”์ฒญ Request): ์†๋‹˜์€ ์›จ์ดํ„ฐ(API)๋ฅผ ํ†ตํ•ด "์Šคํ…Œ์ดํฌ ํ•˜๋‚˜ ์ฃผ์„ธ์š”!"๋ผ๊ณ  ์ฃผ๋ฌธํ•œ๋‹ค.์ฃผ๋ฐฉ ์ฒ˜๋ฆฌ(..
์›น ์„œ๋ฒ„(Web Server) vs WAS(Web Application Server) ๊ฐœ๋… ์ดํ•ด์™€ ์ฐจ์ด ๋น„๊ต feat. Tomcat
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ”Ž ์ฃผ์ œ์›น ์„œ๋ฒ„(Web Server)์™€ WAS(Web Application Server)๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฑธ๊นŒ?์›น ์„œ๋ฒ„(Web Server)์›น ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.์ž‘๋™ ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ URL์„ ์ž…๋ ฅํ•˜์—ฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์ด URL์ด ์›น ์„œ๋ฒ„์˜ ์ฃผ์†Œ ์‹๋ณ„์ž์ด๋‹ค.ํด๋ผ์ด์–ธํŠธ์™€ ์›น ์„œ๋ฒ„์˜ ํ†ต์‹  ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ๋Š” URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์Œ.ํด๋ผ์ด์–ธํŠธ๋Š” ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์œ„ํ•œ HTTP ์š”์ฒญ์„ ๋ณด๋ƒ„.์›น ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜์—ฌ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Œ.์›น ์„œ๋ฒ„๋Š” HTML ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ํŒŒ์ผ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ HTTP ํ˜•ํƒœ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•จ.์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•จ...
ํ”„๋ ˆ์ž„์›Œํฌ vs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋…
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๋“ค์–ด๊ฐ€๋ฉด์„œ์•Œ๊ธฐ๋Š” ์•„๋Š”๋ฐ๋ˆ„๊ตฐ๊ฐ€ ๊ตฌ์ˆ ๋กœ ๋ฌผ์–ด๋ณด๋ฉด, ๋ญ”๊ฐ€ ์‹œ์›ํ•˜๊ฒŒ ๋Œ€๋‹ตํ•˜๊ธฐ ํž˜๋“  ์งˆ๋ฌธ."ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค๋ฅธ๊ฑฐ์•ผ?"์˜ค๋Š˜ ๋‹ตํ•ด๋ณธ๋‹ค..ํ”„๋ ˆ์ž„์›Œํฌ vs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๐Ÿ”ํ”„๋ ˆ์ž„์›Œํฌ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ชจ์Œ์ด๋‹ค.์†Œํ”„ํŠธ์›จ์–ด ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ํŠน์ • ์†Œํ”„ํŠธ์›จ์–ด ํ‘œ์ค€ ๋ฐ ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.๐Ÿ“š๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฏธ๋ฆฌ ๊ธฐ๋Šฅ๋“ค(์ฑ…)์„ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ก๋œ ์ฝ”๋“œ๋ฅผ ๋นผ์™€์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํด๋ž˜์Šค๋‚˜ ํ•จ์ˆ˜๊ฐ€ ๋ชจ์—ฌ์žˆ๋Š” ์ง‘ํ•ฉ์†Œ(๋„์„œ๊ด€)์ด๋‹ค.๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋งค๋ฒˆ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๊ธฐ์—” ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์ง€๋‹ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ชจ๋‘ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ..
[Git] git fetch์™€ git pull์˜ ์ดํ•ด
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ”Ž ์ฃผ์ œgit fetch์™€ git pull์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ๊ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•œ ์ƒํ™ฉ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.๋‘˜ ๋‹ค ์›๊ฒฉ์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ..? ์ •ํ™•ํžˆ๋Š” ์ž˜ ๋ชจ๋ฅด๊ณ  ๋ฌด์กฐ๊ฑด pull์„ ์ผ๋˜ ๊ณผ๊ฑฐ... ์˜ค๋Š˜์€ pull๊ณผ fetch์˜ ์ฐจ์ด๋ฅผ ๋‹ค๋ฃฌ๋‹ค.โœ… git pullgit pull์€ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ณด๋‹ค ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋” ์ตœ์‹  ์ปค๋ฐ‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋•Œ, ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋‚ด์šฉ์„ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.pull='์žก์•„๋‹น๊ธฐ๋‹ค'๋กœ ์›๊ฒฉ์˜ ๋‚ด์šฉ์„ ๋กœ์ปฌ๋กœ ์žก์•„๋‹น๊ธด๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.๋™๋ฃŒ ๊ฐœ๋ฐœ์ž์™€ ํ˜‘์—…์„ ํ•˜๋ฉฐ ์ฝ”๋“œ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ผ ์ค‘ ๋ฐ›๋Š”์ผ์— ํ•ด๋‹นํ•œ๋‹ค.์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์€์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋ฅผ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ(merge)..
[Git] git rebase์™€ git merge์˜ ์ดํ•ด
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
์•ˆ ๊ทธ๋ž˜๋„ ์ตœ๊ทผ Git Flow๋ฅผ ๋ฐฐ์šฐ๋ฉฐ rebase๊ฐ€ ํ—ท๊ฐˆ๋ ธ๋Š”๋ฐ ๋งˆ์นจ ์ด๋ฒˆ ์œ„ํด๋ฆฌ ํŽ˜์ดํผ ์ฃผ์ œ๊ฐ€ rebase๋ฅผ ๋‹ค๋ฃจ๊ฒŒ ๋๋‹ค. (์‚ฌ์‹ค ๋‚˜ ๊ฐ™์€ ์ดˆ๋ณด์ž๋Š” ์•„์ง ํŒ€์˜ ๋ฆฌํฌ์—์„œ merge๋งŒ ํ•ด๋ณผ ๋ฟ, rebase๋Š” ํ•œ ์ ์ด ์—†๋‹ค.)rebase์™€ merge๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์‹œ๋„ ์—ด์‹ฌํžˆ ์ž‘์„ฑํ–ˆ์œผ๋‹ˆ ๋‚˜ ๊ฐ™์€ ์ดˆ๋ณด๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ. ๐Ÿ”Ž ์ฃผ์ œgit rebase์™€ git merge์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ๊ฐ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•œ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์šฐ์„  ๊ฐ ๊ฐœ๋…์„ ์‚ดํŽด๋ณด์ž.๋” ์ต์ˆ™ํ•œ ๋จธ์ง€๋ฅผ ๋จผ์ € ์‚ดํŽด๋ณด๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. โœ… git mergegit merge๋ž€?๋ง ๊ทธ๋Œ€๋กœ ํ•ฉ์น˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ณดํ†ต ๋จธ์ง€๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.0. develop ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ feature1, feature2 ๋ธŒ๋žœ์น˜๋ฅผ..
[Git] Git Flow ์ „๋žต์˜ ์ดํ•ด์™€ ํ˜‘์—… ์‹œ ํ™œ์šฉ
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
velog์—์„œ ๋ณด๋Š” ๊ฒŒ ๋” ๊ฐ€๋…์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค :)velog link ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ด์šฉํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ๊ทœ์น™ ์—†์ด ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉดํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์•„์ฃผ ๋ณต์žกํ•ด์ง€๊ณ , ํŒ€์› ๊ฐ„์˜ ์†Œํ†ต๋„ ํž˜๋“ค์–ด์ง„๋‹ค.์˜ค๋Š˜์€ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ์ „๋žต ์ค‘ Git Flow์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.Git Flow๋ง ๊ทธ๋Œ€๋กœ flow, ํ๋ฆ„์ด๋‹ค.์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ๊ฐ ๋ธŒ๋žœ์น˜๋“ค์ด ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๊ฐ€ ์™„์„ฑ๋˜๋Š”์ง€์— ์ง‘์ค‘ํ•ด๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.๊ตฌ์„ฑ ๋ธŒ๋žœ์น˜main๋ฐฐํฌ(์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋˜๋Š”)ํ•˜๋Š” ์ฃผ ๋ธŒ๋žœ์น˜์ด๋‹ค.ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์•ˆ์ •์ ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.develop๋‹ค์Œ ์ถœ์‹œ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŒ€์›๋“ค์ด ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ชจ์œผ๋Š” ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜์ด๋‹ค.์ƒˆ ๊ธฐ๋Šฅ(feature)๋“ค๊ณผ ๋ฒ„๊ทธ ์ˆ˜์ •(release/hotfix)๋“ค์ด ๋ชจ์ด๋Š” ๋ธŒ๋žœ์น˜์ด๋‹ค...