IP์™€ Port ๊ด€๋ จ

IP์™€ Port?

IP

๋„คํŠธ์›Œํฌ ์ƒ์—์„œ์˜ ํŠน์ • ์ปดํ“จํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ

ํ•˜์ง€๋งŒ, ํ•˜๋‚˜์˜ ์žฅ๋น„๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋А๋ƒ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ์Œ.

์‚ฌ๋ก€์„ค๋ช…
๐Ÿ’ป Wi-Fi + Ethernet๋ฌด์„  LAN(Wi-Fi)๊ณผ ์œ ์„  LAN(Ethernet) ๋‘˜ ๋‹ค ์—ฐ๊ฒฐ๋ผ ์žˆ์„ ๊ฒฝ์šฐ โ†’ ๊ฐ ์ธํ„ฐํŽ˜์ด์Šค๋งˆ๋‹ค IP ํ•˜๋‚˜์”ฉ
๐Ÿง‘โ€๐Ÿ’ป Docker, WSL๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ƒ์„ฑ๋จ โ†’ WSL, Docker ๊ฐ๊ฐ ๋”ฐ๋กœ IP๋ฅผ ๊ฐ€์ง
๐Ÿงญ ๋กœ์ปฌ vs ๊ณต์ธ IP๋‚ด๋ถ€๋ง์—์„œ๋Š” 192.168.x.x / ์™ธ๋ถ€๋ง์—์„œ๋Š” 203.xxx.xxx.xxx์ฒ˜๋Ÿผ ๋‹ค๋ฅธ IP ๊ฐ€์ง
๐Ÿงฌ ๊ฐ€์ƒ ์ธํ„ฐํŽ˜์ด์Šค (lo, tun0 ๋“ฑ)์‹œ์Šคํ…œ ๋‚ด๋ถ€ loopback(127.0.0.1), VPN ์—ฐ๊ฒฐ ์ธํ„ฐํŽ˜์ด์Šค, ๊ฐ€์ƒ ๋ธŒ๋ฆฌ์ง€ ๋“ฑ๋„ ๊ฐ๊ฐ IP ๊ฐ€์ง

์‹ค์ œ ์˜ˆ์‹œ (ip addr ๋กœ ํ™•์ธ ๊ฐ€๋Šฅ)

lo: 127.0.0.1
eth0: 192.168.0.13
docker0: 172.17.0.1
br-xxxx: 172.18.0.1
wsl: 172.24.100.1

์ „๋ถ€ ๋™์ผํ•œ ์ปดํ“จํ„ฐ๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์—ฌ๋Ÿฌ IP ์ฃผ์†Œ

IP๋Š” ์ธํ„ฐํŽ˜์ด์Šค(๋„คํŠธ์›Œํฌ ์นด๋“œ)๋งˆ๋‹ค ๋ถ™๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, ์ปดํ“จํ„ฐ์— ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ฉด IP๋„ ์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ, ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฌ๋Ÿฌ IP๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

โ€œ๊ณ ์œ ํ•œ IPโ€๋ผ๋Š” ๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ๋งŒ ๊ณ ์œ ํ•˜๋‹ค๋Š” ๋œป์œผ๋กœ, ๊ฐ™์€ ๋„คํŠธ์›Œํฌ(์„œ๋ธŒ๋„ท) ๋‚ด์—์„œ ์ค‘๋ณต๋˜๋ฉด ์•ˆ ๋œ๋‹ค(๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋ผ๋ฉด ๋™์ผํ•œ IP๋„ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ).

Port

ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ๋ฐ›๋Š” ์ชฝ(์„œ๋ฒ„ ์ธก)์—์„œ ์—ด์–ด๋†“์€ โ€˜๋ฌธโ€™์ด๊ณ , ํด๋ผ์ด์–ธํŠธ(๋‚˜)๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๊ทธ ๋ฌธ์œผ๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ.

๋น„์œ ํ•˜์ž๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์Œ

  • IP ์ฃผ์†Œ = ์–ด๋А ์•„ํŒŒํŠธ ๋‹จ์ง€
  • ํฌํŠธ ๋ฒˆํ˜ธ = ๋ช‡ ๋™ ๋ช‡ ํ˜ธ
  • ํด๋ผ์ด์–ธํŠธ = ํƒ๋ฐฐ ๊ธฐ์‚ฌ
  • ์„œ๋ฒ„ = ์ˆ˜์‹ ์ž

๋‚˜(ํด๋ผ์ด์–ธํŠธ)๊ฐ€ 3000ํ˜ธ๋กœ ํƒ๋ฐฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ๊ทธ ์ง‘(์„œ๋ฒ„)์ด 3000ํ˜ธ ๋ฌธ์„ ์•ˆ ์—ด์–ด๋†จ๋‹ค๋ฉด ๋ชป ๋ฐ›๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐ.

IP vs. Port

ํ•ญ๋ชฉIP ์ฃผ์†ŒPort ๋ฒˆํ˜ธ
์—ญํ• ์–ด๋””์— ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„ (์ฃผ์†Œ)๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„ (๋ฌธ/ํ†ต๋กœ)
๋น„์œ ์•„ํŒŒํŠธ ๋‹จ์ง€ ์ฃผ์†Œ์•„ํŒŒํŠธ ์•ˆ์˜ ๊ฐ ์ง‘(ํ˜ธ์ˆ˜)
๋ฒ”์œ„์ „ ์„ธ๊ณ„ ๊ณ ์œ  or ๋กœ์ปฌ ๊ณ ์œ 0 ~ 65535 (16๋น„ํŠธ ์ˆซ์ž)
์ข…๋ฅ˜IPv4 (192.168.0.1 ๋“ฑ), IPv6well-known, registered, dynamic/ephemeral
๊ธฐ๋ŠฅํŒจํ‚ท์„ ๋ชฉ์ ์ง€๊นŒ์ง€ ๋ผ์šฐํŒ…๋ชฉ์ ์ง€ IP ๋‚ด๋ถ€์—์„œ ์•ฑ/์„œ๋น„์Šค๋ฅผ ๊ตฌ๋ถ„
์‚ฌ์šฉ ์œ„์น˜๋„คํŠธ์›Œํฌ ๊ณ„์ธต (3๊ณ„์ธต)์ „์†ก ๊ณ„์ธต (4๊ณ„์ธต, TCP/UDP)
์˜ˆ์‹œ192.168.0.1080 (HTTP), 3306 (MySQL), 22 (SSH)
curl http://192.168.0.10:8080
  • 192.1678.0.10 ์–ด๋А ์ปดํ“จํ„ฐ(IP)๋กœ ๊ฐˆ์ง€
  • 8080 ๊ทธ ์ปดํ“จํ„ฐ์—์„œ ์–ด๋–ค ์•ฑ/์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ• ์ง€ (ํฌํŠธ)

ํ•˜๋‚˜์˜ ์„œ๋ฒ„(๊ฐ™์€ IP)์—์„œ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Œ(ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ):

์„œ๋น„์ŠคIP ์ฃผ์†ŒPort
Nginx (์›น์„œ๋ฒ„)192.168.0.1080
Flask (API ์„œ๋ฒ„)192.168.0.108000
PostgreSQL192.168.0.105432

IP:Port์˜ ์กฐํ•ฉ์ด ์ง„์งœ ์œ ๋‹ˆํฌํ•œ ๋‹จ์œ„

์ด๊ฑธ ์†Œ์ผ“ ์ฃผ์†Œ (socket address) ๋ผ๊ณ  ํ•จ:

<IP\>:<Port\> โ†’ ์˜ˆ: 192.168.0.10:8000

ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ๊ฐ™์€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์„œ๋น„์Šค๋Š” ๋™์‹œ์— ๋ชป ๋„์šฐ๋Š” ์ด์œ ๋„ ์—ฌ๊ธฐ์— ์žˆ์Œ

๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ๋™์ž‘

๋‚ด๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— http://naver.com ๋˜๋Š” ๊ทธ๋ƒฅ naver.com ์„ ์ž…๋ ฅํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž๋™์œผ๋กœ 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•จ.

์™œ 80๋ฒˆ ํฌํŠธ?

HTTP์˜ ๊ธฐ๋ณธ ํฌํŠธ๊ฐ€ 80 ์œผ๋กœ ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค(HTTPS๋Š” 443๋ฒˆ ํฌํŠธ๊ฐ€ ๊ธฐ๋ณธ).

๋™์ž‘ ํ๋ฆ„ ์˜ˆ์‹œ

http://naver.com ์— ์ ‘์†ํ•œ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด, ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์ ์œผ๋กœ ๋‹ค์Œ ์š”์ฒญ์„ ๋ณด๋ƒ„: GET / HTTP/1.1 Host: naver.com ๊ทธ๋Ÿฌ๋ฉด, ์—ฐ๊ฒฐ ๋Œ€์ƒ์€ naver.com:80 ์ด๋‹ค.

๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ, https://naver.com ์ด๋ผ๋ฉด, ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์ด๋ฏ€๋กœ 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ naver.com:443 ์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

ํ”„๋กœํ† ์ฝœ๋ณ„ ๊ธฐ๋ณธ ํฌํŠธ

ํ”„๋กœํ† ์ฝœ๊ธฐ๋ณธ ํฌํŠธ
HTTP80
HTTPS443
FTP21
SSH(Secure Shell Protocol)22
๊ฐœ๋ฐœ ์„œ๋ฒ„ ๋“ฑ ์‚ฌ์šฉ์ž ์ง€์ • ํฌํŠธ3000
ํ”ํ•œ ๋น„ํ‘œ์ค€ ํฌํŠธ (Nginx/React/Node ๋“ฑ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ)8080

์ด ํฌํŠธ๋“ค์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €๋‚˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’ ์‚ฌ์šฉ

์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž

์ˆ˜์‹ ์ž(๋„คํŠธ์›Œํฌ)๋Š” IP + ํฌํŠธ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด, ์†ก์‹ ์ž(ํด๋ผ์ด์–ธํŠธ) ์ชฝ ์ •๋ณด๋Š” ๋ญ˜๋กœ ๊ตฌ๋ถ„ํ• ๊นŒ?

๋ณด๋‚ธ ์ชฝ๋„ IP + ํฌํŠธ ์กฐํ•ฉ์ด ์žˆ๋‹ค.

ํ•ญ๋ชฉ์„ค๋ช…
์†ก์‹ ์ž IPํด๋ผ์ด์–ธํŠธ(๋„ˆ)์˜ IP ์ฃผ์†Œ (์˜ˆ: 192.168.0.100)
์†ก์‹ ์ž ํฌํŠธ๋ธŒ๋ผ์šฐ์ €๋‚˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋žœ๋ค์œผ๋กœ ์žก๋Š” ์ž„์‹œ ํฌํŠธ ๋ฒˆํ˜ธ (ephemeral port)

๋‚ด๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋กœ http://naver.com ์„ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ๋ฆ„์ด ์žˆ๋‹ค:

์ถœ๋ฐœ์ง€ IP       : 192.168.0.100
์ถœ๋ฐœ์ง€ ํฌํŠธ     : 54321   โ† OS๊ฐ€ ์ž๋™์œผ๋กœ ์ง€์ •ํ•œ ์ž„์‹œ ํฌํŠธ
๋„์ฐฉ์ง€ IP       : 223.130.200.104 (naver.com)
๋„์ฐฉ์ง€ ํฌํŠธ     : 80

์™œ ์ถœ๋ฐœ์ง€ ํฌํŠธ๋„ ํ•„์š”ํ• ๊นŒ?

์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ โ€œ์–ด๋””์„œ ์™”๋Š”์ง€โ€ ์ •ํ™•ํžˆ ์•Œ์•„์•ผ, ๋‹ค์‹œ ๋˜๋Œ๋ ค ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ์ด ์ถœ๋ฐœ์ง€ ์ •๋ณด๋กœ ๋‹ค์‹œ ์‘๋‹ต์„ ์ „์†กํ•จ:

์„œ๋ฒ„ ์ž…์žฅ์—์„œ:
์‘๋‹ต โ†’ ๋„์ฐฉ์ง€ IP: 192.168.0.100, ๋„์ฐฉ์ง€ ํฌํŠธ: 54321

๋ธŒ๋ผ์šฐ์ €๋Š” ์ด 54321 ํฌํŠธ๋ฅผ ํ†ตํ•ด ์‘๋‹ต์„ ์ˆ˜์‹ ํ•จ