네트워크
문제 1
유형: 서술형
문제: HTTP란 무엇인지 설명하세요.
정답 확인하기
정답:
HTTP는 HyperText Transfer Protocol의 줄임말로 웹상에서 HyperText, 즉 HTML 파일 같은 리소스를 주고받는 프로토콜입니다.
프로토콜은 통신 장비 사이에 메시지를 주고받는 양식 혹은 규칙을 의미하며, Syntax(데이터의 구조나 형식), Semantic(형식에 담긴 데이터를 어떻게 해석할지), Timing(데이터가 어떤 순서로 오가야 할지) 세 가지 요소로 정의됩니다.
참고 자료: HTTP | 👨🏻💻 Tech Interview
문제 2
유형: 객관식
문제: HTTP의 특징으로 올바른 것을 모두 고르시오.
보기:
- 클라이언트-서버 구조이다.
- 서버가 클라이언트의 상태를 저장하는 Stateful 프로토콜이다.
- 요청을 주고받을 때만 연결을 유지하는 비연결성을 갖는다.
- 연결을 항상 유지한다.
- 무상태(Stateless) 프로토콜이다.
정답 확인하기
정답: 1, 3, 5
해설:
- HTTP는 클라이언트-서버 구조로 되어있습니다.
- 서버가 클라이언트의 상태를 저장하지 않는 무상태(Stateless) 프로토콜입니다.
- 요청을 주고받을 때만 연결을 유지하고 응답 이후 연결이 끊어지는 비연결성을 갖고 있습니다.
문제 3
유형: 객관식
문제: HTTP 버전별 특징에 대한 설명으로 올바른 것을 모두 고르시오.
보기:
- HTTP 0.9는 GET 메서드만 지원했다.
- HTTP 1.0은 한 번의 연결로 여러 데이터를 전송할 수 있다.
- HTTP 1.1은 Keep-Alive 속성으로 지속적인 연결이 가능하다.
- HTTP 2.0은 멀티플렉싱을 지원하여 HOL Blocking 문제를 해결했다.
- HTTP 3.0은 TCP 기반에서 UDP 기반으로 변경되었다.
정답 확인하기
정답: 1, 3, 4, 5
해설:
- HTTP 0.9: GET 메서드만 지원, HTTP 헤더도 없었습니다.
- HTTP 1.0: 모든 메서드를 지원하고 헤더가 추가되었으나, 한 번의 데이터 전송을 위해 연결과 해제를 해야 하는 비효율적인 구조입니다.
- HTTP 1.1: Keep-Alive 속성이 추가되어 지속적인 연결이 가능해졌습니다.
- HTTP 2.0: 멀티플렉싱을 지원하여 단일 TCP 연결로 여러 요청과 응답을 받을 수 있으며, 헤더 압축도 지원합니다.
- HTTP 3.0: TCP 기반을 UDP 기반으로 바꾸어 RTT를 3-RTT에서 1-RTT로 줄였습니다.
문제 4
유형: 서술형
문제: HTTPS와 HTTP의 차이점을 설명하세요.
정답 확인하기
정답:
암호화, 포트 번호를 포함하면 좋음
HTTP와 HTTPS는 웹에서 데이터를 주고받는 프로토콜이지만, 보안 측면에서 차이가 있습니다.
HTTPS는 HTTP에 SSL/TLS 프로토콜을 추가하여 보안이 강화된 프로토콜입니다. 따라서 HTTPS의 경우 모든 데이터가 암호화되어 전송됩니다.
또한, 기본 포트번호도 HTTP는 80번, HTTPS는 443번을 사용합니다.
문제 5
유형: 객관식
문제: HTTP 메서드의 멱등성(idempotent)에 대한 설명으로 올바른 것을 모두 고르시오.
보기:
- 멱등성이란 여러 번 동일한 요청을 보냈을 때 서버가 같은 상태를 가지는 것이다.
- GET 메서드는 멱등성을 갖는다.
- POST 메서드는 멱등성을 갖는다.
- PUT 메서드는 멱등성을 갖는다.
- PATCH 메서드는 멱등성을 갖는다.
정답 확인하기
정답: 1, 2, 4
해설: HTTP 멱등성(idempotent)이란 하나의 요청이 아닌 여러 번 동일한 요청을 보냈을 때 서버가 같은 상태를 가지는 것을 멱등성이라고 합니다.
GET, PUT, DELETE 메서드는 멱등성을 갖고, POST와 PATCH의 경우는 멱등성을 갖지 않습니다.
문제 6
유형: 서술형
문제: PUT과 PATCH의 차이점을 설명하세요.
정답 확인하기
정답:
PUT의 경우 업데이트를 할 때 전체의 데이터를 보내야 하고, 데이터가 없다면 데이터를 생성합니다.
PATCH의 경우 업데이트를 할 때 원하는 데이터만 보내도 됩니다.
문제 7
유형: 객관식
문제: 다음 HTTP 상태 코드에 대한 설명으로 올바른 것을 모두 고르시오.
보기:
- 200: 요청 성공
- 301: 요청한 리소스의 URI가 변경되었음
- 400: 서버 오류
- 404: 요청받은 컨텐츠를 찾을 수 없음
- 500: 클라이언트 인증 문제
정답 확인하기
정답: 1, 2, 4
해설:
- 100: 서버가 요청을 잘 받았고, 해당 프로세스를 계속 이어가라는 코드
- 200: 요청 성공
- 201: 요청 성공 및 새로운 데이터 생성
- 301: 요청한 리소스의 URI가 변경되었음을 의미
- 400: 서버가 클라이언트의 요청을 이해할 수 없음
- 401: 클라이언트 인증 문제
- 404: 요청받은 컨텐츠를 찾을 수 없음
- 500: 서버 오류
- 502: 게이트웨이 또는 프록시서버 오류
- 504: Timeout 시간동안 클라이언트의 요청을 처리하지 못함
문제 8
유형: 서술형
문제: DNS의 역할과 동작 원리에 대해 설명하세요.
정답 확인하기
정답:
DNS의 계층적 조회 과정을 포함하면 좋음
DNS(Domain Name System)는 도메인 네임을 IP 주소로 변환하는 시스템입니다.
DNS는 먼저 브라우저 캐시, 로컬 캐시, 로컬 DNS 서버 순으로 IP 주소를 가져옵니다. 만약 캐싱된 정보가 없다면, 루트 네임 서버에 TLD(Top-Level Domain) 네임 서버의 주소를 요청합니다.
이를 통해 원하는 주소에 대한 네임서버 주소를 얻을 수 있습니다.
TLD를 통해 알아낸 권한 네임 서버에 최종적으로 실제 주소의 IP 주소를 반환받습니다.
여기서 받은 IP 주소는 캐싱하여 저장합니다.
참고 자료: DNS | 👨🏻💻 Tech Interview
문제 9
유형: 서술형
문제: 웹 소켓(WebSocket)이란 무엇이며, 어떻게 작동하는지 설명하세요.
정답 확인하기
정답:
웹 소켓(WebSocket)은 서버와 클라이언트 간의 양방향, 실시간 통신을 가능하게 하는 프로토콜입니다.
웹소켓은 클라이언트가 서버로 웹소켓 핸드셰이크를 요청합니다. 서버가 연결을 수락하게 되면, 기존 HTTP 연결을 웹소켓으로 전환됩니다.
참고 자료: WebSocket | MDN
문제 10
유형: 서술형
문제: CDN은 무엇인가요?
정답 확인하기
정답:
CDN(Content Delivery Network)은 웹 콘텐츠(HTML, CSS, JavaScript, 이미지, 동영상 등)를 사용자와 가까운 서버에서 제공하여 로딩 속도를 최적화하는 분산 네트워크 시스템입니다.
참고 자료: CDN이란? | Cloudflare
문제 11
유형: 서술형
문제: TCP와 UDP의 차이점을 설명하세요.
정답 확인하기
정답:
가상회선 vs 데이터그램, 신뢰성, 속도를 포함하면 좋음
TCP와 UDP는 둘 다 OSI 7계층 중 전송 계층에 해당하는 프로토콜입니다.
TCP는 가상회선(Virtual Circuit)을 사용하고 UDP는 데이터그램(Datagram) 방식을 사용합니다.
가상회선 방식 (TCP):
- 초기 연결 설정이 필요합니다.
- 각각의 패킷은 독립적이지 않아서 고장난 링크나 노드를 만나면 새로운 연결을 설정해야 하는 stateful 방식입니다.
데이터그램 방식 (UDP):
- 초기 연결 설정을 하지 않습니다.
- 각각의 패킷은 독립적으로 포워드하기 때문에 보낸 순서와 받는 순서가 다를 수 있습니다.
- 포워딩 과정 중 고장난 링크나 노드를 우회하여 라우팅을 하는 stateless 방식입니다.
차이 정리:
- TCP는 신뢰성이 높고, UDP는 신뢰성이 낮습니다.
- TCP는 패킷의 순서가 보장되지만 UDP는 보장되지 않습니다.
- 속도 측면에서 TCP는 느리고 UDP는 빠릅니다.
- UDP는 브로드캐스트도 지원합니다.
문제 12
유형: 서술형
문제: UDP와 QUIC의 차이점을 설명하세요.
정답 확인하기
정답:
UDP는 연결 설정 없이 데이터를 빠르게 전송할 수 있는 단순한 전송 프로토콜로, 지연이 적고 오버헤드가 작지만 신뢰성 보장, 순서 보장, 혼잡 제어 등의 기능은 제공하지 않습니다. 이 때문에 실시간 스트리밍이나 게임 등 지연에 민감한 서비스에서 자주 사용됩니다.
QUIC은 UDP 위에서 동작하면서 TCP의 신뢰성, TLS 기반의 보안, 멀티플렉싱, 연결 이관 등의 기능을 결합한 신형 전송 프로토콜입니다. 빠른 연결 수립과 지연 최소화를 통해 HTTP/3의 기반이 되며, 전송 계층과 암호화 계층을 통합해 성능과 보안을 동시에 강화합니다.
참고 자료: QUIC | 👨🏻💻 Tech Interview
문제 13
유형: 객관식
문제: OSI 7계층에 대한 설명으로 올바른 것을 모두 고르시오.
보기:
- 응용 계층(Application): HTTP, FTP, DNS
- 표현 계층(Presentation): 데이터 인코딩/디코딩
- 전송 계층(Transport): IP, 라우터
- 네트워크 계층(Network): IP 주소 기반 패킷 라우팅
- 물리 계층(Physical): MAC 주소 기반 통신
정답 확인하기
정답: 1, 2, 4
해설:
- 응용 계층(Application): 최종 사용자와 직접 연결 (HTTP, FTP, DNS)
- 표현 계층(Presentation): 데이터 인코딩/디코딩 (암호화, 압축)
- 세션 계층(Session): 연결 관리 (소켓)
- 전송 계층(Transport): 신뢰성 있는 데이터 전송 (TCP, UDP)
- 네트워크 계층(Network): IP 주소 기반 패킷 라우팅 (IP, 라우터)
- 데이터 링크 계층(Data Link): MAC 주소 기반 통신 (이더넷, 스위치)
- 물리 계층(Physical): 전기적 신호, 비트 전송 (LAN 케이블, 광섬유)
문제 14
유형: 서술형
문제: TCP의 3-way handshake와 4-way handshake 과정을 설명하세요.
정답 확인하기
정답:
각 단계별 패킷 전송 과정을 포함하면 좋음
TCP의 연결과정과 해제과정은 각각 3-way handshake, 4-way handshake 과정을 겪습니다.
3-way handshake 과정:
- 클라이언트가 서버로 SYN을 보내 연결을 요청
- 서버에서 클라이언트로 SYN + ACK를 보냄
- 클라이언트에서 수신받으면 서버로 ACK를 보내며 TCP가 연결됨
4-way handshake 과정:
- 클라이언트가 연결을 해제하기 위해 FIN 요청을 보냄
- 서버는 이를 받아 ACK를 보냄
- 서버는 남은 요청들을 처리 후 FIN을 클라이언트에게 보냄
- 클라이언트가 이를 수신하여 ACK를 서버에게 보내고, 혹시나 지연된 데이터 응답이 있을 수 있기에 일정 시간 기다린 후 연결을 종료
참고 자료: TCP 3 way handshake & 4 way handshake | 👨🏻💻 Tech Interview
문제 15
유형: 서술형
문제: TCP의 연결 설정 과정(3단계)과 연결 종료 과정(4단계)이 단계가 차이나는 이유는?
정답 확인하기
정답:
TCP의 연결 설정은 신뢰성을 확보하기 위해 클라이언트와 서버가 서로 송수신 가능 상태임을 확인하는 3-way handshake 방식으로 충분하지만, 연결 종료는 데이터를 모두 안전하게 주고받았는지 확인하고 양쪽이 각각 종료 의사를 명확히 표현해야 하므로 4-way handshake로 처리됩니다.
종료 과정에서는 양측이 독립적으로 FIN과 ACK를 주고받기 때문에 두 번의 종료 요청과 두 번의 확인 응답이 필요해 단계 수가 더 많아집니다.
참고 자료: TCP 3 way handshake & 4 way handshake | 👨🏻💻 Tech Interview
문제 16
유형: 서술형
문제: TCP 연결 해제 과정에서 TIME_WAIT이 발생하는 이유에 대해 설명해주세요.
정답 확인하기
정답:
TIME_WAIT은 TCP 연결 종료 과정에서 마지막 ACK를 보낸 측이 일정 시간 동안 연결 정보를 유지하는 상태로, 재전송되는 FIN 패킷에 대해 올바르게 응답하고 지연된 패킷이 새 연결에 영향을 주지 않도록 하기 위해 존재합니다.
이는 연결 종료가 완전히 보장되었음을 확인하고, 동일한 소켓 쌍(IP와 포트)이 재사용될 때 이전 연결의 잔여 패킷이 충돌을 일으키는 것을 방지하기 위한 TCP의 신중한 설계입니다.
문제 17
유형: OX형
문제: Server에서 FIN 플래그를 전송하기 전에 전송한 패킷이 Routing 지연으로 FIN 패킷보다 늦게 도착하면, 해당 데이터는 무시된다.
정답 확인하기
정답: X
해설: TCP는 시퀀스 번호로 순서를 보장하므로, 서버가 FIN을 전송한 뒤에 이전 시퀀스의 데이터가 지연되어 나중에 도착해도 문제없이 처리됩니다.
수신 측은 FIN 이후 도착한 세그먼트라도 순서상 유효하면 수신 버퍼에 저장하고, 모든 데이터가 도착한 후에야 연결을 종료합니다. FIN은 전송 종료 의사를 나타내는 신호일 뿐, 이후 데이터가 무시되는 것은 아니며 TCP의 신뢰성과 순서 보장이 유지됩니다.
문제 18
유형: 서술형
문제: TCP/IP 4계층에서의 데이터 캡슐화 과정을 설명해주세요.
정답 확인하기
정답:
TCP/IP 4계층에서의 데이터 캡슐화 과정은 애플리케이션 계층에서 시작하여 물리 계층으로 내려가면서 각 계층마다 헤더 정보를 덧붙이는 방식으로 이루어집니다.
먼저 애플리케이션 계층에서는 사용자 데이터를 생성하고, 전송 계층은 이 데이터를 세그먼트로 분할한 뒤 송신지 및 수신지 포트 번호가 포함된 TCP 또는 UDP 헤더를 붙입니다.
이후 인터넷 계층에서는 IP 헤더를 추가해 IP 패킷을 만들고, 네트워크 상에서 올바르게 라우팅될 수 있도록 합니다.
마지막으로 네트워크 인터페이스 계층에서는 MAC 주소 등의 정보가 포함된 프레임 헤더와 트레일러를 추가해 실제 전송 가능한 프레임을 완성하고, 이를 물리 매체를 통해 전송하게 됩니다.
문제 19
유형: 서술형
문제: HTTPS에서 TLS 핸드셰이크 과정을 설명하세요.
정답 확인하기
정답:
주요 단계를 포함하면 좋음
1. 클라이언트 Hello: 클라이언트가 서버와 보안 연결을 요청(TLS 버전, 지원 가능한 암호화 알고리즘 목록, 랜덤 값 등)
2. 서버 Hello: 서버가 응답하며 TLS 설정을 협상(서버가 선택한 TLS 버전, 선택한 암호화 알고리즘, SSL/TLS 인증서)
3. 서버 인증서 검증: 클라이언트가 서버 인증서가 올바른 것인지 검증(위조 여부, 만료 여부, 신뢰할 수 있는 기관에서 받았는지 등)
4. 키 교환:
- 서버가 공개키 전달
- 클라이언트는 공개키를 이용해 임시 키를 생성
- 서버의 공개키로 암호화하여 전송
- 서버는 비공개키로 복호화하여 Premaster Secret 획득
- Client Random + Server Random + Premaster Secret로 대칭키(세션 키) 생성
5. 핸드셰이크 완료: 클라이언트와 서버가 생성한 세션 키를 통해 암호화된 메시지를 교환
문제 20
유형: 서술형
문제: CORS란 무엇이며, 어떻게 동작하는지 설명하세요.
정답 확인하기
정답:
SOP, Simple Request, Preflight Request를 포함하면 좋음
CORS(Cross-Origin Resource Sharing)란 HTTP 헤더를 기반으로 브라우저가 다른 오리진에 대한 리소스 로드를 허용할지 말지에 대한 메커니즘입니다.
SOP 정책: SOP(Same Origin Policy)는 같은 오리진끼리만 요청을 허가하는 정책인데 다른 오리진끼리도 요청이 필요한 경우 CORS를 허용해야 합니다.
CORS의 과정:
- Simple Request: 허용된 메서드 타입, 헤더에 해당된 내용이면 사전 요청 없이 바로 서버에 요청하는 방식
- Preflight Request: 허용되지 않은 메서드 타입이나 헤더가 있는 경우 보안 검사를 위해 OPTIONS 요청을 먼저 보내고 이를 서버에서 수락하면 실제 요청을 보냄
서버에서는 Access-Control-* 헤더로 응답하여 해당 헤더에 요청한 오리진이 없다면 CORS 에러가 나오고 요청한 오리진이 있다면 정상 작동합니다.
참고 자료: CORS | 👨🏻💻 Tech Interview
문제 21
유형: 객관식
문제: 브라우저 접속 과정을 순서대로 나열한 것은?
보기:
- DNS 조회 → TCP 연결 → HTTPS 검증 → HTTP 요청 → 렌더링
- TCP 연결 → DNS 조회 → HTTP 요청 → 렌더링
- DNS 조회 → TCP 연결 → HTTP 요청 → 렌더링
- HTTP 요청 → DNS 조회 → TCP 연결 → 렌더링
정답 확인하기
정답: 1 (HTTPS의 경우)
해설:
- 사용자가 주소창에 URL을 입력하게 되면 브라우저는 DNS 서버를 통해 도메인을 IP 주소로 변환합니다.
- 실제 IP 주소를 얻었다면 3-way handshake로 TCP 연결을 합니다.
- HTTPS라면 인증서의 유효성을 검증합니다.
- 브라우저는 서버로 HTTP 요청을 보내 데이터를 받아 렌더링을 합니다.
문제 22
유형: 객관식
문제: 브라우저 렌더링 과정을 순서대로 나열한 것은?
보기:
- HTML 파싱 → CSS 파싱 → JavaScript 실행 → 렌더트리 생성 → 레이아웃 계산 → 페인팅
- CSS 파싱 → HTML 파싱 → 렌더트리 생성 → 레이아웃 계산 → 페인팅
- HTML 파싱 → 렌더트리 생성 → CSS 파싱 → 레이아웃 계산 → 페인팅
- HTML 파싱 → CSS 파싱 → 렌더트리 생성 → 페인팅 → 레이아웃 계산
정답 확인하기
정답: 1
해설:
- HTML을 파싱하여 DOM 트리 구축
- CSS 파일을 파싱하여 CSSOM 트리 구축
<script>태그를 만나면 JavaScript 실행- DOM과 CSSOM을 결합한 렌더트리를 생성
- 레이아웃 계산(Reflow)
- 페인팅
문제 23
유형: 서술형
문제: 브라우저의 캐시 동작 방식에 대해 설명하세요.
정답 확인하기
정답:
메모리 캐시와 디스크 캐시의 차이를 포함하면 좋음
브라우저가 리소스를 요청할 때, 캐시에 해당 리소스가 있는지 확인하고 있다면 유효한지 확인 후 해당 리소스를 사용합니다.
브라우저는 캐시 데이터를 메모리 캐시 혹은 디스크 캐시에 저장 가능합니다.
메모리 캐시: 현재 열린 탭에서 저장하고 브라우저가 닫히면 사라집니다.
디스크 캐시: 브라우저가 파일을 디스크에 저장하여 브라우저를 닫아도 유지됩니다.
문제 24
유형: 객관식
문제: 브라우저에서 발생할 수 있는 메모리 누수 방지 방법으로 올바른 것을 모두 고르시오.
보기:
- 전역 변수 사용을 최소화한다.
- 이벤트 리스너를 제거하지 않는다.
- removeEventListener()를 사용하여 불필요한 이벤트 리스너를 제거한다.
- 클로저 내부의 불필요한 데이터를 정리한다.
- var를 적극적으로 사용한다.
정답 확인하기
정답: 1, 3, 4
해설:
- 전역변수로 인한 메모리 누수:
var를 통해 선언된 전역 변수는 메모리에 계속 유지되므로, 사용을 최소화해야 합니다. - 이벤트 리스너 미제거:
removeEventListener()를 사용해서 필요 없는 이벤트 리스너는 제거해야 합니다. - 클로저로 인한 메모리 누수: 선언한 클로저에 대해 사용하지 않는다면 클로저의 내부에 불필요한 데이터를 정리해야 합니다.
문제 25
유형: 서술형
문제: 쿠키, 세션, 로컬 스토리지에 대해 설명하고 차이점을 서술하세요.
정답 확인하기
정답:
저장 용량, 만료 기한, 접근 범위, 서버 전송 여부를 포함하면 좋음
세 가지 전부 브라우저에 캐싱을 함으로써 서버의 부담을 줄이고 더 빠르게 데이터를 받아올 수 있습니다.
차이점:
최대 저장 용량: 세션과 로컬 스토리지가 쿠키보다 많습니다.
접근 범위: 세션은 탭이지만, 쿠키와 로컬 스토리지는 오리진입니다.
만료 기한: 쿠키는 수동으로 설정하고, 세션은 탭을 닫으면 소멸되고, 로컬 스토리지는 영구적입니다.
서버 전송: 쿠키는 세션과 로컬 스토리지와 다르게 요청과 함께 서버에 자동 전송됩니다.
문제 26
유형: 서술형
문제: 인증(Authentication)과 인가(Authorization)에 대해 설명하세요.
정답 확인하기
정답:
인증은 사용자의 신원을 확인하는 과정이고, 인가는 사용자가 특정 리소스나 기능에 접근할 권한이 있는지 확인하는 과정입니다.
참고 자료: 인증과 인가 | 👨🏻💻 Tech Interview
문제 27
유형: 서술형
문제: 토큰 기반 인증 방식에 대해 설명하세요.
정답 확인하기
정답:
사용자가 로그인하면 서버는 사용자를 인증한 후에 Access Token, Refresh Token을 발급합니다.
사용자는 이후 요청 시에 헤더에 토큰을 포함하여 전송합니다.
서버는 토큰을 검증하여 요청을 처리하고, 만료된 경우 Refresh Token을 통해 새로운 Access Token을 발급받습니다.
참고 자료: JWT | 👨🏻💻 Tech Interview
문제 28
유형: 서술형
문제: JWT(JSON Web Token)의 보안적인 취약점과 해결 방법을 설명하세요.
정답 확인하기
정답:
JWT는 클라이언트에서 보관하므로 XSS 공격으로 쉽게 유출될 수 있습니다.
이를 해결하기 위해 로컬 스토리지 대신 HttpOnly 쿠키를 사용하거나, 토큰을 짧게 유지하고 Refresh Token을 저장하면 됩니다.
참고 자료: JWT 보안 | 👨🏻💻 Tech Interview
문제 29
유형: 서술형
문제: XSS(Cross-Site Scripting) 공격이 무엇이고, 이를 방지하는 방법에 대해 설명하세요.
정답 확인하기
정답:
XSS는 공격자가 악성 스크립트를 웹사이트에 삽입하여 실행시키는 공격 기법입니다.
이를 방지하는 방법 중 하나는 쿠키 탈취 방지를 위해 HttpOnly 속성을 설정하거나 Secure 속성을 추가하여 HTTPS 환경에서만 쿠키가 전송되도록 설정하면 됩니다.
참고 자료: XSS | OWASP
문제 30
유형: 서술형
문제: REST API에 대해 설명하고, REST와 RESTful의 차이를 서술하세요.
정답 확인하기
정답:
REST API는 REST(Representational State Transfer) 아키텍처 스타일을 따르는 API를 의미합니다. REST는 자원을 HTTP URI로 표현하고, HTTP 메서드(GET, POST, PUT, DELETE 등)를 활용하여 자원을 관리하는 방식입니다.
REST와 RESTful의 차이: REST는 아키텍처 스타일이고, RESTful은 REST 원칙을 지킨 API입니다.