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 ์ด์๋ก ์ ํ๋์ด ์ฝ๋๋ฅผ ๋จธ์งํ ์ ์๊ฒ ๋๋ค. ์ด์ 1 2 3 4 5 ๋ค์