web 서비스란
- '웹' 이라는 공간에서 제공되는 서비스
'웹 개발자'는 그 서비스를 설계, 제작, 관리하는 것
ex) 식당에 서버가 수저, 젓가락 놓아주고 주문을 받아 요청에 알맞게 알맞는 서비스를 제공
서비스를 누리는 사람(손님)은 클라이언트
- 클라이언트와 서버 상호작용
클라이언트
- 요청하는 주체
브라우저라는 도구를 활용하여 웹서버에 요청
사용자 + 브라우저 = 클라이언트
서버
- 요청에 대한 처리를 한 후 응답을 준다.
서버의 해당 프로그램의 내부에 설계된 요청을 캐치하는 부분 -> 각 요청에 따른 서비스를 실시 및 응답을 제공하는 부분으로 나눌 수 있다.
- 요청은 url과 method의 조합으로 실시한다.
http라는 서로간의 약속된 상호작용 방법 안에서 utl+method로 하는 것
- method : GET, POST, PUT, PATCH, DELETE
- 주요 기능은 (정적)페이지 제공, API 제공이다.
API
- 여러 소프트웨어 간 정보나 기능 공유하는 중간 매개체
- 일종의 규약(약속)
- 한 프로그램이 다른 프로그램의 기능을 사용하거나 정보를 가져올 수 있다.
- 클라이언트의 요청에 따라 동적으로 데이터 정보 제공
- Json이나 XML형식 응답반환
- 종류
- RESTFul API (전통적 방식)
웹 서비스에서 사용하는 설계방법
자원을 url로 표현 + 처리 종류를 HTTP 매소드를 통해 표현
XML,JSON 형태로 데이터 주고 받음
- GraphQL API (현대적 방식)
API 쿼리 언어
클라이언트가 필요로 하는 데이터의 형태와 구조 요청
서버가 그에 따른 데이터를 상세히 반환
오버페칭 + 언더페칭 해결
두 방법의 장단점이 존재하며 프로젝트의 상황과 환경, 요구사항에 따라 적합한 방법을 선택하면 된다.
프론트엔드
사용자가 웹사이트에서 직접 보고 상호작용하는 부분이다.
웹 페이지의 디자인, 버튼 클릭, 입력 폼 등 사용자 인터페이스와 관련된 모든 것을 포함.
백엔드
서버, 데이터베이스, 애플리케이션 로직 등 사용자의 눈에 보이지 않는 부분을 관리한다.
사용자가 웹사이트에서 정보를 요청하면, 백엔드는 해당 정보를 처리하거나 데이터베이스에서 가져와 프론트엔드에 전달.
- 프론트엔드와 백엔드는 웹사이트, 어플리케이션을 구동하기 위해 서로 협력한다.