일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준
- 모션비트
- 나만무
- JavaScript
- 리액트
- 4기
- CSS
- Vue.js
- corou
- 사이드프로젝트
- Java
- defee
- 코드트리
- 크래프톤 정글
- 자바
- 큐
- pintos
- 오블완
- 스택
- 티스토리챌린지
- 소켓
- 크래프톤정글
- 알고리즘
- 시스템콜
- HTML
- 핀토스
- userprog
- 자바스크립트
- TiL
- Flutter
- Today
- Total
목록코딩 (367)
미새문지
OSI7 Layer(OSI 7계층) 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것 통신이 일어나는 과정을 단계 별로 파악하기 위해 계층을 나눴다. 흐름을 한 눈에 알아볼 수 있어 7단계 중 특정한 곳에 이상이 생기면 이상이 생긴 단계만 고칠 수 있기 때문이다. 1계층 - 물리 계층(Physical Layer) 물리 계층은 주로 기계적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 되는데, 데이터를 전달만 하고 전송하는 데이터가 무엇인지, 어떤 에러가 있는지는 신경 쓰지 않는다. 단지 데이터를 전기적인 신호로 변환해 주고 받는 기능만 할 뿐이다. 대표적인 장비는 통신 케이블, 리피터, 허브 등이 있다. 2계층 - 데이터 링크 계층(DataLink Layer) 물리 계층에서 송수신되는 정보의 오류..
console.log로 출력을 하면 let a = "크래프톤"; let b = "정글"; console.log(a); console.log(b); // 출력 : // 크래프톤 // 정글 console.log를 이용해 출력하면 한 줄씩 출력이 된다. 이는 console.log에 개행 문자가 포함되어 자동으로 줄바꿈이 이뤄지기 때문이다. 하지만 process.stdout.write를 사용해 출력을 하면 let a = "크래프톤"; let b = "정글"; process.stdout.write(a); process.stdout.write(b); // 결과 : // 크래프톤정글 개행 문자가 없는 순수 출력값만 출력하기 때문에 한 줄에 쭉 출력이 이뤄진다. process.stdout.write(a\n); 이런식으..
소켓 네트워크 프로그래밍이란 네트워크로 연결된 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것이다. 데이터를 제공하기 위해 요청을 대기하며 수락하는 쪽을 서버(Server)라고 하며, 요청을 진행하는 쪽을 클라이언트(Client)라고 한다. 서버와 클라이언트 사이에 지켜야 할 통신 규약을 프로토콜(Protocol)이라고 한다. 네트워크를 이해하기 위해서는 소켓(socket)에 대해 알아야 하는데, 소켓은 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어 적인 장치를 의미한다. 두 컴퓨터를 연결하기 위해서는 소켓이 필요하며, 클라이언트인지 서버인지에 따라 소켓을 다루는 방법이 다르다. 서버는 socket → bind → listen → accept → read/write → ..
Malloc Lab - Implicit(말록 랩 - 묵시적 가용리스트) 메모리 할당 방법 중 First-Fit(최초 적합), Next-Fit(다음 적합), Best-fit(최적 적합)을 구현했다. First-Fit First-Fit은 처음부터 한 블럭씩 확인하면서 할당할 수 있는 크기의 가용블록이 있으면 바로 할당시키는 메모리 관리 방식이다. 할당 후에 다른 메모리를 할당하려고 하면 다시 처음부터 시작해 탐색한다. 먼저 사용할 연산을 미리 정의해야 한다. /* single word (4) or double word (8) alignment */ #define ALIGNMENT 8 /* rounds up to the nearest multiple of ALIGNMENT */ #define ALIGN(siz..
오늘 퀴즈푸는 날이라 몇 문제 끄적인다. 페이징과 세그멘테이션 정의 및 각각의 장단점 페이징 메모리를 동일한 크기의 블록, 즉 ‘페이지’로 나누는 방법 각 페이지는 가상 메모리 주소와 매핑되며, 페이지 테이블을 통해 메모리 주소로 변환된다. 메모리 관리를 단순화하고, 메모리 낭비를 줄이며, 프로그램 간의 메모리 충돌을 방지한다. 장점 외부 단편화 문제를 해결함 메모리 관리가 상대적으로 단순함 단점 내부 단편화 발생 가능성이 있다. 페이지 테이블 관리에 추가적인 메모리가 필요 세그멘테이션 메모리를 ‘세그먼트’로 나누는 방법 각 세그먼트는 시작 주소와 길이를 가지며, 다른 유형의 데이터를 위해 사용된다. 메모리를 더 유연하게 관리할 수 있게 해주며, 프로그램의 논리적 구조를 반영할 수 있다. 장점 메모리..
힙 정렬(Heap Sort) 힙(Heap)은 완전 이진 트리(Complete Binary Tree)의 일종으로, 부모 노드와 자식 노드 간에 특정한 조건을 만족하는 자료구조를 말한다. 여기서 완전 이진 트리란 부모 노드 밑에 자식 노드가 최대 2개까지 있을 수 있고, 마지막 레벨을 제외한 모든 레벨에 노드가 완전히 채워져 있는 트리 구조를 말한다. 힙은 우선순위 큐를 위해서 만들어진 자료구조이며, 특히 힙은 부모 노드와 자식 노드 간의 관계를 통해 정의된다. 자식 노드가 있는 노드는 항상 (원소의 개수 / 2) 이다. 종류 최대 힙(Max Heap) 부모 노드의 키 값이 자식 노드의 키 값보다 항상 크거나 같은 값을 가진 완전 이진 트리이다 최댓값을 빠르게 찾아내는 데 사용된다. 최소 힙(Min Heap..
가상 메모리 가상 메모리는 컴퓨터 시스템에서 물리적인 메모리 용량을 초과하여 프로그램을 실행할 수 있게 하는 기술이다. 이는 물리 메모리를 효율적으로 관리하고, 더 큰 프로그램을 실행하거나 더 많은 프로그램을 동시에 실행하는 데 도움을 준다. 운영체제는 하드 디스크의 일부를 RAM처럼 사용하여 메모리를 확장하고, 프로그램이 더 많은 메모리를 사용하는 것처럼 느끼게 한다. 작동 원리 가상 메모리 시스템은 페이징이라는 기술을 사용한다. 메모리는 고정 크기의 ‘페이지’로 나눠지며, 프로그램이 실행될 때 필요한 페이지만 실제 물리 메모리에 로드되고, 나머지 페이지는 하드 디스크의 페이징 파일에 저장된다. 물리 메모리 물리 메모리는 컴퓨터에서 직접 접근 및 조작이 가능한 메모리를 말한다. 주로 RAM으로 구현..
파일 디스크립터 운영체제가 프로세스에서 파일, 소켓 파이프 등을 추적하기 위해 사용하는 추상적인 표현이며, 각 열린 파일이나 I/O 채널에 대해 고유한 정수 값을 할당하는 것 파일 디스크립터는 운영체제의 리소스를 추상화해 프로세스가 이를 효율적으로 사용할 수 있도록 돕는 중요한 메커니즘이며, 리눅스나 유닉스 같은 운영체제에서는 표준입력(0), 표준출력(1), 표준오류(2) 등 기본적인 I/O 채널에 대한 파일 디스크립터가 미리 정의되어 있다. 시스템 콜 유형 프로세스 제어(process Control) - 중요 프로세스 실행, 생성, 대기 등 fork() 현재 실행 중인 프로세스의 복제본을 생성하는 역할을 한다. 성공적으로 수행되면, 부모 프로세스에게는 자식 프로세스의 PID를, 자식 프로세스에게는 ..