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

๋ชฉ๋ก์ „์ฒด ๊ธ€ (160)

Unfazedโ—๏ธ๐ŸŽฏ

[Java] ์Šค๋ ˆ๋“œ์˜ ๊ธฐ๋Šฅ๊ณผ ๋””๋ฒ„๊น…

1. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์˜ ๊ฐœ๋…๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. Java์—์„œ๋Š” Thread ํด๋ž˜์Šค์™€ Runnable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.์Šค๋ ˆ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด CPU ์ž์›์„ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋ฐ ์‘๋‹ต์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.2. ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ ์ƒ์„ฑํ•˜๊ธฐJava์—์„œ ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋จผ์ € Thread ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์ƒ์„ฑ์ž์— Runnable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•˜๊ณ , Runnable ์ธํ„ฐํŽ˜์ด์Šค์˜ run() ๋ฉ”์„œ๋“œ์— ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰ํ•  ๋กœ์ง์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.Thread thread = new Thread(new Runnable() { @Override public void run() { ..

Java 2025. 2. 6. 11:45
๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜, ์Šค์ผ€์ค„๋ง, ํ”„๋กœ์„ธ์Šค vs ์Šค๋ ˆ๋“œ

1. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์ด ํ•„์š”ํ•œ ์ด์œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์ด ํ•„์š”ํ•œ ์ฃผ์š” ์ด์œ ๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ์‘๋‹ต์„ฑ(Responsiveness)๊ณผ ์„ฑ๋Šฅ(Performance)์ด๋‹ค.1.1. ์‘๋‹ต์„ฑ(Responsiveness)์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ธก๋ฉด์—์„œ ์‘๋‹ต์„ฑ์€ ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ์„ ๊ฒฐ์ •ํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค.์‚ฌ๋ก€ 1: ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์—์„œ ๋Œ€๋Ÿ‰ ๊ตฌ๋งค ์š”์ฒญ์ด DB ์ž‘์—…์„ ์ง€์—ฐ์‹œํ‚ฌ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ์ฐจ๋‹จ๋จ → ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ๊ฐ ์š”์ฒญ์„ ๋ณ„๋„ ์Šค๋ ˆ๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋™์‹œ ์‘๋‹ต ๊ฐ€๋Šฅ์‚ฌ๋ก€ 2: ๋™์˜์ƒ ์žฌ์ƒ ์•ฑ๋ฉ”์ธ ์Šค๋ ˆ๋“œ: UI ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์›Œ์ปค ์Šค๋ ˆ๋“œ: ๋ฏธ๋””์–ด ๋””์ฝ”๋”ฉ ๋ฐ ์ถœ๋ ฅ → ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜ ์ง€์—ฐ ์—†๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ฒฝํ—˜ ์ œ๊ณต์ด๋Ÿฌํ•œ ๋™์‹œ์„ฑ(Concurrency)์€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ฌ์ง€์–ด ๋‹จ์ผ ์ฝ”์–ด์—์„œ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.1.2. ์„ฑ๋Šฅ(Performa..

[์ด์ง„ ํƒ์ƒ‰] int mid = left + (right - left) / 2;

์ด์ง„ ํƒ์ƒ‰์€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋งค ๋ฐ˜๋ณต๋งˆ๋‹ค ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์ด๋Š” ๊ณผ์ •์—์„œ ์ค‘๊ฐ„ ์ธ๋ฑ์Šค(mid)๋ฅผ ๊ณ„์‚ฐ์„ ๋‹จ์ˆœํ•˜๊ฒŒ (left + right) / 2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์˜ ์œ„ํ—˜์ด ์กด์žฌํ•œ๋‹ค.๊ฒฐ๋ก ๋งŒ ๋จผ์ € ๋งํ•˜๋ฉด, int mid = left + (right - left) / 2; ๋ฐฉ์‹์„ ๊ถŒ์žฅํ•œ๋‹ค.1. ๊ธฐ๋ณธ์ ์ธ ์ค‘๊ฐ„ ์ธ๋ฑ์Šค mid ๊ณ„์‚ฐ ๋ฐฉ์‹์ด์ง„ ํƒ์ƒ‰์—์„œ๋Š” ๊ฒ€์ƒ‰ ๋ฒ”์œ„์˜ ์–‘ ๋ ์ธ๋ฑ์Šค์ธ left์™€ right๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ค‘๊ฐ„ ์ธ๋ฑ์Šค๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.int mid = (left + right) / 2; ์ด ๋ฐฉ์‹์€ ๊ฐ„๋‹จํ•˜์ง€๋งŒ, left์™€ right๊ฐ€ ๋งค์šฐ ํฐ ๊ฐ’์ผ ๊ฒฝ์šฐ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.2. ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ณ€์ˆ˜์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ ..

HashSet/HashMap์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ ๋ฐ ์ค‘๋ณต ์ œ๊ฑฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜

HashSet์€ Java Collections Framework์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ, ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ง‘ํ•ฉ(Set) ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. 1. HashSet์˜ ์ฃผ์š” ํŠน์ง•์ค‘๋ณต ์š”์†Œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ : ๋ฐ์ดํ„ฐ ๋™๋“ฑ์„ฑ ํ™•์ธ์„ ์œ„ํ•œ equals(), hashCode() ๋ฉ”์„œ๋“œ ํ•„์š”์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ : ์ธ๋ฑ์Šค๊ฐ€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ฉ”์„œ๋“œ(get(int index), indexOf(Object o) ๋“ฑ)์ด ์—†์Œnull ์š”์†Œ ํ—ˆ์šฉ ๋น„๋™๊ธฐ(non-synchronized) ๊ตฌํ˜„O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ2. ๋‚ด๋ถ€ ๊ตฌ์กฐ 2-1) ์ฃผ์š” ํ•„๋“œ์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด HashSet์€ ๋‚ด๋ถ€์ ์œผ๋กœ HashMap์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค.HashSet์€ ์š”์†Œ๋“ค์„ HashMap์˜ key๋กœ ์ €์žฅํ•œ๋‹ค.๋ชจ๋“  ๊ฐ’์— ๋Œ€..

Java 2025. 1. 22. 11:59
Java Stream API - map() & flatMap()

Java 8์—์„œ ๋„์ž…๋œ Stream API๋Š” ์ปฌ๋ ‰์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ map()๊ณผ flatMap() ๋ฉ”์„œ๋“œ๋Š” ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜๊ณผ ์ฒ˜๋ฆฌ์— ์žˆ์–ด ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค. 1. map() Stream map( Function mapper // R : ์ถœ๋ ฅ ํƒ€์ž… (์ƒˆ๋กœ์šด ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ ํƒ€์ž…))map() ๋ฉ”์„œ๋“œ๋Š” ์ŠคํŠธ๋ฆผ์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋‹ค๋ฅธ ์š”์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” 1:1 ๋งคํ•‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ž…๋ ฅ ์š”์†Œ ํ•˜๋‚˜๋‹น ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์ถœ๋ ฅ ์š”์†Œ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.์ฃผ์š” ํŠน์ง•๊ฐ ์š”์†Œ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ณ€ํ™˜์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ ๊ฐœ์ˆ˜ ์œ ์ง€ (one-to-one)์›๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ณด์กด๋ฐ˜ํ™˜ ํƒ€์ž…: Stream (R์€ ๋ณ€ํ™˜๋œ ํƒ€์ž…)์˜ˆ์‹œ ์ฝ”๋“œ// ๋ฌธ์ž์—ด ๊ธธ์ด ๋ณ€ํ™˜List words = Arrays.asList("Java", "Stre..

Java 2025. 1. 20. 09:04
๋‹จ์ผ ์ฑ…์ž„ ์›์น™(Single Responsibility Principle, SRP)

SRP๋Š” SOLID ์›์น™ ์ค‘ ์ฒซ ๋ฒˆ์งธ ์›์น™์œผ๋กœ, ํ•œ ๊ฐœ์˜ ๋ชจ๋“ˆ์€ ์˜ค์ง ํ•œ ๊ฐœ์˜ ์•กํ„ฐ์—๋งŒ ์ฑ…์ž„์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค. A module should be responsible to one, and only one, actor.(Actor : ๋ชจ๋“ˆ์˜ ๋ณ€๊ฒฝ์„ ์š”๊ตฌํ•˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ดํ•ด๊ด€๊ณ„์ž๋‚˜ ์‚ฌ์šฉ์ž ๊ทธ๋ฃน)SRP์—์„œ ์ฑ…์ž„์˜ ์˜๋ฏธ ์ผ๋ฐ˜์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์—์„œ์˜ ์ฑ…์ž„(์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์—์„œ์˜ ์ฑ…์ž„)๊ฐ์ฒด๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ํ–‰๋™(behavior)์„ ์˜๋ฏธ๊ฐ์ฒด๊ฐ€ "๋ฌด์—‡์„ ์•Œ๊ณ "(knowing) "๋ฌด์—‡์„ ํ•˜๋Š”์ง€"(doing)๋ฅผ ๋‚˜ํƒ€๋ƒ„ํ˜‘๋ ฅ ๊ด€๊ณ„ ์†์—์„œ ๊ฐ์ฒด๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ญํ• ์„ ์˜๋ฏธ์ฃผ๋กœ ๋ฉ”์„œ๋“œ๋‚˜ ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ ์ฑ…์ž„์„ ์˜๋ฏธSRP์—์„œ์˜ ์ฑ…์ž„๋ณ€๊ฒฝ์˜ ์ด์œ (reason for change)๋ฅผ ์˜๋ฏธํŠน์ • ์•กํ„ฐ(์ดํ•ด๊ด€๊ณ„์ž)์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์˜๋ฏธ..

git fetch, git pull

๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ(๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ)๋ฅผ Clone ํ•  ๋•Œ git clone ๋ช…๋ น์€ ์ž๋™์œผ๋กœ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๋ฅผ "origin"์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๋Š” git remote ๋ช…๋ น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (-v ์˜ต์…˜์œผ๋กœ fetch์™€ push URL ํ™•์ธ ๊ฐ€๋Šฅ) ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž‘์—… ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ(main branch)์— ํ‘ธ์‰ฌํ–ˆ์„ ๋•Œ ๋กœ์ปฌ ์ €์žฅ์†Œ๋Š” ์ด๋ฅผ ๋ฐ”๋กœ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค.๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ธ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” fetch๋ฅผ ํ•ด์•ผ๋œ๋‹ค. git fetch๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์›๊ฒฉ ์ €์žฅ์†Œ(remote repository)์—์„œ ๋ฐ์ดํ„ฐ(๋ธŒ๋žœ์น˜, ํƒœ๊ทธ ๋“ฑ)์„ ๊ฐ€์ ธ์˜ด๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋Š” ๋กœ์ปฌ์˜ .git ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋˜์ง€๋งŒ, ์ž๋™์œผ๋กœ ๋ณ‘ํ•ฉ(merge)๋˜..

Git, GitHub 2025. 1. 10. 20:31
git rebase ๋™์ž‘ ๊ณผ์ •, ์ฃผ์˜์‚ฌํ•ญ, merge vs rebase

git rebase : ํ•œ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜ ์œ„๋กœ ์žฌ๋ฐฐ์น˜์‹œํ‚ค๋Š” ๋ช…๋ น์–ด Rebase์˜ ์žฅ์ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹์ด ์—†์–ด ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ์ข‹์ŒํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ปค๋ฐ‹๋“ค์„ ์—ฐ์†์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ์šฉ์ด Rebase ์‚ฌ์šฉ ์˜ˆ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐœ์˜ ๋ธŒ๋žœ์น˜๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํ•ฉ์น˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์—์„œ ์šฐ๋ฆฌ๋Š” merge ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.$ git chekcout mainSwitched to branch 'main'$ git merge experimentMerge made by the 'recursive' strategy.merge ๋ช…๋ น ์‹คํ–‰์‹œ ํ˜„์žฌ ๋ธŒ๋žœ์น˜(main)๊ฐ€๋ฆฌํ‚ค๋Š” ์ปค๋ฐ‹(c3)๊ฐ€ mergeํ•  ๋ธŒ๋žœ์น˜(experiment)์˜ ์กฐ์ƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ 3-way..

Git, GitHub 2025. 1. 10. 16:24
git merge, merge ์ข…๋ฅ˜(Fast-forward Merge, 3-way Merge), merge conflict ๋ฐœ์ƒ ์ด์œ  ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

git merge : ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•˜๋Š” ๋ช…๋ น์–ดmerge์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฐœ๋…1. ํŠน์ • commit์ด ์•„๋‹Œ branch๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒmerge ๋ช…๋ น์–ด๋Š” ์ „์ฒด branch์˜ ์ž‘์—… ๋‚ด์šฉ์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์ด์ง€, ๊ฐœ๋ณ„ commit์„ ์„ ํƒํ•ด์„œ mergeํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.branch๋Š” ์ผ๋ จ์˜ commit๋“ค์˜ ํฌ์ธํ„ฐ์ด๋ฉฐ, ๊ทธ ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹  ์ƒํƒœ(tip)๋ฅผ ๋Œ€ํ‘œํ•œ๋‹ค. 2. ํ•ญ์ƒ ํ˜„์žฌ HEAD ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉmerge ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ, ๋‹ค๋ฅธ branch์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํ˜„์žฌ ์ฒดํฌ์•„์›ƒ(checkout)๋œ branch(HEAD๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” branch)๋กœ ๋ณ‘ํ•ฉ๋œ๋‹ค.์ฆ‰, ํ•ญ์ƒ ํ˜„์žฌ branch ์ชฝ์œผ๋กœ ๋ณ‘ํ•ฉ ๋œ๋‹ค.ex) feature ๋ธŒ๋žœ์น˜๋ฅผ master์— ๋ณ‘ํ•ฉ(merge)ํ•˜๋ ค๋ฉด, ๋จผ์ € master ๋ธŒ..

Git, GitHub 2025. 1. 10. 14:31