Web
WEB은 World Wide Web의 약자로 인터넷이라는 서비스 체계 위에서 동작하는 서비스 중에 하나
http
HTTP(Hypertext Transfer Protocol)는 인터넷 위에서 동작하는 서비스 중에서 하나인 WEB이라는 서비스를 이용하기 위해서 준수해야 되는 통신 규약으로 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다.
웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜
클라이언트와 서버들은 (데이터 스트림과 대조적으로) 개별적인 메시지 교환에 의해 통신한다.
요청(requests) : 브라우저인 클라이언트에 의해 전송되는 메시지
응답(responses) : 그에 대해 서버에서 응답으로 전송되는 메시지
http 특징
1. 비연결지향
서버는 요청에 대한 응답을 보낸 후 연결을 끊는다.
2. 무상태
연결을 끊는 순간 클라이언트와 서버의 통신이 끝나고 상태 정보가 유지되지 않는다.
클라이언트와 서버가 주고받는 메세지들은 독립적이다.
Server, Client
사용자의 요청을 받아 응답한다. "서브" 정보를 제공한다는 의미로 서버이며, 정보를 제공하는 사업자가 사용하는 컴퓨터 또는 컴퓨터 위에 설치되어 있는 소프트웨어들을 서버라고 한다.
하나의 템플릿을 html이나 data로 만들어서 client에 제공한다.
클라이언트는 서비스 및 데이터를 요청하는 쪽이다.
표면적으로 웹브라우저인 크롬, 파이어폭스, 익스플로러 등을 웹 클라이언트라고 한다.
Client ↔ Server 통신 중에 Server 단에서 html or data 를 만든다.
IP 주소
Internet Protocol address, IP address, 인터넷규약주소
컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호
IPv4
32비트 길이의 식별자로 0.0.0.0 ~ 255.255.255.255 까지의 숫자 조합으로 이루어져있다.
4영역으로 나누어진 최대 12자리의 번호로 이루어져 있다.
ex)
127.0.0.1
192.12.100.2
IPv6
128비트 길이의 식별자로 IPv4 의 한계를 보완하기 위해 설계되었다.
기존의 IPv4 의 32비트 주소보다 4배나 많은 정보를 수용할 수 있는 차세대 IP이다.
IPv6주소는 128 비트체계로 구성되어 있다.
표현방법은 128비트는 16비트씩 8부분으로 나누어 각 부분을 콜론(:)으로 구분하여 표현하며 각 16진수로 표현한다.
최대 개수는 3.4 * 10^38 까지 만들어진다.(대략 43억 *4개)
ex)
0:0:0:0:0:0:0:1
2001:230:abcd:ffff:0000:0000:ffff:1111
IPv4는 인터넷 프로토콜의 4번째 판이며, 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다. 과거에 인터넷에서 사용되는 유일한 프로토콜이였으나 오늘날에는 IPv6이 대중화되었다.
IPv4 와 IPv6 은 IPv6가 IPv4의 향상된 버전 인 인터넷 프로토콜의 버전으로 가장 큰 차이점은 생성하는 주소 수 (주소 공간)이다.
DTO(Data Transfer Object)
순수하게 데이터를 담아 계층 간으로 전달하는 객체로 전송되는 데이터의 컨테이너이다.
완전히 데이터 '전달' 용도로만 사용하기 때문에 로직을 갖고 있지 않은 순수한 데이터 객체이며 메서드로는 getter/setter 만을 가진다.
VO(Value Object)
VO는 값 그 자체를 나태는 객체이다.
데이터 그 자체로 의미 있는 것을 담고 있는 객체로 DTO와 동일한 개념이나 차이점은 Read–Only 속성 객체인 것이다.
로직을 포함할 수 있으며, VO의 경우 특정 값 자체를 표현하기 때문에 불변성의 보장을 위해 생성자를 사용하여야 한다.
VO는 서로 다른 이름을 갖는 VO 인스턴스라도 모든 속성 값이 같다면 두 인스턴스는 같은 객체이다.
setter 메소드를 가지면 안되고, 생성자를 통해서만 값을 초기화 해야 한다.
로직이 포함된 메소드를 가질 수 있다.
'Computer Science > CS' 카테고리의 다른 글
사용중인 port 검색 및 지우기 kill (0) | 2023.09.06 |
---|---|
TDD 테스트 주도 개발 / pytest-django (0) | 2023.01.16 |
컴파일 / 컴파일러, 인터프리터 비교 (0) | 2022.06.12 |