๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

BackEnd๐ŸŒฑ/Etc27

Spring Boot + GitHub Actions + AWS CodeDeploy๋ฅผ ํ™œ์šฉํ•œ CI/CD ๊ตฌ์ถ• ์„œ๋ก  ์ง€๊ธˆ๊นŒ์ง€ ๋งค๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ๋งˆ๋‹ค ์ด์ „ ์ฝ”๋“œ๋“ค์„ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ๋ด๊ฐ€๋ฉด์„œ CI/CD๋ฅผ ๊ตฌ์ถ•ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ธฐํšŒ์— ํ•œ๋ฒˆ ๋ฌธ์„œํ™”๋ฅผ ํ•ด๋ณด๊ณ ์ž ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. [CI/CD] CI/CD๋ž€?, ์ง€์†์  ํ†ตํ•ฉ(Continuous Integration) ๊ณผ ์ง€์†์  ๋ฐฐํฌ(Continuous Deployment) ์„œ๋ก  ํ˜„์žฌ ์ž๊ทธ๋งŒ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ˜‘์—…ํ•˜์—ฌ ์ง„ํ–‰ ์ค‘์ธ๋ฐ, ํŒ€์›๊ณผ ์ œ๋Œ€๋กœ branch ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ด ์ผ์–ด๋‚˜๋Š” ์—๋Ÿฌ์™€, ์ˆ˜์ž‘์—…์œผ๋กœ EC2์— ์ ‘์†ํ•˜์—ฌ ์ง์ ‘ ๋ฐฐํฌ๋ฅผ ํ•ด์•ผ ํ•˜๋Š” ์‚ฌ์†Œํ•˜์ง€๋งŒ ์ž‘์—…๋“ค์ด dkswnkk.tistory.com CI/CD๋ฅผ ์ ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์ด์ „์— ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€์ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ EC2๋Š” ์ƒ์„ฑ๋˜์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ EC2(Amazone.. 2022. 12. 4.
[GitHub] README.md์— ๋ธ”๋กœ๊ทธ ์ตœ์‹  ๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด GitHub README์— ๋‚ด ๋ธ”๋กœ๊ทธ ์ตœ์‹  ๊ธ€์„ ์ž๋™์œผ๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ณ  README์— ์ž‘์„ฑ๋˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ์ค€) ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Python์œผ๋กœ ๋ธ”๋กœ๊ทธ ํ”ผ๋“œ(RSS) ํฌ๋กค๋ง GitHub Actions๋ฅผ ํ™œ์šฉํ•˜์—ฌ Workflow ์ƒ์„ฑ 1. RSS ํฌ๋กค๋ง ํ…Œ์ŠคํŠธ ๋จผ์ € ํ‹ฐ์Šคํ† ๋ฆฌ ํ”ผ๋“œ๊ฐ€ ์ž˜ ๋ถˆ๋Ÿฌ์™€์ง€๋Š”์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. (ํ…Œ์ŠคํŠธ์ด๋ฉฐ, ํ•„์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค. 2๋ฒˆ์œผ๋กœ ๋„˜์–ด๊ฐ€์…”๋„ ๋ฉ๋‹ˆ๋‹ค.) import feedparser URL="https://dkswnkk.tistory.com/rss" # URL = "๋‚ด๋ธ”๋กœ๊ทธ ์ฃผ์†Œ/rss" RSS_FEED = feedparser.parse(URL) print(RSS_FEED) URL๋ถ€๋ถ„์— ์ž์‹ ์˜ ๋ธ”๋กœ๊ทธ ์ฃผ์†Œ๋ฅผ .. 2022. 8. 29.
CORS(๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ )๋ž€? ์„œ๋ก  ๋ฐฑ์—”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ํ”„๋ŸฐํŠธ ๊ฐœ๋ฐœ์ž์™€ ํ˜‘์—…์„ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ํ•œ ๋ฒˆ์ฏค์€ ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ CORS ์—๋Ÿฌ์— ๋Œ€ํ•ด ๋งž๋‹ฅ๋œจ๋ฆฐ ์ ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ CORS๊ฐ€ ๋ญ”์ง€, ๊ทธ๋ฆฌ๊ณ  ์™œ ๋ฐœ์ƒํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. SOP(Same Origin Policy) CORS๋ฅผ ์•Œ๊ธฐ ์ „์— ๋จผ์ € SOP๋ผ๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…(same-origin policy)์€ ์–ด๋–ค ์ถœ์ฒ˜(origin)์—์„œ ๋ถˆ๋Ÿฌ์˜จ ๋ฌธ์„œ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค๋ฅธ ์ถœ์ฒ˜์—์„œ ๊ฐ€์ ธ์˜จ ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•˜๋Š” ๋ณด์•ˆ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…์€ ์ž ์žฌ์ ์œผ๋กœ ํ•ด๋ฅผ ๋ผ์น  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ๊ณต๊ฒฉ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ถœ์ฒ˜(origin)๋Š” ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” URL์˜ .. 2022. 7. 14.
SSO(Single Sign-On) ํ†ตํ•ฉ์ธ์ฆ ์ด๋ž€? ์„œ๋ก  ํ˜„์žฌ ์ผํ•˜๊ณ  ์žˆ๋Š” ๊ณณ์—์„œ๋Š” ๋‚ด๋ถ€๋ง์—์„œ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ๋“ค์„ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•œ ์ ์€ ํ•œ ๋ฒˆ์˜ ๋กœ๊ทธ์ธ์œผ๋กœ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์‹œ์Šคํ…œ์„ ์žฌ ๋กœ๊ทธ์ธ ์—†์ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ธ SSO(Single Sign On) ์ธ์ฆ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ SSO(Single Sign On)์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. SSO๋ž€? SSO๋Š” Single-Sign-On์˜ ์•ฝ์ž๋กœ ํ•œ ๋ฒˆ์˜ ๋กœ๊ทธ์ธ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฌ์ดํŠธ๋“ค์„ ์žฌ ๋กœ๊ทธ์ธ ์—†์ด ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•˜๋ฉฐ, ํ†ตํ•ฉ์ธ์ฆ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์œ„ ์ด๋ฏธ์ง€๋Š” SSO๊ฐ€ ์•„๋‹Œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์€ ์„œ๋กœ ๊ฐ๊ฐ์˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐฉ์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์นด์นด์˜คํ†ก ๋กœ๊ทธ์ธ์„ ํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ํŽ˜์ด์Šค๋ถ์„ ์ถ”๊ฐ€์ ์ธ ๋กœ๊ทธ์ธ ์—†์ด ์ด์šฉํ•  ์ˆ˜ ์—†๊ณ , ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ.. 2022. 7. 13.
[GitHub] submodule ์‚ฌ์šฉํ•ด์„œ yml๊ณผ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด ์ˆจ๊ธฐ๊ธฐ ์„œ๋ก  ๋ณดํ†ต ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด GitHub ์ƒ์—์„œ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์ง€ ์•Š์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. Spring Boot๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ DB์˜ ๊ณ„์ • ๋“ฑ์„ ๋‹ด์„ .ymlํŒŒ์ผ๋“ค์„ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ž์ฒด๋ฅผ private๋กœ ์„ค์ •ํ•ด์„œ ๋…ธ์ถœ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ submodule์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ํด๋”๋งŒ private๋กœ ์„ค์ •ํ•ด์„œ ๋…ธ์ถœ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” git submodule์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ , Spring Boot ํ™˜๊ฒฝ์—์„œ ymlํŒŒ์ผ๋“ค์„ ์ˆจ๊ฒจ๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์ธ ๊ณผ์ • 1. public repository ์ƒ์„ฑ ๋จผ์ € ์œ„์™€ ๊ฐ™์ด public repository๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ €๋Š” ๊ธฐ์ดˆ์ ์ธ spring boot ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ.. 2022. 7. 10.
Sourcetree "permission denied (publickey)" error ํ•ด๊ฒฐ ๋ฌธ์ œ Sourcetree๋ฅผ ์ด์šฉํ•ด push๋ฅผ ํ•˜๋Š” ๊ณผ์ •์—์„œ "permission denied (publickey)" ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์ง„ํ–‰์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋Š” SSH ์ธ์ฆ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ 1. ssh-keygen "ํŒŒ์ผ ์ด๋ฆ„"์„ ์ž…๋ ฅํ•˜์—ฌ ์ƒˆ๋กœ์šด ssh๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๋น„๋ฐ€๋ฒˆํ˜ธ๊นŒ์ง€ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ์ง€์ •ํ•œ์ด๋ฆ„.pub ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. 2. cat ํŒŒ์ผ์ด๋ฆ„.pub์„ ํ†ตํ•ด์„œ ์ƒ์„ฑ๋œ ํ‚ค ๊ฐ’์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ง„ ๋ฌธ์ž๋งŒ ๋ณต์‚ฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 3. GitHub -> Settings -> SSH and GPG keys -> New SSH key์—์„œ 2๋ฒˆ์—์„œ ๋ณต์‚ฌํ•œ ํ‚ค๋ฅผ ์ž…๋ ฅํ•ด ์ค๋‹ˆ๋‹ค. 4.ssh-add -l ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. .. 2022. 7. 6.
[git] Git - HEAD Git Head ๋ชจ๋“  ๋ธŒ๋ Œ์น˜์—๋Š” HEAD๊ฐ’์ด ์กด์žฌํ•˜๋Š”๋ฐ, HEAD๋Š” ๋ธŒ๋ Œ์น˜์˜ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ์ฆ‰ ํ˜„์žฌ ์†ํ•œ ๋ธŒ๋žœ์น˜์˜ ๊ฐ€์žฅ ์ตœ์‹  ์ปค๋ฐ‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ํŠธ๋ฆฌ์— ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š” git ๋ช…๋ น์–ด๋“ค์€ ๋Œ€๋ถ€๋ถ„ HEAD๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ checkout์œผ๋กœ ์•ž๋’ค ์ด๋™ โญ๏ธ ^ ๋˜๋Š” ~: ๊ฐฏ์ˆ˜๋งŒํผ ํ•ด๋‹น ๋ธŒ๋ Œ์น˜์˜ ์ด์ „(์˜›๋‚ )์œผ๋กœ ์ด๋™ git checkout HEAD^ git checkout HEAD^^^ git checkout HEAD~5 โญ๏ธ -: ํ•ด๋‹น ๋ธŒ๋žœ์น˜์˜ ํ•œ ๋‹จ๊ณ„ ์ตœ๊ทผ ์ปค๋ฐ‹์œผ๋กœ ์ด๋™ git checkout - โญ๏ธ ์ปค๋ฐ‹ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋„ ์ด๋™ ๊ฐ€๋Šฅ git checkout (์ปค๋ฐ‹ํ•ด์‹œ) ์ปค๋ฐ‹ ํ•ด์‹œ๋Š” git log ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ‘์ค„ ๊ทธ์ธ ๊ณณ์—์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 2022. 7. 3.
[git] .gitignore ํ˜•์‹ ์ •๋ฆฌ ์„œ๋ก  .gitignore ํŒŒ์ผ์ด๋ž€ git version ๊ด€๋ฆฌ์—์„œ ์ œ์™ธํ•  ํŒŒ์ผ ๋ชฉ๋ก์„ ์„ค์ •ํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. .gitignore ํŒŒ์ผ์€ ํ•ญ์ƒ Project์˜ ์ตœ์ƒ์œ„ Directory์— ์œ„์น˜ํ•ด์•ผ ํ•˜๋ฉฐ ์‚ฌ์šฉ ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. '#'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ผ์ธ์€ ๋ฌด์‹œํ•œ๋‹ค. ํ‘œ์ค€ Glob ํŒจํ„ด์„ ์‚ฌ์šฉํ•œ๋‹ค. ์Šฌ๋ž˜์‹œ(/)๋กœ ์‹œ์ž‘ํ•˜๋ฉด ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ ์šฉ๋˜์ง€(recursivity) ์•Š๋Š”๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ์Šฌ๋ž˜์‹œ(/)๋ฅผ ๋์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ๋Š๋‚Œํ‘œ(!)๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒจํ„ด์˜ ํŒŒ์ผ์€ ๋ฌด์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ์ œ # ์ด๋ ‡๊ฒŒ #๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฃผ์„ # ๋ชจ๋“  file.c file.c # ์ตœ์ƒ์œ„ ํด๋”์˜ file.c /file.c # ๋ชจ๋“  .c ํ™•์žฅ์ž ํŒŒ์ผ *.c # .c ํ™•์žฅ์ž์ง€๋งŒ ๋ฌด์‹œํ•˜์ง€ ์•Š์„ ํŒŒ์ผ !not_ignore_this.c # .. 2022. 7. 2.
[CI/CD] CI/CD๋ž€?, ์ง€์†์  ํ†ตํ•ฉ(Continuous Integration) ๊ณผ ์ง€์†์  ๋ฐฐํฌ(Continuous Deployment) ์„œ๋ก  ํ˜„์žฌ ์ž๊ทธ๋งŒ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ˜‘์—…ํ•˜์—ฌ ์ง„ํ–‰ ์ค‘์ธ๋ฐ, ํŒ€์›๊ณผ ์ œ๋Œ€๋กœ branch ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ด ์ผ์–ด๋‚˜๋Š” ์—๋Ÿฌ์™€, ์ˆ˜์ž‘์—…์œผ๋กœ EC2์— ์ ‘์†ํ•˜์—ฌ ์ง์ ‘ ๋ฐฐํฌ๋ฅผ ํ•ด์•ผ ํ•˜๋Š” ์‚ฌ์†Œํ•˜์ง€๋งŒ ์ž‘์—…๋“ค์ด ์‹ ๊ฒฝ ์“ฐ์ด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด ํ”„๋กœ์ ํŠธ์— GitHub Action์„ ์ด์šฉํ•˜์—ฌ CI/CD๋ฅผ ์ ์šฉํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…๋“ค์„ ์ž๋™ํ™”์‹œ์ผœ์ฃผ๋Š” CI/CD์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ CI/CD ํˆด ์ค‘ GitHub Action์„ ์ด์šฉํ•œ CI/CD ์ ์šฉ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CI(Continuous Integration) CI(Continuous Integration)๋Š” "์ง€์†์ ์ธ ํ†ตํ•ฉ" ์ด๋ผ๋Š” ์˜๋ฏธ๋กœ, ์š”์•ฝํ•˜์ž๋ฉด ๋นŒ๋“œ/ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ.. 2022. 5. 31.

GitHub

LinkedIn

GitHub

LinkedIn