웹 아키텍처
- 2티어 아키텍처 : 리소스와 앱(클라이언트)을 분리. 클라이언트가 요청을 하면 서버가 응답을 준다.
- 3티어 아키텍처 : 2티어 아키텍처에 데이터베이스를 추가(클라이언트-서버-데이터베이스). 서버는 리소스를 전달해 주는 역할만 담당한다.
HTTP(HyperText Transfer Protocol)
- 클라이언트와 서버가 이용하는 프로토콜(통신 규약)
- HTTP, HTTPS는 네트워크의 7계층 중 application에 해당한다.
- URL, URI
- URL(Uniform Resource Locator)
- 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나태낸다.
- scheme(통신 프로토콜) : ex) http
- hosts(서버IP, 도메인) : ex) www.example.com
- port : ex) :80
- url-path(루트로부터의 경로) : ex) /path/to/myfile.html
- parameters : ex) ?key1=value1&key2=value2
- anchor : ex) #SomewhereInTheDocument
- URI(Uniform Resource Identifier) : 리소스를 가리키는 문자열. URL, ISBN등이 포함된다.
- '무상태성'을 갖는다. 상태를 저장하지 않는다.
DNS
- 도메인을 IP주소, 또는 그 반대로 변환해 주는 데이터베이스 시스템
- 도메인으로 IP주소를 확인하는 CLI명령어 : nslookup
SSR, CSR
- SSR(Server Side Rendering)
- 웹 페이지를 서버에서 렌더링
- 검색 엔진 최적화가 우선순위인 경우 사용
- 웹 페이지가 사용자와 상호작용이 적을 때 적절
- CSR(Client Side Rendering)
- 클라이언트(브라우저)에서 페이지를 렌더링
- 서버는 웹 페이지와 JS파일을 클라이언트에게 보낸다.
- 브라우저가 다른 경로로 이동하면 브라우저는 처음 서버에서 받은 웹 페이지를 이용해 렌더링한다.
- 원하는 부분만 렌더링 가능하기 때문에 더 나은 UX를 제공 가능하다.
- AJAX는 CSR을 위해 사용된다.