Engineering Tools for AI

프로그래밍

네트워크 주요 용어

로컬 개발, 브라우저 요청, API, Docker, 배포 문제 해결에서 자주 만나는 네트워크 용어를 검색하고 이해하는 가이드입니다.

42 개 항목

주소와 이름

IP 주소

IP address

192.168.1.25

네트워크에서 장치를 찾기 위해 사용하는 숫자 주소입니다.

언제 쓰나

다른 기기가 내 컴퓨터, 서버, 컨테이너 호스트에 접근해야 할 때 사용합니다.

예시

192.168.1.25

요청 예시

다른 기기에서 접속할 때 어떤 IP 주소를 써야 하는지 설명해줘.

주소와 이름

IPv4

IPv4

192.168.0.10

점으로 나뉜 네 부분 숫자로 이루어진 흔한 IP 주소 형식입니다.

언제 쓰나

로컬 네트워크 예시는 보통 192.168.x.x 또는 10.x.x.x 같은 IPv4 주소를 사용합니다.

예시

192.168.0.10

요청 예시

이 주소가 IPv4 로컬 네트워크 주소인지 알려줘.

주소와 이름

IPv6

IPv6

::1

훨씬 많은 주소를 제공하기 위해 만들어진 더 긴 IP 주소 형식입니다.

언제 쓰나

로그, localhost 바인딩, 서버 네트워크 출력에서 볼 수 있습니다.

예시

::1

요청 예시

이 로그가 IPv4와 IPv6 중 무엇을 쓰는지 설명해줘.

주소와 이름

localhost

localhost

http://localhost:3000

코드나 브라우저가 실행 중인 바로 그 컴퓨터를 뜻하는 이름입니다.

언제 쓰나

개발 서버를 실행 중인 같은 컴퓨터에서 접속할 때 사용합니다.

주의

스마트폰에서 localhost는 개발 컴퓨터가 아니라 스마트폰 자신을 뜻합니다.

예시

http://localhost:3000

요청 예시

내 컴퓨터에서는 localhost가 되는데 휴대폰에서는 안 되는 이유를 설명해줘.

주소와 이름

127.0.0.1

127.0.0.1

http://127.0.0.1:3000

현재 컴퓨터 자신을 가리키는 대표적인 IPv4 루프백 주소입니다.

언제 쓰나

localhost 대신 숫자 주소로 현재 컴퓨터에 접속할 때 사용합니다.

예시

http://127.0.0.1:3000

요청 예시

여기서 localhost와 127.0.0.1이 같은 의미인지 설명해줘.

주소와 이름

0.0.0.0

0.0.0.0

next dev -H 0.0.0.0

서버가 사용 가능한 모든 네트워크 인터페이스에서 요청을 받도록 할 때 쓰는 주소입니다.

언제 쓰나

같은 네트워크의 다른 기기에서 개발 서버에 접속해야 할 때 사용합니다.

주의

localhost보다 개발 서버 접근 범위가 넓어질 수 있습니다.

예시

next dev -H 0.0.0.0

요청 예시

이 개발 서버를 0.0.0.0에 바인딩해야 하는지 설명해줘.

주소와 이름

호스트명

Hostname

my-laptop.local

장치나 서버를 사람이 읽기 쉽게 부르는 이름입니다.

언제 쓰나

IP 주소보다 네트워크 이름이 기억하기 쉬울 때 사용합니다.

예시

my-laptop.local

요청 예시

이 호스트명이 원하는 IP로 연결되는지 설명해줘.

주소와 이름

도메인

Domain

example.com

웹사이트나 서비스를 사람이 읽기 쉽게 표현한 인터넷 이름입니다.

언제 쓰나

사용자가 서버 IP를 외우지 않아도 되도록 공개 사이트에 도메인을 사용합니다.

예시

example.com

요청 예시

배포된 사이트가 어떤 도메인을 써야 하는지 설명해줘.

주소와 이름

DNS

DNS

example.com -> 93.184.216.34

도메인 이름을 IP 주소로 바꿔주는 시스템입니다.

언제 쓰나

도메인을 호스팅 서비스나 서버에 연결할 때 DNS 레코드를 설정합니다.

예시

example.com -> 93.184.216.34

요청 예시

이 도메인에 어떤 DNS 레코드가 필요한지 설명해줘.

포트와 연결

포트

Port

3000

한 컴퓨터 안에서 어떤 앱이나 서비스가 요청을 받을지 구분하는 번호입니다.

언제 쓰나

개발 서버는 3000, 3001, 5173, 8000 같은 포트를 자주 사용합니다.

예시

3000

요청 예시

이 서버가 어떤 포트를 쓰는지 알려줘.

포트와 연결

listen

Listen

Ready on http://localhost:3000

서버가 특정 주소와 포트에서 요청을 받을 준비가 된 상태입니다.

언제 쓰나

어떤 URL을 브라우저에서 열 수 있는지 확인할 때 listen 출력을 봅니다.

예시

Ready on http://localhost:3000

요청 예시

이 서버가 어디에서 요청을 기다리는지 설명해줘.

포트와 연결

포트 포워딩

Port forwarding

8080 -> 3000

한 포트나 장치로 들어온 요청을 다른 포트나 장치로 전달하는 방식입니다.

언제 쓰나

라우터, 터널, 컨테이너, 원격 개발 환경에서 사용합니다.

예시

8080 -> 3000

요청 예시

이 포트가 어디로 전달되는지 설명해줘.

포트와 연결

방화벽

Firewall

Allow incoming connections on port 3000

네트워크 트래픽을 허용하거나 차단하는 규칙 시스템입니다.

언제 쓰나

서버는 실행 중인데 다른 기기에서 접속되지 않을 때 확인합니다.

예시

Allow incoming connections on port 3000

요청 예시

방화벽이 이 로컬 연결을 막고 있을 수 있는지 설명해줘.

웹 요청

URL

URL

https://example.com/docs?page=1

웹 리소스를 요청할 때 사용하는 전체 주소입니다.

언제 쓰나

URL에는 프로토콜, 호스트, 선택적 포트, 경로, 쿼리 문자열, fragment가 포함될 수 있습니다.

예시

https://example.com/docs?page=1

요청 예시

이 URL을 프로토콜, 호스트, 포트, 경로, 쿼리로 나눠줘.

웹 요청

경로

Path

/ko/reference/docker

서버 안에서 어떤 라우트나 리소스를 요청하는지 나타내는 URL 부분입니다.

언제 쓰나

어떤 페이지나 API endpoint가 요청되는지 이해할 때 사용합니다.

예시

/ko/reference/docker

요청 예시

이 URL 경로가 앱의 어떤 라우트에 해당하는지 알려줘.

웹 요청

쿼리 문자열

Query string

?page=1&lang=ko

URL에서 ? 뒤에 붙어 추가 값을 전달하는 부분입니다.

언제 쓰나

필터, 페이지 번호, 검색어, 간단한 옵션을 전달할 때 사용합니다.

예시

?page=1&lang=ko

요청 예시

이 URL이 어떤 쿼리 파라미터를 보내는지 설명해줘.

웹 요청

HTTP

HTTP

http://localhost:3000

브라우저와 서버가 웹 요청과 응답을 주고받는 기본 프로토콜입니다.

언제 쓰나

로컬 개발에서는 프로덕션 HTTPS 설정 전까지 HTTP를 자주 사용합니다.

예시

http://localhost:3000

요청 예시

이 로컬 URL이 HTTP와 HTTPS 중 무엇을 쓰는지 설명해줘.

웹 요청

HTTPS

HTTPS

https://example.com

TLS 암호화로 보호되는 HTTP입니다.

언제 쓰나

공개 사이트, 로그인, 쿠키, 결제, API, 프로덕션 트래픽에는 HTTPS를 사용합니다.

예시

https://example.com

요청 예시

이 배포 사이트에 HTTPS가 필요한지 설명해줘.

웹 요청

HTTP 메서드

HTTP method

GET /api/tools

요청이 어떤 종류의 동작을 원하는지 서버에 알려주는 동사입니다.

언제 쓰나

GET은 보통 데이터를 읽고, POST는 보통 데이터를 생성하거나 제출합니다.

예시

GET /api/tools

요청 예시

이 API 요청이 어떤 HTTP 메서드를 써야 하는지 설명해줘.

웹 요청

상태 코드

Status code

200 OK / 404 Not Found / 500 Internal Server Error

HTTP 응답 결과를 요약하는 숫자입니다.

언제 쓰나

성공, 리다이렉트, 클라이언트 오류, 서버 오류를 빠르게 구분할 때 사용합니다.

예시

200 OK / 404 Not Found / 500 Internal Server Error

요청 예시

이 HTTP 상태 코드가 무엇을 의미하는지 설명해줘.

웹 요청

헤더

Header

Content-Type: application/json

HTTP 요청이나 응답과 함께 보내는 부가 정보입니다.

언제 쓰나

헤더는 콘텐츠 타입, 인증, 쿠키, 캐시 규칙, CORS 설정을 전달합니다.

예시

Content-Type: application/json

요청 예시

이 응답에서 중요한 헤더를 설명해줘.

웹 요청

본문

Body

{"name":"demo"}

HTTP 요청이나 응답에서 실제 데이터가 들어가는 본문입니다.

언제 쓰나

POST와 PUT 요청은 본문에 JSON 데이터를 보내는 경우가 많습니다.

예시

{"name":"demo"}

요청 예시

이 요청 본문이 어떤 데이터를 보내는지 설명해줘.

브라우저 보안

Origin

Origin

http://192.168.1.25:3000

프로토콜, 호스트, 포트를 합친 출처 정보입니다.

언제 쓰나

CORS, 쿠키, 브라우저 보안 규칙을 이해할 때 사용합니다.

주의

포트만 달라도 다른 origin으로 취급됩니다.

예시

http://192.168.1.25:3000

요청 예시

이 URL의 origin이 무엇인지 찾아줘.

브라우저 보안

동일 출처 정책

Same-origin policy

https://app.example.com cannot freely read https://api.example.com

웹페이지가 다른 origin의 데이터를 마음대로 읽지 못하게 제한하는 브라우저 규칙입니다.

언제 쓰나

서버는 reachable인데 브라우저 API 요청이 실패하는 이유를 이해할 때 사용합니다.

예시

https://app.example.com cannot freely read https://api.example.com

요청 예시

이 문제가 동일 출처 정책 때문인지 설명해줘.

브라우저 보안

CORS

CORS

Access-Control-Allow-Origin: https://app.example.com

브라우저가 다른 origin의 응답을 사용할 수 있도록 서버가 허용하는 규칙입니다.

언제 쓰나

프론트엔드 앱이 다른 origin의 API를 호출할 때 사용합니다.

주의

CORS는 응답을 보내는 서버가 허용해야 합니다.

예시

Access-Control-Allow-Origin: https://app.example.com

요청 예시

이 CORS 오류가 프론트 코드와 서버 설정 중 어디서 고쳐야 하는지 알려줘.

브라우저 보안

쿠키

Cookie

Set-Cookie: session=abc; HttpOnly

브라우저가 저장했다가 조건이 맞는 사이트에 다시 보내는 작은 데이터입니다.

언제 쓰나

쿠키는 세션, 사용자 설정, 인증 상태에 자주 사용됩니다.

예시

Set-Cookie: session=abc; HttpOnly

요청 예시

이 로그인 상태가 쿠키에 저장되는지 설명해줘.

브라우저 보안

세션

Session

session_id=abc123

여러 요청 사이에서 사용자 상태를 기억하는 방식입니다.

언제 쓰나

로그인 상태나 임시 서버 측 사용자 데이터를 유지할 때 사용합니다.

예시

session_id=abc123

요청 예시

이 앱이 사용자 세션을 어떻게 유지하는지 설명해줘.

브라우저 보안

토큰

Token

Authorization: Bearer <token>

신원이나 권한을 증명하기 위해 사용하는 문자열입니다.

언제 쓰나

API 인증, 임시 접근, 서비스 간 요청에 사용합니다.

주의

토큰은 접근 권한을 줄 수 있으므로 공개 코드나 로그에 노출하면 안 됩니다.

예시

Authorization: Bearer <token>

요청 예시

이 토큰이 브라우저에 노출되는지 확인해줘.

브라우저 보안

TLS 인증서

TLS certificate

Let's Encrypt certificate

HTTPS에서 사이트 신원을 증명하고 트래픽을 암호화하는 데 쓰는 인증서입니다.

언제 쓰나

프로덕션 사이트를 HTTPS로 제공할 때 사용합니다.

예시

Let's Encrypt certificate

요청 예시

브라우저가 인증서가 유효하지 않다고 말하는 이유를 설명해줘.

로컬 개발

로컬 네트워크

Local network

Laptop and phone on the same Wi-Fi

같은 Wi-Fi처럼 주변 기기들이 서로 통신할 수 있는 사설 네트워크입니다.

언제 쓰나

휴대폰이나 태블릿에서 로컬 개발 서버를 테스트할 때 사용합니다.

예시

Laptop and phone on the same Wi-Fi

요청 예시

이 기기들이 같은 로컬 네트워크에 있는지 설명해줘.

로컬 개발

LAN IP

LAN IP

192.168.1.25

로컬 네트워크 안에서 사용하는 IP 주소입니다.

언제 쓰나

같은 네트워크의 다른 기기에서 개발 컴퓨터에 접속할 때 사용합니다.

예시

192.168.1.25

요청 예시

localhost와 LAN IP의 차이를 설명해줘.

로컬 개발

Network URL

Network URL

http://192.168.1.25:3000

같은 네트워크의 다른 기기가 로컬 서버에 접속할 때 사용하는 URL입니다.

언제 쓰나

휴대폰이나 태블릿에서 반응형 페이지를 테스트할 때 사용합니다.

주의

개발 서버가 0.0.0.0에서 listen해야 하거나 origin 허용 설정이 필요할 수 있습니다.

예시

http://192.168.1.25:3000

요청 예시

이 개발 서버를 휴대폰에서 여는 방법을 설명해줘.

로컬 개발

개발 서버

Dev server

npm run dev

앱을 개발하고 테스트하는 동안 사용하는 로컬 서버입니다.

언제 쓰나

빠른 새로고침, 로컬 미리보기, 프로덕션 빌드 전 디버깅에 사용합니다.

예시

npm run dev

요청 예시

이 개발 서버가 제공하는 Local URL과 Network URL을 설명해줘.

로컬 개발

HMR

HMR

/_next/webpack-hmr

코드 변경을 브라우저에 빠르게 반영하는 개발 기능입니다.

언제 쓰나

UI 코드를 수정하면서 브라우저 상태를 유지하고 빠르게 확인할 때 사용합니다.

예시

/_next/webpack-hmr

요청 예시

이 차단된 요청이 HMR과 관련 있는지 설명해줘.

서버와 Docker

프록시

Proxy

Browser -> proxy -> API

클라이언트를 대신해 요청을 전달하는 서버입니다.

언제 쓰나

요청을 우회 전달하거나 백엔드 세부 정보를 숨기거나 개발 중 직접 API 호출을 피할 때 사용합니다.

예시

Browser -> proxy -> API

요청 예시

이 API 요청이 프록시를 거치는지 설명해줘.

서버와 Docker

리버스 프록시

Reverse proxy

Nginx -> app:3000

외부 요청을 받아 내부 서비스로 전달하는 서버입니다.

언제 쓰나

HTTPS 처리, 라우팅, 압축, 캐싱, 앱 서버 전달에 사용합니다.

예시

Nginx -> app:3000

요청 예시

이 리버스 프록시가 트래픽을 앱으로 어떻게 전달하는지 설명해줘.

서버와 Docker

Docker 포트 매핑

Docker port mapping

3000:3000

호스트 포트를 컨테이너 내부 포트에 연결하는 설정입니다.

언제 쓰나

호스트 브라우저가 컨테이너 안의 웹앱에 접속할 수 있게 할 때 사용합니다.

주의

Docker ports에서는 왼쪽이 호스트 포트, 오른쪽이 컨테이너 포트입니다.

예시

3000:3000

요청 예시

이 Docker 포트 매핑에서 브라우저 URL을 설명해줘.

서버와 Docker

host.docker.internal

host.docker.internal

http://host.docker.internal:3000

여러 Docker Desktop 환경에서 컨테이너가 호스트 컴퓨터에 접근할 때 쓰는 특수 호스트명입니다.

언제 쓰나

컨테이너가 호스트 컴퓨터에서 실행 중인 서비스에 요청해야 할 때 사용합니다.

예시

http://host.docker.internal:3000

요청 예시

이 컨테이너가 host.docker.internal을 써야 하는지 설명해줘.

서버와 Docker

서비스 이름

Service name

postgres://db:5432/app

Docker Compose에서 서비스들은 보통 서비스 이름으로 서로 접근할 수 있습니다.

언제 쓰나

컨테이너끼리 통신할 때 localhost 대신 db, api, redis 같은 compose 서비스 이름을 사용합니다.

예시

postgres://db:5432/app

요청 예시

이 컨테이너가 localhost 대신 db 서비스 이름을 써야 하는 이유를 설명해줘.

서버와 Docker

로드 밸런서

Load balancer

Client -> load balancer -> app servers

들어오는 트래픽을 여러 서버로 분산하는 시스템입니다.

언제 쓰나

앱 인스턴스를 여러 개 실행해 확장성이나 안정성을 높일 때 사용합니다.

예시

Client -> load balancer -> app servers

요청 예시

이 배포 구조에서 로드 밸런서가 어디에 들어가는지 설명해줘.

서버와 Docker

CDN

CDN

Static assets served from an edge cache

사용자와 가까운 위치에서 콘텐츠를 제공하는 분산 네트워크입니다.

언제 쓰나

정적 asset, 이미지, 스크립트, 스타일, 캐시된 페이지를 빠르게 제공할 때 사용합니다.

예시

Static assets served from an edge cache

요청 예시

이 정적 사이트가 CDN의 이점을 얻는지 설명해줘.

서버와 Docker

캐시

Cache

Cache-Control: max-age=3600

다음 요청을 더 빠르게 처리하기 위해 저장해두는 데이터나 응답입니다.

언제 쓰나

정적 파일, API 응답, 페이지, CDN edge 콘텐츠에 사용합니다.

주의

오래된 캐시 때문에 수정된 버그가 아직 안 고쳐진 것처럼 보일 수 있습니다.

예시

Cache-Control: max-age=3600

요청 예시

이 문제가 캐시 때문에 생겼을 수 있는지 설명해줘.