본문 바로가기
부트캠프/백

11.29 네트워크,HTTP

by 티코딩 2022. 11. 29.

오늘은 진정한 백엔드가 알아야할 cs지식에 대해 배웠다. 비전공자를 위한 IT지식에서 봤던 내용이 많았다. 하지만 그렇다고 해서 다 알진 못했다. 안본지 오래돼서 까먹은 내용이 정말 많았다.

 

ㅇ 애플리케이션과 네이티브 애플리케이션

웹 어플리케이션은 설치필요 없이 웹 브라우저를 통해 접근이 가능한 어플리케이션. 설치해서 사용하는 애플리케이션은 네이티브 애플리케이션이라고 한다. 

 

ㅇ LAN과 WAN

LAN 좁은범위에 연결된 네트워크, 수많은 LAN이 연결된것이 WAN.

 

ㅇ 프로토콜

멀리 떨어진 컴퓨터들끼리 서로 소통을 하기 위한 일종의 약속. 요즘 주로 사용되는 프로토콜이 TCP/IP 프로토콜. 어느 컴퓨터든 네트워크를 사용할 수 있게 하는 공통 언어.

 

ㅇ TCP/IP

4계층 모델이 존재함

4층(응용계층) - 애플리케이션에 맞춰 통신한다.

3층(전송계층) - IP와 앱을 중개해 데이터를 확실히 전달한다.

2층(인터넷계층) - 네트워크 주소를 기반으로 데이터전송함.

1층(네트워크 접근계층) - 컴퓨터를 물리적으로 네트워크에 연결해 기기간 전송가능하게 함.

 

ㅇ 교환

회선교환 - 통신회선을 설명해 교환하며 1대1로 데이터를 교환함. 주로 음성전화

패킷교환 - 원본데이터를 패킷이라는 작은 단위로 나누고 여러 회선을 공용해 통신을 주고 받음. 한개의 패킷은 헤더와 페이로드로 구성되어 있고 헤더에는 데이터의 정보, 목적지에 대한 정보가 들어있다.

 

ㅇ TCP와 UDP

인터넷 계층의 상위에서 동작함. 전송계층에 속하는 TCP와 UDP는 2계층에서 동작하는 IP와 4계층에서 동작하는 앱을 중개하는 역할을 함.

TCP는 신뢰성을 높이는 기능을 제공하고, UDP는 높은 속도와 효율성을 제공한다. 상황에 따라 사용함.

 

ㅇ URL(Uniform Resource Locator)

웹에 게시된 어떤 자원을 찾기 위한 브라우저에서 사용되는 메커니즘. 

scheme - 통신방식을 결정함.

hosts - 웹서버의 이름, 도메인, IP사용해서 주소를 나타낸다.

URL-Path - 경로와 파일명을 나타냄.

 

ㅇ URI(Uniform Resources Identifier)

일반적인 URL의 구서요소 + query, bookmark를 포함.

쿼리는 웹 서버에 보내는 추가적인 질문이다.

 

ㅇ 웹

인터넷에서 제공되는 하이퍼텍스트 시스템이다. 하이퍼텍스트 - 문서안에 다른 문서의 위치정보 등을 포함해 문서 간 정보를 서로 연관지어 참조할 수 있는 문서

웹은 HTML로 대표되는 하이퍼텍스트 언어와 인터넷이 융합해 탄생하게 되었다. 

 

ㅇ 클라이언트-서버(2티어 아키텍처)

웹에서 제공되는 서비스는 주로 서비스이용(클라이언트)와 제공(서버)로 나뉜다. 이것을 클라이언트-서버 아키텍쳐라고 함.

서버는 유지보수 시점을 제외하고 24시간 일년 내내 작동해야 한다. 

일반적으로 서버는 리소스를 전달해 주는 역할을 하는데 리소스를 저장하는 공간을 “데이터베이스”라고 부름. 기존 2티어 아키텍처에 데이터베이스를 추가한 형태를 3티어 아키텍처라고 부름 백엔드는 서버의 기능, 더 나아가 데이터베이스 등의 시스템 설계까지 한다.

 

ㅇ 웹 애플리케이션 아키텍처

데스크탑 애플리케이션처럼 상호작용 가능하고, 특정 기능을 가지고 있고, 정보나 자료 등의 콘텐츠 관리 시스템과 함께 작동한다. 웹사이트는 정적페이지들의 집합체, 동적 페이지를 포함하면 웹 애플리케이션이 된다. 

 

ㅇ 웹 애플리케이션의 구조

Presentation Layer - 유저와 브라우저 등을 이용해 직접적을 접촉

Application Layer - 유저의 요청을 브라우저로부터 받아서 처리를 함. 데이터 접근을 위함 경로 규격화

Data access Layer - 데이터저장소에 접근해 데이터를 불러 오거나 저장을 담당함. 

 

ㅇ 웹 애플리케이션 구현 기술

HTTP - 웹 브라우저상에서 클라이언트와 서버간 통신을 담당하는 프로토콜

Cookie,Session - 쿠키: 유저의 정보를 클라에 보관, 다음 접속부터는 유저의 정보를 클라이언트가 서버로 보내서 서버가 식별하게 함. 세션: 고유 아이디를 할당해 유저를 식별함.

사용자 인증 - 컴퓨터나 특정 시스템을 사용할 때 유저를 식별 할 수 있는 ID값과 암호.

 

ㅇ SSR과 CSR

SSR(Server Side Rendering) - 서버에서 렌더링함. 브라우저가 서버의 URI로 GET요청 보내고, 서버는 정해진 웹페이지 파일을 브라우저로 정송함. 그리고 서버의 웹 페이지가 브라우저에 도착하면 완전히 렌더링됨.

CSR(Client Side Rendering) - SSR의 반대로 여겨짐. CSR은 클라이언트 Javascript가 페이지를 렌더링함. 웹 페이지의 골격이 될 단이 페이지를 클라이언트에 보냄. 이때 서버는 웹페이지와 함께 JavaScript 파일을 보냄

 

둘의 주요한 차이는 렌더링되는 위치다.