분류 전체보기 347

[컴퓨터네트워크] 02. (2)Network Layer(네트워크 계층) - IPv4 주소

(2) Network Layer(네트워크 계층) - IPv4 주소 IPv4 주소 주소 연결의 양 끝 장치 식별(Identify) IPv4 주소 32비트 인터넷에 연결된 통신장치(호스트, 라우터)를 전세계적으로 유일하게 정의하는 32비트의 주소 (GPT) 전통적으로 IPv4 주소는 네트워크 부분과 호스트 부분으로 나뉘며, 서브네팅을 통해 보다 세분화된 주소 구조를 갖게 됩니다. (GPT) 사람이 읽기 쉽도록, 32비트의 주소는 8비트씩 네 부분으로 나누고 각각을 십진수로 변환한 후 점으로 구분하여 표시합니다. IP 주소는 호스트나 라우터의 주소가 아닌, 연결의 끝단 주소 연결이 여러 개인 경우 연결 각각마다 주소가 있음 컴퓨터가 아니라, 포트와 같은 장치의 주소 Transport Layer의 경우 End ..

[컴퓨터네트워크] 02. (1)Network Layer(네트워크 계층) - 네트워크 계층 서비스 / 성능, 패킷 스위칭

(1) Network Layer(네트워크 계층) - 네트워크 계층 서비스 / 성능, 패킷 스위칭 네트워크 계층 서비스 패킷화(packetizing) 포워딩(fowarding)과 라우팅(routing) 흐름제어, 오류제어, 혼잡제어 패킷화(packetizing) 출발지에서 유료부하(payload)를 네트워크 계층 패킷에 캡슐화 캡슐화란 헤더와 푸터(Trailer, 트레일러)를 추가하는 것 TCP segment(TCP header + Application data) --> IP packet(IP header + TCP segment) 헤더(IP)는 바뀔 수 있음 네트워크 특정 구간에서 MTU가 작으면, 데이터를 잘라서 보냄 Stream은 앞 뒤 데이터에 연관성이 있고, Datagram은 연관성이 없음(독립적..

[컴퓨터네트워크] 01. OSI 7계층과 TCP/IP

OSI 7계층과 TCP/IP 분산 컴퓨팅 process : 실행중인 프로그램 program : 실행 가능한 파일 프로세스와 프로세스간에 네트워크를 통해 통신 프로토콜 : 통신 규약 OSI 7계층 1계층 : Physical Layer(물리 계층) 물리 매체를 통한 0과 1의 비트를 전송 2계층 : Data Link Layer (데이터 링크 계층) 인접시스템(neighbor)의 신뢰성 있는 정보 전달 3계층 : Network Layer (네트워크 계층) 네트워크를 통한 데이터 전달 2계층 까지 보면 신뢰성 있게 데이터를 전달하고 있음 다양한 중계 장치를 통해 상대 시스템에 전달됨(네트워크) 4계층 : Transport Layer (전송(수송) 계층) 종단간(end-to-end) 신뢰성 있는 정보 전달 5계층..

[시스템 프로그래밍] 01. Data Representation

Binary Integers(2진수) electronic charge를 통해 컴퓨터의 메모리에 코드, 데이터를 저장함 MSB : the most significant bit (가장 왼쪽에 있는 bit) LSB : the least significant bit (가장 오른쪽에 있는 bit) Signed or Unsigned Singed : Positive or negative Unsigned : Positive 0(Zero) : Postive Integer Decimal을 Unsigned Binary로 변환하는 방법 특정 수를 2로 나눈 나머지들을 역순으로 나열한다 ex) 37 % 2 = 1 / 18 % 2 = 0 / 9 % 2 = 1, 4 % 2 = 0 / 2 % 2 = 0 / 1 % 2 = 1 / 위 ..

[시스템 프로그래밍] 00. Introduction

Programming Language hierarchy C와 같은 High-Leve Language로 작성된 코드 는 컴파일러에 의해 Assembly Language로 변환되고, 이는 어셈블러에 의해 Machine Language로 변환된다. Linker는 컴파일러, 어셈블러에 의해 변환된 Object file을 하나의 실행파일로 연결(i.e. .EXE) 생성된 실행 파일은 운영체제에 의해 메모리에 로드되고, CPU는 기계어를 실행 이 때, CPU의 아키텍쳐에 따라 기계어의 해석이 진행된다(ex. X86, Arm 등) Machine language란? CPU가 해석할 수 있는 numeric language 모든 X86 프로세서는 공통적인 기계어(X86에 해당하는 기계어)를 해석할 수 있음 Assembly..

[BOJ/백준] 24511번. queuestack - Java[자바]

문제 https://www.acmicpc.net/problem/24511 24511번: queuestack 첫째 줄에 queuestack을 구성하는 자료구조의 개수 $N$이 주어진다. ($1 \leq N \leq 100\,000$) 둘째 줄에 길이 $N$의 수열 $A$가 주어진다. $i$번 자료구조가 큐라면 $A_i = 0$, 스택이라면 $A_i = 1$이다. 셋째 줄 www.acmicpc.net 잘못 접근하기 좋은 풀이 문제에 나와있는 그대로 모든 원소를 삽입, pop을 해보겠다 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWri..

PS/BOJ 2024.03.31

[자료구조] 덱(Dequeue, 데크)

덱(Dequeue) 덱이란? Dequeue : Double-ended Queue 여기선 큐의 출력을 의미하는 Dequeue와 다른 의미로 사용됨 a.k.a 데크 전단, 후단 양쪽에서 push, pop이 가능함 스택과 큐의 장점을 모아둔 자료구조 덱의 종류 스크롤 : 입력이 한쪽 끝으로만 가능하도록 제한, 입력 제한 덱이라고도 함 셀프(Shelf) : 출력이 한쪽 끝으로만 가능하도록 제한, 출력 제한 덱이라고도 함 보통 양쪽에서 입력/출력을 모두 하는 경우는 거의 없어 스크롤이나 셀프를 사용한다 덱의 용도 스케줄링 우선순위 조절 덱의 동작 입력과 출력이 양방향에서 가능하고, 입력과 출력의 순서를 맘대로 정할 수 있음 추가 및 삭제의 실행속도는 O(1) 이중 연결 리스트로 덱 구현 #include #incl..

[자료구조] 링크드 큐(Linked Queue)

링크드 큐(Linked Queue) 링크드 리스트를 이용하여 큐를 구현 노드 멤버의 포인터를 이용하여 삽입 / 제거 연산이 이루어짐 삽입을 할 때는 삽입하려는 노드에 후단을 연결 제거를 할 때는 전단 바로 다음 노드에 전단에 대한 포인터를 거두기만 하면 됨 원형 큐(순환 큐)와 다른 점은 용량 제한이 없다는 것이다.(가득 찼는지 확인할 필요 X) 링크드 큐의 기본 연산 보다 직관적으로 설계 및 구현이 가능함 링크드 큐와 노드의 선언 노드의 경우 데이터 필드와 다음 노드에 대한 포인터를 담는다 링크드 큐 구조체의 경우 전단, 후단, 노드 개수를 담는다 // 노드 구조체 typedef struct _Node { char* data; // 노드에 담을 데이터 struct _Node* nextNode; // 다..

[자료구조] 큐와 원형 큐(순환 큐)

큐(Queue)큐의 ADT큐의 개념입력과 출력 창구가 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나옴(FIFO)큐의 핵심 기능 : 삽입과 제거전단 : 큐의 가장 앞 요소, 제거 연산이 일어나는 곳후단 : 큐의 가장 마지막 요소, 삽입 연산이 일어나는 곳순환 큐(원형 큐)큐를 배열로 구현하는 경우 전단을 제거한 후 요소를 이동하는데 비용이 매우 큼큐의 전단과 후단을 가리키는 변수를 도입삽입과 제거를 거치다 보면 큐의 용량이 줄어듬순환 큐 : 배열의 끝과 시작을 연결함배열의 마지막 요소가 후단인 경우 삽입 연산을 진행하면 배열의 첫 번째 요소가 후단이 된다전단의 경우도 마찬가지삽입이 이루어질 때 후단이 전단을 만나면 큐는 가득 찬 상태가 된다전단과 후단이 만나있는 경우, 공백 상태화 포화 상태를 ..

[자료구조] 연결 리스트(linked list) 기반 스택 구현

연결(링크드) 리스트 기반 스택노드의 경우 Data의 주소를 가리키는 참조형과, 자기 위에 쌓여 있는 노드의 주소를 가리키는 NextNode로 구성스택의 용량이나 최상위 노드의 인덱스가 스택의 멤버로 존재하지 않음링크드 리스트의 헤드와 테일에 대한 포인터는 필요함  typedef struct tagNode {char* Data;struct tagNode* NextNode;} Node;typedef struct tagLinkedListStack { Node* List; // 자유 저장소에 존재하는 헤드 노드의 주소를 가리킴 Node* Top; // 자유 저장소에 존재하는 테일 노드의 주소를 가리킴} LinkedListStack;* Top 포인터는 스택의 입출력이 이루어지는 최상위 노드에 대한 포..