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

Til

(37)
[TCP/IP] hello, world๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋žจ hello, world๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋žจ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์„ฑ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ์„œ๋น„์Šคํ•˜๋Š” ์„œ๋ฒ„ ์ธก ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ๋„คํŠธ์›Œํฌ์‚ฌ์—ฅ์„œ ํ†ต์‹  ์ฑ„๋„์„ ํ†ตํ•ด ์„œ๋ฒ„์ธก์— ์—ฐ๊ฒฐ๋˜๋ฉด ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ ์ฆ‰์‹œ ๋ฌธ์ž์—ด hello, world๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ธก์— ์ „์†ก ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์ „์†ก๋ฐ›์€ ๋ฌธ์ž์—ด์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค. ์—ฐ๊ฒฐ์š”์ฒญ : ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์†Œ์ผ“ API ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์— ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•œ๋‹ค. ๋ฌธ์ž์—ด ์ „์†ก : ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ฐ›์€ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์—ฐ๊ฒฐ๋˜์ž๋งˆ์ž ๋ฌธ์ž์—ด hello, world๋ฅผ ํด๋ผ์ด์–ธํŠธ์ธก์— ์ „์†กํ•œ๋‹ค. ํ™”๋ฉด ์ถœ๋ ฅ : ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์ „์†ก๋ฐ›์€ ๋ฌธ์ž์—ด (helo, world)๋ฅผ ์ž์‹ ์˜ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค. hello_ser..
[Network] HTTP2 HTTP ์—ญ์‚ฌ 1. HTTP/0.9 - ์›๋ผ์ธ ํ”„๋กœํ† ์ฝœ 1989๋…„ ์ œ๋„ค๋ฐ”์˜ CERN์—์„œ ์ผํ•˜๊ณ  ์žˆ๋˜ Tim Berners-LEE๋Š” ์ธํ„ฐ๋„ท์˜ ํ•˜์ดํผํ…์ŠคํŠธ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ œ์•ˆ์„ ํ•˜์˜€๋‹ค. ์ด๋ ‡๊ฒŒ HTML, HTTP, WorldWideWeb, httpd์˜ ์ดˆ๊ธฐ ๋ฒ„์ „์ด 1990๋…„ ๋ง์— ์™„๋ฃŒ๋˜์—ˆ๊ณ  ์ฒซ๋ฒˆ์งธ ์„œ๋ฒ„๋Š” 1991๋…„ ์ดˆ์— CERN ์™ธ๋ถ€์—์„œ ๊ฐ€๋™์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ดˆ๊ธฐ์—๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์ดํ›„์— ๋‹ค๋ฅธ ๋ฒ„์ „๋“ค๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ 0.9๋ผ๋Š” ๋ฒ„์ „์„ ๋ถ™์ด๊ฒŒ ๋˜์—ˆ๋‹ค. 0.9 ๋ฒ„์ „์€ ๋‹จ์ผ ๋ผ์ธ์œผ๋กœ ๊ตฌ์„ฑ ๋˜์—ˆ์œผ๋ฉฐ path๋Š” GET์ด ์œ ์ผํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ œํ•œ์ ์ธ ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ์—ˆ๋˜ HTTP/0.9๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ์—ˆ๋‹ค. HTTP์˜ ์ดˆ๊ธฐ ๋ฒ„์ „์—๋Š” ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ์—†์—ˆ๊ณ  ์ฐจํ›„์— ๊ตฌ๋ถ„์„ ์œ„ํ•ด 0.9..
[Network] tracert ์‚ฌ์šฉ๋ฒ• tracert ์‚ฌ์šฉ๋ฒ• tracert๋Š” ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€๋Š” ๋ผ์šฐํŒ… ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ช…๋ น์–ด ๋„์ฐฉ์ง€๊นŒ์ง€์˜ ํ™‰์ˆ˜์™€ ๊ฐ ๊ตฌ๊ฐ„ ๋ณ„ ์‘๋‹ต์‹œ๊ฐ„๋„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์œˆ๋„์šฐ์—์„œ๋Š” tracert ์‚ฌ์šฉ ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” traceroute ์‚ฌ์šฉ tracert๋„ ping์—์„œ ์‚ฌ์šฉํ•˜๋Š” ICMP๋ฅผ ์‚ฌ์šฉ ์ตœ๋Œ€ 30ํ™‰๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ• : tracert [๋„๋ฉ”์ธ ๋„ค์ž„] / traceroute 8.8.8.8 ==>> traceroute dns.google ์œ„์˜ ๊ทธ๋ฆผ์€ traceroute์˜ ๋ชฉ์ ์ง€์ธ dns.google๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ๋ชฉ์ ์ง€๊นŒ์ง€์˜ ํ™‰์ˆ˜๋Š” 8์ด๋‹ค. ์ค‘๊ฐ„์— *** ํ‘œ์‹œ๋Š” ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ๋ผ์šฐํ„ฐ ๋˜๋Š” ์žฅ๋น„์˜ IP๊ฐ€ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ICMP๋ฅผ ์ฐจ๋‹จ๋˜์–ด ์žˆ์–ด ์‘๋‹ตํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์ด๋‹ค. traceroute ..
[Design Pattern] Abstract Factory Pattern ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด ํŒจํ„ด์˜ ๋ถ„๋ฅ˜ : ์ƒ์„ฑ ํŒจํ„ด ํŒจํ„ด์˜ ๋ชฉ์  : This pattern provide an interface for creating families of related or dependent objects without specifying their concrete classes. – GoF – ํŒจํ„ด์˜ ์ ์šฉ ์‹œ์Šคํ…œ์ด ํŠน์ • ์ข…๋ฅ˜์˜ ์ œํ’ˆ๊ตฐ์œผ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด์•ผ ํ•  ๊ฒฝ์šฐ ํŠน์ • ์ข…๋ฅ˜์˜ ์ œํ’ˆ๊ตฐ์˜ ๋™์‹œ ์‚ฌ์šฉ์„ ๊ฐ•์ œํ™”ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒ์„ฑ๋˜๋Š” ๊ตฌ์ฒด์  ์ œํ’ˆ๊ตฐ์„ ์ˆจ๊ธฐ๋Š” ์ œํ’ˆ๊ตฐ ์ƒ์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ํŒจํ„ด ์ ์šฉ ๊ฐ€๋Šฅ์‹œ๋‚˜๋ฆฌ์˜ค : ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” GUI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ŒํŒจํ„ด์˜ ์ฐธ์—ฌ์ž ์ถ”์ƒ ํŒฉํ† ๋ฆฌ(abstract factory): ์ œํ’ˆ๊ตฐ์— ์†Œ์†๋œ ๊ฐ ์ œํ’ˆ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”..
[Design Pattern] Factory Method Pattern Factory Method Pattern ํŒจํ„ด์˜ ๋ถ„๋ฅ˜ : ์ƒ์„ฑ ํŒจํ„ด ํŒจํ„ด์˜ ๋ชฉ์  : This pattern defines an interface for creating an object, but let subclasses decide which class to instantiate. Factory method lets a class defer instantiation to the subclasses. – GoF – ํŒจํ„ด์˜ ์ ์šฉ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ ๊ตฌํ˜„ ๊ด€์ ์—์„œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ• ์ง€ ๋‚˜์ค‘์— ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์คŒ ๊ฐ™์€ ์ƒ์œ„ ํƒ€์ž…์„ ๊ฐ€์ง€๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋“ค์„ ์ฃผ๋กœ ์ƒ์œ„ ํƒ€์ž…์„ ํ†ตํ•ด ์ข†๊ฐ€ํ•  ๊ฒฝ์šฐ ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค ์ข…๋ฅ˜..
[Design Pattern] Observer Pattern Observer Pattern ํŒจํ„ด์˜ ๋ถ„๋ฅ˜ : ํ–‰์œ„ํŒจํ„ด ํŒจํ„ด์˜ ๋ชฉ์  : This pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. – GoF – ํŒจํ„ด์˜ ์ ์šฉ RSS Feed: ์›น ์‚ฌ์ดํŠธ๋“ค์€ ์ƒˆ๋กœ์šด ์ •๋ณด๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ธก์—๊ฒŒ ์ž๋™ ํ†ต๋ณดํ•˜์—ฌ ์คŒ Facebook๊ณผ ๊ฐ™์€ ๋งŽ์€ SNS์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธ€์„ ๊ฒŒ์‹œํ•˜๋ฉด ๊ทธ ๊ฒŒ์‹œ์ž์˜ ๋ชจ๋“  follower์—๊ฒŒ ์ž๋™ ํ†ต๋ณดํ•˜์—ฌ ์คŒ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ๊ฑด ์†Œ์Šค์— ์‚ฌ๊ฑด ๊ฒฝ์ฒญ์ž๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ๊ฑด์ด ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ณดํ†ต ํ•˜๋‚˜์˜..
[Design Pattern] Strategy Pattern Strategy pattern ์˜ค๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…” ํ”„๋กœ๊ทธ๋žจ ๋ชจ๋“  ์˜ค๋ฆฌ๋Š” ๊ฝฅ๊ฝฅ ์šธ ์ˆ˜ ์žˆ๊ณ , ์ˆ˜์˜์„ ํ•  ์ˆ˜ ์žˆ์Œ ์ด ๋‘ ์ข…๋ฅ˜์˜ ํ–‰์œ„๋Š” ์˜ค๋ฆฌ ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„๋จ ์˜ค๋ฆฌ์˜ display ๋ฉ”์†Œ๋“œ๋Š” ์ถ”์ƒ ๋ฉ”์†Œ๋“œ์ž„ ์˜ค๋ฆฌ ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ํด๋ž˜์Šค์ž„ ์˜ค๋ฆฌ์˜ ๋ชจ๋“  ์ž์‹ํด๋ž˜์Šค๋Š” display ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ ์—ฌ๊ธฐ ๋‘ ํด๋ž˜์Šค ์™ธ์— ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†๋˜์–ด ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Œ ๋ฌธ์ œ์  : ์˜ค๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด fly ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?? Design Pricinple 1 Identify the aspects of your application that vary and separate them from what stays the same Design Pricinple 2 Program to an interf..
[Github] Create draft pull request Create draft pull request Draft ๋ชจ๋“œ์—์„œ๋Š” ์ด์Šˆ ๋จธ์ง€ ๋ฒ„ํŠผ์ด ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ์ด๋‹ค. Git์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  PR(Pull Request)์„ ํ†ตํ•ด Contribution์„ ํ•˜๊ฒŒ๋œ๋‹ค. ์ˆ˜์ •์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•ด ๋‹ฌ๋ผ๋Š” PR์„ ์š”์ฒญํ•˜๊ฒŒ ๋˜๋ฉด ๋ฆฌ๋ทฐ์–ด๋Š” ์ˆ˜์ •์‚ฌํ•ญ์„ ๋ฆฌ๋ทฐํ•˜๊ณ  ์Šน์ธํ•˜๋ฉด ์ˆ˜์ •์‚ฌํ•ญ์ด ๋ฐ˜์˜๋œ๋‹ค. ๊นƒํ—ˆ๋ธŒ์—์„œ Draft(์ดˆ์•ˆ ๋ชจ๋“œ)๋กœ ์˜คํ”ˆํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ์ดˆ์•ˆ๋ชจ๋“œ๋ž€ ์ž‘์—…์ค‘์ธ ์ฝ”๋“œ๊ฐ€ ์•„์ง ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉฐ ๊ณ„์† ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. Ready for review๋ฅผ ํด๋ฆญํ•˜๋ฉด Draft ๋ชจ๋“œ์—์„œ ์ผ๋ฐ˜ PR ์ด์Šˆ๋กœ ์ „ํ™˜๋˜์–ด ์ฝ”๋“œ๋ฅผ ๋จธ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.