IP와 Port의 차이는?
IP는 보통 컴퓨터의 주소 (외부에서 접속할때 사용하는것)
Port는 그 컴퓨터안에서 어떤 프로그램을 실행시키는지 알려주는것이다(내부에서 어떤걸 이용할지 사용하는 것)
(ex:80(웹,http), 443(https), 3306(MySQL), 8000(FastAPI 개발용))
예를들어서 IP는 건물의 주소이고, Port는 건물내부에 있는 방의 이름에 해당된다


Process는 여러개의 thread를 가지고 있고, core개수가 thread 개수에 해당한다.
core개수가 많다면 동시에 여러개의 포트번호를 할당하여, 동시에 일을 처리할 수 있게된다.

Putty창을 보게되면, SSH라는것이 있다. 거기서 IP와 PORT번호가 있는데, 이것은 "putty야 해당 컴퓨터 어느 포트로 접속해서 Terminal로 나한테 제공해줘"와 같은 것이다.
근데 보통주소를 보면 https://www.google.com이런식으로 주소가 이루어져있는데 컴퓨터는 어떻게 접속하게되는걸까?
여기서 사용되는게 DNS(Domain Name System)으로 흔히사람들이 사용되는 주소를 IP로 바꿔주는것이다
http://www.google.com -> 172.217.174.110 이런방식으로!!
| 인터프리터 | 컴파일러 | |
| 실행 방식 | 한 줄씩 해석해서 즉시 실행 | 전체 코드를 한 번에 번역 후 실행 |
| 예시 언어 | Python, JavaScript, Ruby | C, C++, Java(중간 단계 포함) |
| 장점 | 실행 빠름 (테스트용) | 실행 속도 빠름 (최종 프로그램) |
| 단점 | 실행 속도 느릴 수 있음 | 컴파일 시간 오래 걸림 |
그래서 컴파일러가 동작속도가 더 빠른것이다.
Python과 C를비교해도 Python이 문법이간단하고 비교적 친숙하지만,C 의 동작속도를 따라올 수 없다.
하지만 JS와 Python의 동작속도를 향상시키기 위해 계산이되는 부분은 JIT 컴파일을 사용해 메모리/속도를 관리하게 된다


- L1~L2: 같은 네트워크 안에서 신호를 전달
- L3: 인터넷을 통해 외부로 나갈 때 필요
- L4: 포트를 통해 요청을 구분 (웹=80/443, 메일=25 등)
- L5~L7: 네이버 로그인, 암호화 통신, URL 분석 등 고급 기능
- 브라우저에 www.naver.com 입력 (L7)
- SSL로 암호화된 HTTPS 통신 (L6)
- 네이버 로그인 세션 유지 (L5)
- TCP 포트 443 사용, 3-way handshake 수행 (L4)
- DNS 통해 IP 받아서 라우터에 전달 (L3)
- 스위치가 MAC 주소 기준으로 전달 (L2)
- 와이파이나 랜선을 통해 실제 신호 전송 (L1)
| IP 주소 | MAC 주소 | |
| 목적 | 논리 주소 (변경 가능) | 물리 주소 (고정됨) |
| 역할 | 네트워크 간 라우팅 | 같은 네트워크 내 전송 |
| 변경 여부 | DHCP로 바뀔 수 있음 | 대부분 고정 (변경하려면 수동 설정) |
| 예시 | 192.168.0.5 | 3C:52:82:7A:10:3E |

🧠 큰 흐름:
"www.example.com 입력하면, 어떻게 그 웹사이트가 내 눈앞에 딱 뜨는가?"
1️⃣ 사용자 → 브라우저:
🔤 URL 입력 (www.example.com)
- 사용자가 브라우저 주소창에 주소 입력
- 예시: 너가 https://naver.com을 친다고 생각하면 됨
2️⃣ 브라우저 → DNS 서버:
🌐 DNS 요청 (www.example.com)
- 브라우저는 "이 주소가 실제로 어디 서버(IP 주소)냐?" 하고 DNS 서버에 물어봄
- 예시: www.example.com → 93.184.216.34
3️⃣ DNS 서버 → 브라우저:
📦 IP 주소 응답 (93.184.216.34)
- DNS 서버는 IP 주소를 찾아서 브라우저에 알려줌
4️⃣ 브라우저 → 웹서버:
📞 TCP 연결 요청 (3-way handshake 시작)
- 브라우저가 웹서버에 "나랑 통신할래?" 하고 연결 시도함
- (TCP 프로토콜 기반이라 handshake 필요)
5️⃣ 웹서버 → 브라우저:
TCP 연결 수립 승인 (3-way handshake 완료)
- 서버가 "좋아, 연결하자"라고 응답
- 연결이 확실히 열렸음
6️⃣ 브라우저 → 웹서버:
📨 HTTP 요청 전송 (GET / HTTP/1.1)
- 브라우저가 웹서버에 웹페이지 요청
- 예: "나에게 /index.html 좀 줘!"
7️⃣ 웹서버 → 브라우저:
📨 HTTP 응답 (HTML, CSS, JS 등)
- 서버가 브라우저에게 요청된 자료를 보냄
- HTML 페이지, 스타일(CSS), 자바스크립트(JS) 등
8️⃣ 브라우저 내부:
🧱 HTML/CSS/JS 렌더링
- 받은 HTML 등을 브라우저가 화면에 표시 가능하게 그림을 그려줌
9️⃣ 사용자에게 표시:
🖥️ 웹 페이지 표시
- 이제 눈앞에 네이버든 구글이든 화면에 짠! 하고 나타나는 거야



CMD에 ipconfig로 조사한 IP와 https://whatismyipaddress.com/ 해당 사이트에서 얻은 IP정보는 다르다.
그 이유는 외부서와 통신할때 공유기를 사용하는경우 공유기가 외부IP로변환하여 파싱하게된다
'LLM' 카테고리의 다른 글
| [6]CSS (3) | 2025.08.11 |
|---|---|
| [5]HTML (3) | 2025.08.08 |
| [3]FAST API (5) | 2025.08.07 |
| [2][Docker]Docker Container (5) | 2025.08.04 |
| [1]Prompt Engeenering Code Review 1강 (2) | 2025.07.29 |