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

BackEnd๐ŸŒฑ/Etc29

์ž‘์—… ์ž„์‹œ ์ €์žฅํ•˜๊ธฐ IntelliJ์˜ Shelve ์„œ๋ก  ํŠน์ • branch์—์„œ ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ ๋‹ค๋ฅธ branch๋กœ ์ด๋™์„ ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ checkout์„ ํ†ตํ•ด branch๋ฅผ ์ด๋™์„ ์‹œ๋„ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด commit ํ˜น์€ stash๋ฅผ ๋จผ์ € ํ•˜๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ๋งŽ์ด ๋ณด์…จ์„ ๊ฒ๋‹ˆ๋‹ค. ํ˜น์€ IntelliJ IDE๋ฅผ ํ†ตํ•ด checkout๋ฅผ ์‹œ๋„ํ–ˆ์„ ๋•Œ๋Š” ์œ„์™€ ๊ฐ™์€ ์ฐฝ์ด ๋„์›Œ์ง€๋ฉฐ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋„๋ก ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์ €๋Š” git stash๋ฅผ ํ†ตํ•ด ์ž‘์—…์‚ฌํ•ญ์„ ์ž„์‹œ๋กœ ์ €์žฅํ–ˆ์œผ๋‚˜ ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ธ IntelliJ์˜ Shelve๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์•Œ๊ฒŒ ๋˜์–ด ์ •๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. IntelliJ Shelve ๋จผ์ € branch๋ฅผ checkout ํ•˜๊ธฐ ์ „ IntelliJ ์ขŒ์ธก์˜ Commit์„ ํ†ตํ•ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅํ•  ํŒŒ์ผ๋“ค์„ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋ˆŒ๋ ค ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ .. 2023. 1. 13.
๊ฐ€๋น„์•„ + Linux + Nginx + Cerbot/SSL์„ ํ™œ์šฉํ•œ https ์„ค์ • ์„œ๋ก  ๊ฐ€๋น„์•„ + Linux + Nginx + Cerbot/SSL์„ ํ™œ์šฉํ•œ https ์„ค์ •์— ๋Œ€ํ•ด ๋ฌธ์„œํ™”ํ•˜๊ณ ์ž ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ์›น ์„œ๋ฒ„: Nginx ์ธ์ฆ์„œ ๋ฐœ๊ธ‰: Cerbot/SSL ์šด์˜์ฒด์ œ: Amazone Linux ๋„๋ฉ”์ธ ๊ตฌ๋งค: ๊ฐ€๋น„์•„ ๋ชฉ์ฐจ ๋„๋ฉ”์ธ ๊ตฌ๋งค ๋ฐ ์„ค์ • Nginx ์„ค์น˜ ๋ฐ ์ˆ˜์ • Cetbot ์„ค์น˜ ๋ฐ SSL ๋ฐœ๊ธ‰ Proxy ์„ค์ • ์ธ์ฆ์„œ ์ž๋™ ๊ฐฑ์‹ (์„ ํƒ) 1. ๋„๋ฉ”์ธ ๊ตฌ๋งค ๋จผ์ € ๋„๋ฉ”์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ์€ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž…๋ ฅํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. https ์ ์šฉ์— ์žˆ์–ด์„œ ๋„๋ฉ”์ธ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์„ ๋•Œ ๋„๋ฉ”์ธ์ด ์•„๋‹ˆ๋ผ IP์ผ ๊ฒฝ์šฐ์—๋Š” ์ธ์ฆ์„œ ๋ฐœ๊ธ‰์ด ์ œํ•œ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋Š” ๊ต‰์žฅํžˆ ๋งŽ์ง€๋งŒ ์ €๋Š” ๊ทธ.. 2022. 12. 5.
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.