๐Ÿ€ etc 5

SOLID ์›์น™

SOLID๋ž€? ์›์น™์€ ๊ฐ€์น˜๋ฅผ ์ง€ํ‚ค๊ธฐ์œ„ํ•ด์„œ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐ€์น˜์—๋Š” ๋ฌด์—ˆ์ด ์žˆ์„๊นŒ? ์ฒซ๋ฒˆ์งธ๋กœ๋Š” ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ์ฝ”๋“œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ํ•˜๋ฉฐ, ์ฝ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋Š” ๊ฐ€์น˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‘๋ฒˆ์งธ๋กœ๋Š” ๋‹จ์ˆœํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์— ๋„์›€์ด ๋˜๊ณ , ๋ฒ„๊ทธ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์ ์–ด์ง€๋ฉฐ, ์ถ”ํ›„ ์ฝ”๋“œ์˜ ์ˆ˜์ •์— ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ๋Š” ์ฝ”๋“œ๋Š” ์œ ์—ฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฒฝ์ง๋œ ์ฝ”๋“œ๋Š” ์œ ์ง€ ๋ณด์ˆ˜๋ฅผ ์–ด๋ ต๊ฒŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์œ„์— ์–ธ๊ธ‰ํ•œ ์Šคํ”„ํŠธ์›จ์–ด์˜ ๊ฐ€์น˜๋“ค์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›์น™์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋•Œ ์ด๋Ÿฌํ•œ ๊ฐ€์น˜๋“ค์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ๊ฒƒ์ด SOLID์›์น™์ด๋‹ค S: Single Responsiblity Principle (๋‹จ์ผ ์ฑ…์ž„ ์›์น™) O: Ope..

๐Ÿ€ etc 2022.05.19

[UML] ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ (Sequense Diagram)

Sequense Diagram ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ์ฒด๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€๋งŒ, ์‹œ๊ฐ„์˜ ํ๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ์„ ํ•œ๋‹ค. Actor ์‚ฌ๋žŒ์ด๋‚˜ ์™ธ๋ถ€์‹œ์Šคํ…œ์„ ์˜๋ฏธ ํ•˜๋ฉฐ, ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ์™ธ๋ถ€์š”์†Œ์ด๋‹ค. LifeLine ๋ชจ๋ธ๋ง ๋˜๋Š” ๊ฐ๊ฐ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ ์„ ์˜ ์•„๋ž˜๋กœ ๊ฐˆ์ˆ˜๋ก ์‹œ๊ฐ„์˜ ๊ฒฝ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„ Activations LifeLine์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹ค์ œ๋กœ ์ธ์Šคํ„ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋ฉฐ ํ™œ์„ฑํ™”๋˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. Message ๊ฐ์ฒด๊ฐ„ ์ฃผ๊ณ  ๋ฐ›์€ ๋ฐ์ดํ„ฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์š”์ฒญ(request)๊ณผ ์‘๋‹ต(response)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ฉ”์„ธ์ง€ ์œ ํ˜• 1.๋น„๋™๊ธฐ ๋ฉ”์„ธ์ง€ ๋ฉ”์‹œ์ง€ ์ „์†ก ๊ฐ์ฒด๊ฐ€ ๊ณ„์†ํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋™๊ธฐ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆผ. ํ”„..

๐Ÿ€ etc 2022.05.18

[UML] ํด๋ž˜์Šค ๋‹ค์ด์–ด ๊ทธ๋žจ (Class Diagram)

UML ์ด๋ž€? ์•„ํŒŒํŠธ ์‹œ๊ณต์‚ฌ๊ฐ€ ์ž์‹ ๋“ค์ด ์ง€์œผ๋ ค๋Š” ์•„ํŒŒํŠธ๋ฅผ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋ ค ๋ชจ๋ธ ํ•˜์šฐ์Šค๋ฅผ ์ง“๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ๋„ ๊ฐœ๋ฐœ ์ด์ „์— ๋ชจ๋ธ์„ ๋งŒ๋“ ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด UML์ด๊ณ , ์ด๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฒ”์šฉ ๋ชจ๋ธ๋ง ์–ธ์–ด๋ผ๋Š” ๋œป์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ํ‘œ์ค€์–ธ์–ด๋ผ๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด UML์„ ์ž‘์„ฑํ•˜๋ฉด ์ข‹์€ ์ ์ด ๋ฌด์—‡์ด ์žˆ์„๊นŒ? ํƒ„ํƒ„ํ•˜๊ฒŒ ๊ตฌํ˜„ ๋œ ๋ชจ๋ธ์€ ์ข‹์€ ์•„ํ‚คํ…์ฒ˜์˜ ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค. ํ”„๋กœ์ ํŠธ ํŒ€์›๋“ค๊ฐ„์— ์˜์‚ฌ์†Œํ†ต์„ ์›ํ™œํ•˜๊ฒŒ ๋„์™€์ค€๋‹ค. ํ•œ๋ฒˆ์— ์ดํ•ดํ•˜๊ธฐ ํž˜๋“  ์‹œ์Šคํ…œ์„ ์‹œ๊ฐ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์ดํ•ด๋ฅผ ๋„์™€์ค€๋‹ค. Class DIagram ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๊ฐ์ฒด์ง€ํ–ฅํ˜• ์‹œ์Šคํ…œ ์„ค๊ณ„์—์„œ, ์‹œ์Šคํ…œ์˜ ๋…ผ๋ฆฌ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ํด๋ž˜์Šค๋“ค์˜ ์กด์žฌ์™€ ๊ทธ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ๋„์‹ํ™” ํ•œ ๊ฒƒ์ด๋‹ค. ๊ด€๊ณ„์˜ ์ข…๋ฅ˜ Asso..

๐Ÿ€ etc 2022.05.18

์ž์ฃผ์“ฐ๋Š” git ๋ช…๋ น์–ด

git init : ๊นƒ ์ดˆ๊ธฐํ™” git config --global user.name "์œ ์ € ์ด๋ฆ„" : ๊นƒ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์„ค์ • git config --global user.email "์ด๋ฉ”์ผ ์ฃผ์†Œ" : ๊นƒ ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ์„ค์ • git config --global core.editor "vim" : ์ปค๋ฐ‹ ํŽธ์ง‘์—๋””ํ„ฐ๋ฅผ vim์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ git add ํŠน์ •ํŒŒ์ผ๋ช… : ํŠน์ •ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ํ•˜๊ธฐ git add . : ์ „์ฒด ํŒŒ์ผ ์Šคํ…Œ์ด์ง• ํ•˜๊ธฐ git commit -m "๋ฉ”์„ธ์ง€ ๋‚ด์šฉ" : ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ์ปค๋ฐ‹ํ•˜๊ธฐ git commit -am "๋ฉ”์„ธ์ง€ ๋‚ด์šฉ" : ์Šคํ…Œ์ด์ง•๊ณผ ์ปค๋ฐ‹์„ ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ์˜ฌ๋ฆฌ๊ธฐ git commit --amend : ๋ฐฉ๊ธˆ ์ปค๋ฐ‹ํ•œ ๋ฉ”์„ธ์ง€ ์ˆ˜์ •ํ•˜๊ธฐ git branch : ๋ธŒ๋žœ์น˜ ํ™•์ธ git branch ๋ธŒ๋žœ์น˜..

๐Ÿ€ etc 2022.04.12

Git ๊ฐœ๋… / ์šฉ์–ด ์ •๋ฆฌ

master git์ด ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ branch ์ด๋‹ค. ์ด ๊ณณ์— ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ถ”๊ฐ€ ํ•œ๋‹ค๊ฑฐ๋‚˜, ์ถ”๊ฐ€ํ•œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ทธ ๋‚ด์šฉ์„ ์ €์žฅ(์ปค๋ฐ‹, Commit)ํ• ์ˆ˜ ์žˆ๋‹ค. branch ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ชจ์–‘์œผ๋กœ ๋ถ„๊ธฐ ํ•˜์—ฌ ์ž‘์—…์„ ์‹คํ–‰ ํ•ด์•ผ ํ• ๋•Œ ๋…๋ฆฝ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ–‰ํ•ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉ ํ•ด์•ผ ํ• ๋•Œ merge ๋‘ ๋ธŒ๋žœ์น˜๋ฅผ ํ•œ๊ฐœ์˜ ์ปค๋ฐ‹์— ์ด์–ด ๋ถ™์ธ๋‹ค. ๋ธŒ๋žœ์น˜ ์‚ฌ์šฉ ๋‚ด์—ญ์„ ๋‚จ๊ฒจ์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ ํ•œ๋‹ค. rebase ํ•œ ์ค„๋กœ ๊น”๋”ํžˆ ์ •๋ฆฌ๋œ ๋‚ด์—ญ์„ ์œ ์ง€ํ•˜๊ธฐ ์›ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. Working directory untracked vs tracked : Add ๋œ ๋‚ด์—ญ์˜ ์กด์žฌ ์—ฌ๋ถ€ git add ๋ฅผ ํ†ตํ•˜์—ฌ staging area ๋กœ ์ด๋™ Staging area ์ปค๋ฐ‹์„ ์ค€๋น„ํ•˜๋Š” ๋‹จ๊ณ„ git commit ์„ ํ†ตํ•˜์—ฌ..

๐Ÿ€ etc 2022.04.11