네트워킹을 이해하기 위해 알아야 할 사전 지식에 대해 알아보자
📖HTTP Protocol
하이퍼 문서를 전송하는 것에서 시작(현재는 이미지/영상/음성/파일/JSON 등 모든 형태의 데이터 전송 가능) 현재 인터넷의 모든 것은 HTTP로 이루어져 있음
- www(웹)을 구성하는 기술 중 하나(HTML/HTTP/URL)
- HTTP 메세지에 데이터를 담아 통신을 함
📎HTTP 요청 메세지

요청 메소드
사용자 요청의 목적/종류를 알리는 메소드
| 메소드 | 설명 | 데이터 전송 방법 | 예시 |
|---|---|---|---|
| GET | 리소스 취득(조회) | 쿼리 파라미터 | 게시판 글 읽어오기(데이터 표시) |
| POST | 엔티티(등록) | 메세지 바디 | 게시판 글쓰기/댓글 달기/ 새로운 주문 생성 |
| PUT | 파일 전송(데이터 대체/없으면 생성) | 메세지 바디 | 게시글 수정(데이터 전부 대체) |
| DELETE | 파일 삭제(삭제) | 게시물 삭제 | |
| PATCH | 리소스 부분 변경 | 메세지 바디 | PUT에서 필요한 부분을 부분 변경 |
- 이 외에도 많지만 표의 메소드들은 실제 주로 사용하는 메소드(CRUD)
📎HTTP 응답 메세지

상태 코드
특정 HTTP 요청이 성공적으로 완료되었는지 알려주는 코드
| 상태 코드 종류 | 클래스 | 설명 | |
|---|---|---|---|
| 1xx | informational | 리퀘스트를 받아들여 처리중 | 거의 사용 X |
| 2xx | Success | 리퀘스트를 정상적으로 처리했음 | 성공 |
| 3xx | Redirection | 리퀘스트를 완료하기 위해 추가 동작이 필요 | |
| 4xx | Client Error | 서버는 리퀘스트 이해 불가 | 클라이언트 에러 (잘못된 요청) |
| 5xx | Server Error | 서버는 리퀘스트 처리 실패 | 서버 에러 (서버 내부의 문제) |
📖JSON
데이터를 나타내는 방법 중 하나 (예전엔 XML)
key-value로 이루어진 데이터들의 집합- 구조화된 데이터를 표현하기 위해 사용
- 우리가 앱에서 사용할 때는 이걸 클래스나 구조체로 바꿔서 사용
📖REST API
REST의 원리를 따르는 API
📎REST(Representational State Transfer)
자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것
- HTTP URI(Uniform Resource Identifier)를 통해 자원을 명시
- HTTP Method(CRUD)를 통해 해당 자원에 대한 CRUD Operation을 적용
API(Application Programming Interface)
상호간의 정보를 교환하기 위한 인터페이스 즉, 요청방식에 대한 약속 이 API는 어떤 주소로 무엇을 요청해야 어떤 결과를 줄건지에 대한 약속이 존재
📖결론적으로 HTTP통신이란
웹에서
client와server가 통신해 정보를 주고 받는 것
client가 HTTP 요청 메세지(요청 메소드+데이터+기타 등등)를 보내서server에 요청- 요청 메서드 종류 : CRUD
- 데이터 형태 :
JSON
server는 요청 메세지 확인해서 어떤 종류의 요청인지 파악한 후 처리server는 해당 요청 처리 후 자신이 응답했다는 걸client에 알리기 위해 HTTP 응답 메세지(상태 코드+데이터+기타 등등)를client에게 보냄- 상태 코드 : 1xx ~ 5xx
- 데이터 형태 :
JSON
client는 요청의 결과인 데이터를 받아서 사용- 이 때,
JSON형태의 데이터를client가 쓸 수 있도록 구조체, 클래스 등으로 바꿈 → 이걸 할 때 API 주소나 메소드 등을 누구나 알아볼 수 있게 작성하자!! 가 REST API
- 이 때,