CS 7

[CS] TCP/IP 4๊ณ„์ธต

๐Ÿ’กTCP/IP 4 ๊ณ„์ธต์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์ „์†ก ๊ณ„์ธต์ธํ„ฐ๋„ท ๊ณ„์ธต๋งํฌ ๊ณ„์ธต ๐Ÿ’ก์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(FTP, HTTP, DNS, SSH ๋“ฑ)์ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต์„œ๋น„์Šค๋ฅผ ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ œ๊ณต ๐Ÿ’ก์ „์†ก ๊ณ„์ธต์†ก์‹ ์ž์™€ ์ˆ˜์ง„์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹  ์„œ๋น„์Šค ์ œ๊ณต์—ฐ๊ฒฐ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ง€์›, ์‹ ๋ขฐ์„ฑ, ํ๋ฆ„ ์ œ์–ด ์ œ๊ณต๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋  ๋•Œ ์ค‘๊ณ„ ์—ญํ•  TCP : ํŒจํ‚ท ์‚ฌ์ด ์ˆœ์„œ ๋ณด์žฅ '๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹'UDP : ํŒจํ‚ท ์‚ฌ์ด ์ˆœ์„œ ๋ณด์žฅ x '๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹' ๐Ÿ’ก์ธํ„ฐ๋„ท ๊ณ„์ธต์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์„ IP ์ฃผ์†Œ๋กœ ์ง€์ •๋œ ๋ชฉ์ ์ง€๊นŒ์ง€ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋น„์—ฐ๊ฒฐํ˜• IP, ARP, ICMP ๐Ÿ’ก๋งํฌ ๊ณ„์ธต์‹ค์งˆ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ ์žฅ์น˜ ๊ฐ„์— ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ทœ์น™์„ ์ •ํ•˜๋Š” ๊ณ„์ธต ์ „์„ , ๊ด‘์„ฌ์œ , ๋ฌด์„ 

[CS] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„

๐Ÿ’กํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์–ธํ˜•๊ณผ ๋ช…๋ นํ˜•์œผ๋กœ ๋‚˜๋‰จ ์„ ์–ธํ˜• : ํ•จ์ˆ˜ํ˜•๋ช…๋ นํ˜• : ๊ฐ์ฒด์ง€ํ–ฅ, ์ ˆ์ฐจ์ง€ํ–ฅ ๐Ÿ’ก์„ ์–ธํ˜•: ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ'๋ฌด์—‡์„'์ˆœ์ˆ˜ ํ•จ์ˆ˜๋“ค์„ ์Œ“์•„ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ณ  ๊ณ ์ฐจ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ๐Ÿ’ก๋ช…๋ นํ˜•: ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ‘œํ˜„ ํŠน์ง•1) ์ถ”์ƒํ™”2) ์บก์Šํ™”3) ์ƒ์†์„ฑ4) ๋‹คํ˜•์„ฑ ์„ค๊ณ„ ์›์น™1) ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (S)2) ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ (O)3) ๋ฆฌ์Šค์ฝ”๋“œ ์น˜ํ™˜ ์›์น™ (L)4) ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ (I)5) ์˜์กด ์—ญ์ „ ์›์น™ (D) ๐Ÿ’ก๋ช…๋ นํ˜•: ์ ˆ์ฐจํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋กœ์ง์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์—ฐ์†์ ์ธ ๊ณ„์‚ฐ ๊ณผ์ •์œผ๋กœ ์ด๋ฃจ์–ด์ง

[CS] MVC ํŒจํ„ด

๐Ÿ’กMVC ํŒจํ„ด์ด๋ž€?๋ชจ๋ธ(Model), ๋ทฐ(View), ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋กœ ์ด๋ฃจ์–ด์ง„ ๋””์ž์ธ ํŒจํ„ด ๐Ÿ’ก์žฅ์ ์žฌ์‚ฌ์šฉ์„ฑ, ํ™•์žฅ์„ฑ์ด ์šฉ์ด ๐Ÿ’ก๋‹จ์ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ๊ด€๊ณ„๊ฐ€ ๋ณต์žกํ•ด์ง ๐Ÿ’ก๋ชจ๋ธ(Modle)์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ƒ์ˆ˜, ๋ณ€์ˆ˜๋ทฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฐฑ์‹  ๐Ÿ’ก๋ทฐ(View)์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ (๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด) ๐Ÿ’ก์ปจํŠธ๋กค๋Ÿฌ(Controller)๋ฉ”์ธ ๋กœ์ง ๋‹ด๋‹นํ•˜๋‚˜ ์ด์ƒ์˜ ๋ชจ๋ธ๊ณผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ทฐ๋ฅผ ์ž‡๋Š” ๋‹ค๋ฆฌ ์—ญํ•  (๋ชจ๋ธ, ๋ทฐ์˜ ๋ณ€๊ฒฝ์„ ํ•ด์„ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ์•Œ๋ ค์คŒ)๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๐Ÿ’กMVC ํŒจํ„ด ์˜ˆ์‹œ์Šคํ”„๋ง(spring): ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ ๊ฐ’์„ ์‰ฝ๊ฒŒ ๋ถ„์„ ..

[CS] ๋””์ž์ธ ํŒจํ„ด_ํ–‰์œ„ํŒจํ„ด

๐Ÿ’กํ–‰์œ„ ํŒจํ„ด์ด๋ž€?ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด์˜ ์ฑ…์ž„ ๋ถ„๋ฐฐ ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ํŒจํ„ด ๐Ÿ’กํ–‰์œ„ ํŒจํ„ด ํŠน์ง•ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋กœ ๋ถ„๋ฐฐํ•˜์—ฌ ๊ฒฐํ•ฉ๋„ ์ตœ์†Œํ™” ๐Ÿ’กํ–‰์œ„ ํŒจํ„ด ์ข…๋ฅ˜Chain-of-ResponsibilityCommandInterpreterIteratorMediatorMementoObserverStateStrategyTemplate MethodVisitor ๐Ÿ’กChain-of-Responsibility ํŒจํ„ด์ •์˜ : ์‚ฌ์Šฌ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฐ์ฒด๊ฐ€ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๊ทธ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฐ์ฒด๋ผ๋ฉด ๋‹ค์Œ ๊ฐ์ฒด์— ๋„˜๊น€ex) JAVA์˜ try catch๋ฌธ ์žฅ์ : ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์•Œ ํ•„์š” ์—†์Œ: ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํ•ธ๋“ค๋Ÿฌ๋ฅผ chain์— ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ ๊ฐ€๋Šฅ (์œ ์—ฐ์„ฑ) ๋‹จ์ : ๋””๋ฒ„..

[CS] ๋””์ž์ธ ํŒจํ„ด_๊ตฌ์กฐํŒจํ„ด

๐Ÿ’ก๊ตฌ์กฐ ํŒจํ„ด์ด๋ž€?๊ตฌ์กฐ ํŒจํ„ด์ด๋ž€ ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ๋” ํฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํŒจํ„ด ๐Ÿ’ก๊ตฌ์กฐ ํŒจํ„ด ํŠน์ง•์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•˜๋‚˜์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ๊ตฌํ˜„์„ ๋ณตํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ํ•ฉ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ์ œ๊ณต ๐Ÿ’ก๊ตฌ์กฐ ํŒจํ„ด ์ข…๋ฅ˜AdapterBridgeCompositeDecoratorFacadeFlyweightProxy ๐Ÿ’กAdapter ํŒจํ„ด์ •์˜ : ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ํ•„์š”ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด ์žฅ์ : ํด๋ž˜์Šค ์žฌํ™œ์šฉ์„ฑ ์ฆ๊ฐ€ ๋‹จ์ : ํด๋ž˜์Šค๋ฅผ ์žฌํ™œ์šฉํ•  ๋•Œ ์ถ”๊ฐ€ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜์—ฌ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์†๋„ ์ €ํ•˜๐Ÿ’กBridge ํŒจํ„ด์ •์˜ : ์ถ”์ƒ์ ์ธ ๋ถ€๋ถ„๊ณผ ๊ตฌ์ฒด์ ์ธ ๋ถ€๋ถ„์„ ๋‚˜๋ˆ  ๊ตฌํ˜„ํ•˜๋Š” ํŒจํ„ด ์žฅ์ : ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ: ์ถ”์ƒ์ ์ธ ๋ถ€๋ถ„๊ณผ ๊ตฌ์ฒด์ ์ธ ๋ถ€๋ถ„ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ ๋‹จ์ : ๋ณต์žก๋„ ์ฆ๊ฐ€ ..

[CS] ๋””์ž์ธ ํŒจํ„ด_์ƒ์„ฑํŒจํ„ด

๐Ÿ’ก์ƒ์„ฑ ํŒจํ„ด์ด๋ž€?์ƒ์„ฑ ํŒจํ„ด์ด๋ž€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ์ ˆ์ฐจ๋ฅผ ์ถ”์ƒํ™”ํ•˜๋Š” ํŒจํ„ด ๐Ÿ’ก์ƒ์„ฑ ํŒจํ„ด ํŠน์ง•์‹œ์Šคํ…œ์ด ์–ด๋–ค ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์บก์Šํ™”ํŠน์ • ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋˜์–ด๋„ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์กฐ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ (์œ ์—ฐ์„ฑ) ๐Ÿ’ก์ƒ์„ฑ ํŒจํ„ด ์ข…๋ฅ˜SingletonPrototypeFactory MethodsBuilderAbstract Factory ๐Ÿ’กSingleton ํŒจํ„ด์ •์˜ : ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด์œผ๋กœ ๋ณดํ†ต ๋ฐ์ดํŠธ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ์— ๋งŽ์ด ์‚ฌ์šฉํ•จ: ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ๊ณต์œ ํ•˜๋ฉด์„œ ์‚ฌ์šฉ ์žฅ์ : ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋“œ๋Š” ๋น„์šฉ์ด ์ค„์–ด๋“ฆ ๋‹จ์ : ์˜์กด์„ฑ์ด ๋†’์•„์ง ์˜์กด์„ฑ ์ฃผ์ž…: ์˜์กด์„ฑ ๋‚ฎ์ถ”๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฉ”์ธ ๋ชจ๋“ˆ๊ณผ ๋‹ค๋ฅธ ํ•˜์œ„ ๋ชจ๋“ˆ ์‚ฌ์ด์— ์˜์กด์„ฑ..

[CS] ๋””์ž์ธ ํŒจํ„ด

๐Ÿ’ก๋””์ž์ธ ํŒจํ„ด์ด๋ž€?ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•  ๋•Œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์ ๋“ค์„ ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ ๊ด€๊ณ„ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋‚˜์˜ ๊ทœ์•ฝ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ๋†“์€ ๊ฒƒ ๐Ÿ’ก๋””์ž์ธ ํŒจํ„ด์˜ ์ข…๋ฅ˜์ƒ์„ฑ ํŒจํ„ด: Singleton, Prototype, Factory Methods, Builder, Abstract Factory ๊ตฌ์กฐ ํŒจํ„ด: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy ํ–‰์œ„ ํŒจํ„ด: Chain-of-Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor