728x90

네트워크 9

[네트워크] REST, REST API, RESTFUL

REST API란 REST의 원리를 따르는 API를 의미하고, RESTFUL이란 REST의 원리를 따르는 시스템을 의미한다그렇다면 REST란 무엇일까? REST란 HTTP URI를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다. REST는 자원(Resource), 행위(Verb), 표현(Representation)의 세 가지 요소로 구성된다자원(Resource): `http://example.com/users/1`는 ID가 1인 사용자 자원을 식별행위(Verb): GET, POST, PUT, DELETE를 통해 자원에 대한 동작을 정의표현(Rep..

네트워크 2024.05.27

[네트워크] OSI 7계층과 TCP/IP 4계층

OSI 7 계층이란? 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델 1계층 (물리계층) : 하드웨어, 데이터를 물리적인 전송매체(허브, 케이블)을 통해 전기 신호로 바꾸어줌 2계층 (데이터링크계층) : 물리적인 네트워크 사이에서 데이터 전송 3계층 (네트워크계층) : 데이터를 목적지까지 안전하게 빠르게 전달 4계층 (전송계층) : 두 지점까지 신뢰성 있게 데이터를 주고 받게 함 5계층 (세션계층) : 네트워크상 양쪽 연결을 관리하고 연결을 지속시켜줌 6계층 (표현계층) : 양쪽의 데이터 형식을 올바르게 지정 7계층 (응용계층) : 사용자와 직접 연결, 사용자로부터 정보를 입력받아 하위계층으로 전달하고, 하위계층에서 정보를 전달받아 사용자에게 전달 ..

네트워크 2024.02.01

[네트워크] DNS

웹 사이트의 콘텐츠를 서비스하는 서버부터 모든 스마트폰 노트북 등 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신하는데 이를 IP 주소라고함. IP주소를 사용하여 통신하는것은 너무 불편 -> 따라서 도메인을 사용하여 통신함 웹사이트의 데이터가 저장되어 있는 호스팅 서버는 인터넷 회신이 연결된 컴퓨터 IP장치가 할당되어 있고 이 주소가 실제 웹사이트 주소, DNS 서버는 이런 IP 주소를 특정 도메인 주소와 같다는 기록을 저장해두고, 인터넷 사용자들이 도메인 주소를 검색했을 때 IP 주소로 연결되도록 해준다   DNS 예시어떤 유저가 브라우저에 NAVER.COM 으로 검색먼저, DNS 서버로 도메인 주소 전달되어 NAVER.COM 에 맞는 IP주소를 찾아 브라우저에게 IP 주소 전송브라우저는 IP주소를 갖..

네트워크 2023.06.14

[네트워크] HTTP

http( hyper text transfer protocol )는 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다  프로토콜? 규칙이라 생각하면 편하다이렇게 규칙을 정해두었기 때문에, 모든 프로그램은 규칙에 맞춰 개발하며 정보 교환이 가능해짐 http는 클라이언트가 요청을 생성하기 위한 연결을 연 다음 응답을 받을 때까지 대기하는 전통적인 클라이언트-서버 모델을 따름http는 www 상에서 주로 html 문서를 주고 받으며 tcp와 udp를 사용한다.   http의 동작 방식클라이언트가 브라우저를 통해서 어떠한 서비스를 url를 통해 서버에 요청하면 서버에서는 해당 요청에 대한 결과를 응답하는 형태로 동작   http 프로토콜 특징 비연결성(connectionless)무상태(stateless) 비연결..

네트워크 2023.06.12

[네트워크] 쓰레드, 멀티 쓰레드

프로세스?프로세스의 생성에는 많은 리소스가 소모프로세스가 생성되면, 프로세스간의 컨텍스트 스위칭으로 인해 성능 저하컨텍스트 스위칭은 프로세스의 정보를 하드디스크에 저장 및 복원하는 일메모리가 독립적으로 운영되어 데이터 공유 불가능따라서 운영체제가 별도로 제공하는 메모리 공간을 대상으로 별도의 IPC기법 적용 쓰레드프로세스보다 가벼운, 경령화된 프로세스컨텍스트 스위칭이 빠름쓰레드 별로 메모리 공유가 가능하기 때문에 별도의 IPC 기법 불필요프로세스 내에서의 프로그램의 흐름 추가 쓰레드와 프로세스의 차이점 위와 같이 프로세스는 서로 완전히 독립적, 운영체제의 관점에서 실행흐름을 구성    반면, 쓰레드는 프로세스 내에서의 실행흐름, 데이터 영역과 힙영역을 공유하기 때문에 컨텍스트 스위칭에 대한 부담이 덜하고..

네트워크 2023.06.11

[네트워크] IO 멀티플렉싱

멀티 프로세스 서버의 단점프로세스의 빈번한 생성은 성능의 저하로 이어짐멀티 프로세스의 흐름을 고려해서 구현해야 하기 때문에 구현이 쉽지 않음프로세스간 통신이 필요한 상황에서는 서버의 구현이 더 복잠해짐 이 대안은? 하나의 프로세스가 다수의 클라이언트에게 서비스를 할 수 있게 함하나의 프로세스가 여러 개의 소켓을 핸들링 할 수 있는 방법이 존재야함 --> 이것이 IO 멀티플렉싱이다멀티플렉싱은 하나의 리소스를 둘 이상의 영역에서 공유하는 것 select 함수select 함수를 사용하면 한곳에 여러개의 파일 디스크립터를 모아 놓고 다음과 같은 사항을 관찰할수 있다수신한 데이터를 지니고 있는 소켓이 존재하는가?블로킹되지 않고 데이터의 전송이 가능한 소켓을 무엇인가?예외상황이 발생한 소켓은 무엇인가? select..

네트워크 2023.06.11

[네트워크] 시그널 핸들링

시그널이란?특정 상황이 되었을 때 운영체제가 프로세스에게 해당 상황이 발생했음을 알리는 일종의 메시지 SIGALRM : alarm 함수호출을 통해서 등록된 시간이 된 상황SIGINT : CTRL+C가 입력된 상황SIGCHLD : 자식 프로세스가 종료된 상황 시그널 등록특정 상황에서 운영체제로부터 프로세스가 시그널을 받기 위해서는 해당 상황에 대해서 등록의 과정을 거쳐야함 시그널 등록의 예signal(SGICHLD, mychild);  자식 프로세스가 종료되면 mychild 함수를 호출해달라signal(SIGALRM,timeout); alarm 함수호출을 통해서 등록된 시간이 지나면 timeout 함수 호출signal(SIGINT, keycontrol); ctrl+c 가 입력되면 keycontrol 함수를..

네트워크 2023.06.11

[네트워크] send&recv, readv&writev 입출력 함수

send&recv 입출력함수ssize_t send(int sockfd, const void *buf, size_t nbytes, int flags);ssize_t recv(int sockfd, void *buf, size_t nbytes, int flags);  윈도우 기반 send&recv 함수와 동일sockfd : 파일 디스크립터buf : 데이터 저장할 버퍼의 주소값nbytes : 수신 가능한 최대 바이트 수flags : 적용할 다양한 옵션 정보   send&recv 함수 옵션 옵션정보는 | 연산자를 이용해 둘 이상 동시 지정 가능그러나 옵션의 종류와 지원 여부는 운영체제에 따라 차이 있음  MSG_OOB : 긴급 메시지 전송 옵션MSG_OOB 메시지를 받으면 SIGURG 시그널이 발생, 따라서 이에..

네트워크 2022.11.29

[네트워크] 멀티캐스트, 브로드캐스트

멀티캐스트멀티캐스트 서버는 특정 멀티캐스트 그룹을 대상으로 데이터를 1회 전송1회 전송해도 그룹에 속하는 클라이언트는 모두 데이터를 수신멀티캐스트 그룹의 수는 IP 주소 범위 내에서 얼마든지 추가 가능데이터를 수신하려면 해당 그룹에 가입하면됨멀티캐스트는 연결의 개념이 존재하지 않기 때문에 UDP 소켓이 기반임  TTL(time to live)패킷을 얼마나 멀리 보낼것인가정수로 표현, 라우터를 하나 거칠 때마다 1씩 감소TTL이 0되면 해당 패킷은 소멸 send_sock(socket(PF_INET, SOCK_DRAAM, 0);setsockopt(send_sock, IPPROTO_IP, IP_MULTICAST_TTL, *, * ); 위는 멀티 캐스트 설정TTL 설정 : IPPROTO_IP옵션 이름 : IP_..

네트워크 2022.11.29
728x90