전체 글

JavaScript Dev./Javascript

JavaScript 탐욕법(Greedy) 알고리즘

1. 탐욕 알고리즘(Greedy Algorithm) 현재 상황에서 가장 좋아 보이는 상황만을 선택하는 알고리즘 최적의 해를 구하기 위한 근사적인 방법으로 사용 단순한 탐욕 알고리즘으로는 최정의 해를 놓칠 수 있다. But, 최적의 해에 가까운 답을 찾는 것을 고려하면 다양한 프로그램에서 "근사해"를 구하는 목적으로 사용된다. 접근 방법 방법 고안하기: 현재 상황에서 어떤 것을 선택할지 알고리즘을 고안 정당성 확인하기: 자신이 고안한 알고리즘이 항상 최적의 해를 보장하는지 확인 (증명 단계)

다양한 Dev./cs 지식 정리

프로세스와 스레드

1. 커널 영역과 사용자 영역의 프로세스 프로세스란 실행 중인 프로그램 ==> 같은 프로그램도 별도의 프로세스가 될 수 있다. 프로세스 제어 블록 (PCB) PID(PPID) 레지스터 스케줄링 정보 메모리 정보 사용한 파일 정보 입출력장치 정보 문맥 교환 문맥 (context): 실행을 재개하기 위해 기억해야 할 정보 문맥 교환: 여러 프로세스들이 번갈아가며 실행되는 원리 커널 영역에서는 PCB 사용자 영역 코드 영역 (텍스트 영역) > 실행 가능한 코드, 기계어로 이루어진 명령어 > Read-only 데이터 영역 > 프로그램이 실행되는 동안 유지할 데이터 (e.g. 전역 변수) > BSS 영역: 프로그램 실행 동안 유지할 데이터 중 초기값 없는 데이터 힙 영역 > 사용자(개발자)가 직접 할당 가능한 공..

다양한 Dev./cs 지식 정리

운영체제

1. 운영체제의 역할 리소스를 관리하고 할당하는 특별한 프로그램 운영체제 종류 ==> Windows, macOS, android, Linux, iOS 커널(kernel): 운영체제의 핵심부 이중 모드 커널 모드: 운영체제 서비스를 제공받을 수 있는 모드 (입출력 가능) ==> 시스템 콜: 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 것(소프트웨어 인터럽트) 사용자 모드: 운영체제 서비스를 제공받을 수 없는 모드 (입출력 불가능)| ==> 현재는 여러 단계로 나눈 권한: 보호 링(protection ring)으로 관리한다. 운영체제 핵심 서비스 프로세스 관리 자원 관리 접근 및 할당 CPU 메모리 보조기억장치 & 입출력장 파일 시스템 관리

다양한 Dev./cs 지식 정리

보조 기억 장치와 입출력 장치

1. 하드 디스크와 플래시 메모리 대표적인 보조기억장치 (하드 디스크, HDD) 플래시 메모리 (SSD, USB 메모리, SD 카드) 하드 디스크 (LP, CD/DVD 플레이어와 유사) 플래터: 하드 디스크 상에서 실질적으로 데이터가 저장되는 부분 스핀들: 플래터를 회전시키는 부분 헤드: 플래터의 데이터를 읽고 쓰는 부분 디스크 암: 헤드를 옮기는 부분 > 복수의 헤드와 플러터가 있는 경우가 많음 > 플래터의 양면을 사용하는 경우가 많음 하드 디스크의 데이터 단위 트랙: 플래터 상의 동심원 섹터: 트랙을 나눈 단위 (가장 작은 단위) 실린더: 여러 개의 트랙을 모은 단위 블록: 실제 입출력이 수행되는 단위 하드 디스크의 지연 시간 탐색 시간: 헤드를 원하는 섹터까지 이동시키는 시간 회전 지연: 원하는 섹..

JavaScript Dev./Javascript

JavaScript 정렬(sorting) 알고리즘

1. 선택 정렬 매 단계에서 가장 작은 원소를 선택해서 앞으로 보내는 정렬 방법 앞으로 보내진 원소는 더 이상 위치가 변경되지 않는다. 시간 복잡도 O(N^2)로 비효율적인 정렬 알고리즘 중 하나 동작 방식 각 단계에서 가장 작은 원소를 선택 현재까지 처리되지 않은 원소들 중 가장 앞의 원소와 위치를 교체한다. // 선택 정렬 함수 function selectionSort(arr) { for (let i = 0; i arr[j] { min Index = j } } // 스와프(swap) let temp = arr[i] arr[i] ..

다양한 Dev./cs 지식 정리

메인 메모리와 캐시 메모리

1. RAM과 ROM RAM (Random Access Memory) : 휘발성 저장장치 RAM의 크기와 성능 간의 관계: 많은 프로그램을 동시에 빠르게 실행하는 데에 유리 RAM의 종류 DRAM(Dynamic RAM): 시간이 지나면 점차 저장된 데이터가 사라지는 RAM (메인 메모리에서 주로 사용) > 재충전: 필요 > 속도: 느림 > 가격: 저렴함 > 집적도: 높음 > 소비전력: 적음 > 사용 용도: 주기억장치 (RAM) SRAM(Static RAM): 시간이 지나도 저장된 데이터가 사라지지 않는 RAM (캐시 메모리에서 주로 사용) > 재충전: 필요 없음 > 속도: 빠름 > 가격: 비쌈 > 집적도: 낮음 > 소비전력: 높음 > 사용 용도: 캐시메모리 SDRAM(Synchromous Dynamic ..

Yoonsoo
YS 개발 블로그