๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ์ด - Socket
๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ์ ์๋ Socket ์ด๋ผ๋ ๊ฐ๋ ์ ์ดํดํ์ ์ผ ํฉ๋๋ค. ์๋ํ๋ฉด, ๋๋ถ๋ถ ๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์๋ ๋ฐ๋ก ์ด ์์ผ์ ์ฌ์ฉํ์ฌ ํต์ ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ด์ง์. ์ค๋์ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๋ค๊ฐ๊ฐ๋ ๋คํธ์ํฌ ์ฒซ ๊ฑธ์์ธ ์์ผ์ ๋ํด ์์ํด๋ณด๋ ค ํฉ๋๋ค.
Network Socket
์์ผ์ด๋ผ๋ ๊ฒ์ ๋ฌด์์ผ๊น์? ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ค๊ฑฐ๋ ์๋๋ฉด ์ด์ ์์ํ๋ ค๊ณ ํ์๋ ๋ถ๋ค์ด๋ผ๋ฉด, ํ ๋ฒ ์ฏค์ ๋ค์ด๋ดค์ ๋ฒํ ๋จ์ด์ ๋๋ค. ์ปดํจํฐ์์ ์ด์ผ๊ธฐํ๋ ์์ผ์ ๋ณดํต ๋คํธ์ํฌ ์์ผ์ด๋ผ๊ณ ํ๋ฉฐ, ์์ฆ์๋ ์ธํฐ๋ท์ ์ฌ์ฉํ ํต์ ์ด ๋ง๊ธฐ ๋๋ฌธ์ ์ธํฐ๋ท ์์ผ์ด๋ผ๊ณ ๋ ์ด์ผ๊ธฐ๋ฅผ ํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ์ปดํจํฐ์ ์๋ ํ๋ก๊ทธ๋จ๊ณผ ํต์ ํ๊ธฐ ์ํด ๋ฐ๋ก ์ด ์์ผ์ ์ฌ์ฉํฉ๋๋ค. BSD UNIX ์ด์์ฒด์ ์์ ์ฒ์ ์๊ฐ ๋ ์์ผ์ ์์์ BSD Unix Socket์ด๋ฉฐ ํ์ฌ๋ Unix Socket, Windows Socket์ด ์์ต๋๋ค. ๋์ ์ฐจ์ด์ ์ BSD Unix ์ด์์ฒด์ ์์ ์ฌ์ฉํ๋ ์์ผ์ด๋, Windows ์ด์์ฒด์ ์์ ์ฌ์ฉํ๋ ์์ผ์ด๋์ ์ฐจ์ด ์ ๋๋ค. (๋ฌผ๋ก ์ฌ์ฉ ๋ฐฉ๋ฒ๋ ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค.)
๋ค์ ์๊ธฐํ์๋ฉด, ํ๋ก๊ทธ๋จ์ด ํต์ ํ๊ธฐ ์ํด ์ํํธ์จ์ด๋ก ์์ฑ๋ ํต์ ์ ์ ์์ ์ด๋ผ๊ณ ๋ ํ ์ ์์ง์. ๋คํธ์ํฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์ด ์์ผ์ ์ด์ฉํด์ ๋คํธ์ํฌ๋ง(์ธํฐ๋ท)์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์/๋ฐ์ ํฉ๋๋ค.
์์ผ์ด ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ํ๋์ง๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ธฐ ์ํด ์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ดค์ต๋๋ค. ๋ณดํต ํต์ ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ธ ๋งจ ์์ธต์์ ์์๋์ด ์๋ซ์ชฝ์ผ๋ก ๊ฐ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
๋จผ์ ์์ผ์ TCP, UDP์ ์ ๋ฌ ๊ณ์ธต์ ์ด์ฉํ๋ API ์ค ํ๋์ ๋๋ค. ๋ฐ๋ผ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ผ์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ฒ ๋๋ฉด, ์ ๋ฌ ๊ณ์ธต์ผ๋ก ์ ์ก๋์ด ๋ฌผ๋ฆฌ์ธต์ผ๋ก ๊ฐ์ ์ ์ก๋ผ ๋คํธ์ํฌ์์ ๋์๋ค๋๊ฒ ๋ฉ๋๋ค.
Socket์ ๋ํ ๊ธฐ๋ณธ ๊ฐ๋
์ ๋ํด ๊ฐ๋จํ ์ค๋ช
๋๋ ค๋ดค์ต๋๋ค. ์ด์ Socket์ ๋ํ ๊ธฐ๋ณธ ํํ๊ฐ ์ด๋ค ๊ฒ์ธ์ง ์์์ต๋๋ค. Socket์ Unix ๊ณ์ด์์ ์ฌ์ฉํ ์ ์๋ BSD Socket๊ณผ Windows ๊ณ์ด์์ ์ฌ์ฉํ ์ ์๋ Windows Socket์ด ์์ต๋๋ค.
๋ฐ๋ผ์ ์ ๋ธ๋ก๊ทธ์์๋ Linux์์ ํ๋ Socket Programming๊ณผ Windows์์ ํ๋ Socket Programming ์ด๋ ๊ฒ 2๊ฐ์ ํฌ์คํธ๋ฅผ ๊ฐ๊ฐ ์์ฑํ๋ ค ํฉ๋๋ค. ๋ฌผ๋ก ์ด ๋ ๊ฐ์ ์์ผ์ ํํ๊ฐ ์ฝ๊ฐ ๋ค๋ฅด์ง๋ง, ๋์ด ํธํ๋์ง ์๋ ๊ฒ์ ์๋๋ฉฐ, Linux์ ์๋ฒ ํ๋ก๊ทธ๋จ์ด Windows Socket์ผ๋ก ์ฌ ๊ฒฝ์ฐ, ํต์ ์ด ์ ๋๋ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ด ์๋๋๋ค. ํ์ง๋ง ๋ ์ด์์ฒด์ ๊ฐ Socket ์ฌ์ฉ๋ฒ์ด ๋ค๋ฅด๋ฏ๋ก, ์๋ 2๊ฐ์ ๋ฒํผ์ ํตํด์ ๊ฐ์ ์ํ๋ ์ด์์ฒด์ ์์ Socket Programming ์ ์ง์ ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
Let's Coding !
'Infrastructure > Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] Rate Limit๊ณผ Throttling ์ดํด (0) | 2023.07.17 |
---|---|
[Network] Load Balancing (๋ก๋ ๋ฐธ๋ฐ์ฑ)์ ๊ฐ๋ ๊ณผ ์ดํด (0) | 2020.06.02 |
MQTT ํ๋กํ ์ฝ ๊ฐ๋ ๊ณผ ์ดํด (0) | 2017.08.26 |
IP MASQUERADE (0) | 2016.07.02 |
NAT (Network Address Translation) (0) | 2016.06.24 |