CS

CS/네트워크

REST API 성숙도 모델

Rest, RestAPI, Restful Rest Api 성숙도 모델 rest api 의 발전 단계를 모델화 성숙도 모델은 총 4 단계로 나누어지며 각 단계를 달성할 수록 REST API 에 가까워짐 REST - 0 단계 crud CREATE : POST /api/user READ : POST /api/user UPDATE : POST /api/user DELETE : POST /api/user request POST /api/user { // body 에 담는 데이터로 요청을 구분함 "function": "getUser", "arguments" [ "1" ] } response HTTP/1.1 200 OK { "result" { "id": "1" "name": "honey", } } 리소스 구분없이 설..

CS/네트워크

인터넷 네트워크 구성 요소

인터넷 네트워크 구성요소 인터넷 전 세계의 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크 호스트, 종단 시스템(end system) 네트워크를 통해 연결되는 컴퓨팅 장치들(데스크탑, 스마트폰, 태블릿 등등) 서버 컴퓨터, 클라이언트 기기 통신 링크(communication link) 동축케이블, 구리선, 광케이블, 라디오 스펙트럼 등등 각 링크들은 전송률(링크 대역폭, 단위 : bit per second)을 이용하여 데이터를 전송한다. 패킷 스위치(packet switch) 라우터, 스위치 패킷 : 데이터를 세그먼트로 나누고 각 세그먼트에 헤더를 붙인 정보 패키지 입력(송신) 통신 링크의 패킷을 출력(수신) 통신 링크로 전달 네트워크는 통신 링크와 패킷 스위치로 구성되어 있으며 송신 호스트는 이를 ..

CS/운영체제

메인 메모리

메인 메모리란 ? 프로그램이 올라가는 거대한 바이트 배열 배열의 방들에는 주소를 통해 접근할 수 있음 메인 메모리에 올라간 프로그램은 프로세스가 됨 32 bit, 64 bit 아키텍쳐 운영체제의 아키텍쳐는 메인 메모리의 주소 길이에 의해 결정 멀티 프로세서에서의 메모리 접근 관리 각 프로세스는 자신만의 메모리 공간을 가지고 있어야 함 자신만의 메모리 공간을 어떻게 지정할까? 베이스 레지스터(Base Register) 해당 프로세스의 메모리 시작 위치를 저장한 레지스터 한계 레지스터(Limit Register) 해당 프로세스가 사용할 수 있는 최대 메모리 크기를 저장한 레지스터 즉, 멀티프로세서에서는 베이스 레지스터, 한계 레지스터를 통해 메모리 접근을 통제 운영체제의 주소 체계 논리적 주소(Logical..

CS/운영체제

스레드

클라이언트에게 수 많은 요청을 받는 웹 서버가 존재할 때, 스레드라는 개념이 없으면 발생하는 문제 요청이 들어올 때 마다 새로운 프로세스를 생성해서 작업해야 함, 이는 자원, 시간 소요가 매우 크고 프로세스 간 컨텍스트 스위칭은 오버헤드가 큰 작업 IPC를 활용해야 하는데 이 또한 오버헤드가 큼 멀티프로세싱의 무거움을 해소하기 위해 탄생한 개념 = 스레드 스레드 사용 이유 프로세스에 비해 메모리를 적게 사용 스레드 컨텍스트 스위칭이 프로세스 컨텍스트 스위칭보다 빠름 스레드 간에는 메모리를 공유하므로 통신을 위해 IPC를 사용하지 않아도 됨 스레드란 하나의 프로세스에서 실행 흐름의 단위 하나의 프로세스 내에서 스레드 간에 공유하는 것 코드 영역, 데이터 영역, 힙 영역 하나의 프로세스 내에서 스레드 간에 ..

CS/네트워크

Cookie 와 Session

쿠키와 세션의 특징과 동작 방식 HTTP 프로토콜의 stateless와 connectionless한 특징 때문에 그것을 보완하기 위해 나옴 서버는 클라이언트가 누구인지 매번 확인해야 하는 단점 connectionless 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징 HTTP는 먼저 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있다. 헤더에 keep-alive라는 값을 줘서 커넥션을 재활용하는데 HTTP1.1에서는 이것이 디폴트다. HTTP가 tcp위에서 구현되었기 때문에 (tcp는 연결지향,udp는 비연결지향) 네트워크 관점에서 keep-alive는 옵션으로 connectionless의 연결비용을 줄이는..

CS/네트워크

Network Delay

네트워크 지연 하나의 데이터가 송신지에서 수신지까지 이동할 때 걸리는 시간 4가지 종류 노드 처리 지연 (Node Processing Delay) 라우터에서 패킷 내 데이터의 에러를 체크하거나, 다음 경로를 결정하는 데 걸리는 지연 매우 짧은 시간 동안만 발생 전송 지연 (Transmission Delay) 라우터가 패킷을 Link(2계층 링크) 로 밀어내는 과정에서 발생하는 지연 패킷의 사이즈가 커지거나 Link의 Bandwidth가 작을수록 딜레이가 길어짐 큐잉 지연 (Queueing Delay) 패킷이 큐에서 다른 패킷들의 작업이 끝나길 기다리는 시간 라우터가 한 번에 한 개의 패킷을 처리하기 때문에, 먼저 들어온 패킷이 처리될 때 까지 기다려야 할 수 있음 패킷 손실의 주된 원인 큐잉 지연은 라우..

CS/네트워크

터널링, VPN 터널링

네트워크 터널링 연결해야 할 두 지점 간에 마치 터널이 뚫린 것처럼 통로를 생성하는 것. 패킷 내에 터널링할 대상을 캡슐화 시켜 목적지까지 전송 데이터 스트림을 가상의 파이프를 통해 전달시키는 기술 인터넷을 사적이고 안전한 네트워크의 일부로 사용하게 하는 기술 경유지를 통하지 않고 두 지점을 바로 연결하게 함 터널링 되는 데이터를 페이로드(Payload)라고 부르며 터널링 구간에서 페이로드는 전송되는 데이터로만 취급, 내용이 변하지 않음 VPN 터널링 기법 PPTP(Point to Point Tunneling Protocol) MS사에서 개발한 패킷 전송 프로토콜 RFC 2637이라는 기술 문서를 통해 표준화 규격이 발표됨 IP를 통과하는 모든 패킷을 암호화하기 때문에 모든 운영체제에서 사용이 가능 PP..

CS/운영체제

데드락(Deadlock)

데드락(Deadlock) == 교착상태 리소스에 대한 요청이 뒤엉킨 상태 서로 다른 프로세스가, 서로 점유하고 있는 자원을 기다릴 때 무한 대기에 빠지는 상황 데드락 발생 조건 아래 4가지 조건이 동시에 성립해야 발생함 상호 배제 한 번에 프로세스 하나만 해당 자원을 사용할 수 있음 점유 대기 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림 비선점 프로세스가 작업을 마친 후 자원을 자발적으로 반환할 때까지 기다림 순환 대기 프로세스의 자원 점유 및 점유된 자원의 요구 관계가 원형을 이루면서 대기하는 조건 데드락 해결 방법 예방(Prevention) 위 발생 조건 4가지 중 하나를 방지하여 데드락 발생을 예방하는 방법 상호 배제 방지 점유 대기 방지 비선점 방지 순환 대기 방지 위 예방 방법은 ..

D_Helloper
'CS' 카테고리의 글 목록