목록분류 전체보기 (92)
개발일지

4장. 전송 계층4-1. 전송 계층 개요인터넷 프로토콜의 한계 비신뢰성(unrealiable) 프로토콜 패킷이 목적지까지 ‘제대로’ 전송 되는 것을 보장하지 않음 → 패킷 손실, 지연, 순서 변경 등의 문제 가능성 존재 최선형 전달(best effort delivery) 비연결성(connectionless) 프로토콜 송수신 호스트 간에 사전 연결 수립 과정을 거치지 않음 IP 한계를 보완하는 전송 계층 → TCP TCP 사전 연결 수립 과정을 거치는 ‘연결형’ 프로토콜 오류/흐름/혼잡 제어 등을 통해 신뢰성 제공 UDP 비신뢰성, 비연결성 통신을 위한 프로토콜 신뢰성을 보장하지는 않지만 빠른 전송이 가능 포트 - 응용 계층과의 연결점포트 (Port) 패킷의 최종 목적지는 수신 호스트의 ‘특정 애플리케이션..

1장. 컴퓨터 네트워크 시작하기1-1. 컴퓨터 네트워크?컴퓨터 네트워크: 여러 장치(ex. 노트북, 데스크톱, 스마트폰)가 연결되어 서로 정보를 주고받을 수 있는 통신망인터넷: 여러 네트워크를 연결한, 네트워크의 네트워크 1-2. 네트워크 거시적으로 알아보기네트워크의 자료구조네트워크는 노드와 간선으로 이뤄진 그래프(graph) 형태를 띤다.노드(node) = 정점(vertex)간선(edge) = 링크(link) 네트워크의 기본구조호스트(host) - 가장자리 노드네트워크 가장 자리에 위치한 노드로 메시지를 최초로 생성 및 송신하고 최종적으로 수신한다.대표적으로 ‘서버(server)와 클라이언트(client)’네트워크 장비 - 중간 노드송신 호스트가 전송한 메시지가 수신 호스트까지 안정적으로 도착할 수..

🔗 https://www.acmicpc.net/problem/24511 내장함수 pop, push, shift 사용하면 간단하겠지만 당연히 시간초과가 발생한다. stack, queue 특성 고려해서 시간초과 없이 해결해보기문제 이해.40 1 1 01 2 3 432 4 7 다음과 같이 두 개의 큐와 두 개의 스택으로 이뤄진다.A: [1] // A큐B: [2] // B스택C: [3] // C스택D: [4] // D큐 첫 번째 원소 ‘2’를 삽입 했을 때의 과정을 알아보자.‘2’를 A큐에 push A: [1, 2] → 큐이므로 ‘1’ pop A: [2]반환된 ‘1’을 B스택에 push B: [2, 2] → 스택이므로 ‘두번째 2’ pop B: [2]반환된 ‘2’를 C큐에 push C: [3, 2] ..
공통점stateless한 HTTP를 보완하기 위해 사용되는 데이터 저장 기술이다.브라우저에 노출되므로, 보안을 위해 중요한 정보는 포함하지 않는 것이 좋다. 쿠키 (Cookie)서버 측에서 생성하고 관리하는 기술이다. 서버는 사용할 쿠키를 헤더를 통해 클라이언트 측에 전달하며, 이후 클라이언트는 모든 서버 요청에 해당 쿠키를 자동으로 포함하여 전송한다.쿠키를 적용할 도메인이나 경로, 만료 기간, 보안 등을 설정할 수 있다.만료 기간이 지나면 자동으로 삭제된다. 따로 설정하지 않으면 세션 쿠키가 되어 브라우저가 종료될 때까지 유지된다.최대 4KB의 저장 용량을 갖는다.사용자 인증, 사용자 추적 및 세션 관리, 팝업 창 “오늘 하루 보지 않기” 등 웹 스토리지(Web Storage)클라이언트 측에서 데이..
도메인 네임과 DNS 서버도메인 네임 (Domain Name)IP 주소와 대응하는 문자열 형태의 주소를 말한다.인터넷 상에서 서로 다른 네트워크가 통신하기 위해서는 IP 주소가 필요하다. 하지만 숫자로 이루어진 IP 주소를 하나하나 외우긴 번거로운 일이기 때문에, 사용자가 기억하기 쉽도록 문자열 형태로 제공해준다.또한 IP 주소 변경에도 유연하다. IP 주소가 변경 되더라도 도메인 네임에 새로운 IP 주소를 연결해주기만 하면 된다. DNS 서버실제 네트워크 계층에서는 IP 주소를 사용하기 때문에, 도메인 네임 ↔ IP 주소를 변환하는 단계가 필요하다.DNS 서버는 도메인 네임과 IP 주소 간 매핑 정보를 관리하는 서버로, 사용자가 도메인 주소로 접속 했을 때 이에 대응하는 IP 주소를 찾아 반환해준다. ..

9장. 운영체제 시작하기9-1. 운영체제운영체제란?실행할 프로그램에 필요한 자원을 할당하고 올바르게 실행되도록 도와주는 프로그램관리할 자원별로 기능이 나누어져 있음 (CPU 배분, 메모리 적재 등) 운영체제도 프로그램이다. 즉 메모리에 할당되어야 함!커널 영역: 운영체제가 사용하는 메모리 영역사용자 영역: 응용프로그램이 사용하는 메모리 영역 9-2. 커널커널(Kernel)?운영체제가 제공하는 기능 중 핵심 서비스를 담당하는 영역운영체제마다 제공하는 서비스가 다를 수 있지만, 공통적으로 필요한 필수적인 기능을 담당예시로 사용자 인터페이스는 운영체제 기능이긴 하지만 커널 기능은 아니다. 이중모드CPU가 명령어를 실행할 때 두 가지 모드로 구분하는 방식커널 모드: 운영체제 서비스를 제공 받을 수 있는 실행..
개요프로세스 동기화를 공부하면서 Node.js에서도 동기화 기법이 적용되는지 궁금해졌다. JS는 싱글스레드 기반인데 async-mutex, async-sema와 같이 마치 동기화를 제공하는 듯한 패키지가 존재했기 때문이다. 결론부터 말하자면 JS는 “비동기 작업의 경쟁 조건(race condition)”이 발생할 수 있다. 일반적인 멀티스레드 동기화 개념과는 조금 다르지만 이 개념을 비동기 작업에 적용한 것이다. 이번 글에서는 프로세스 동기화 개념에 대해 간략히 알아본 뒤 JS의 동기화는 어떻게 다른 지 비교해보고 직접 구현까지 해보고자 한다. 프로세스 동기화여러 프로세스가 협력하는 작업이 있을 때 이 프로세스들은 동시다발적으로 실행되면 안된다. 이를 방지하기 위해서는 동기화가 필수적으로 이뤄져야한다. ..