11월 26일 (금) 컴퓨터 공학 (기초) 간단 정리

남이섬·2021년 11월 26일
0

프로그램과 프로세스, 스레드

  • 하나의 프로그래의 여러 프로세스를 가질수 있다
  • 프로세스는 싱글 스레드 또는 멀티 스레드로 작동할 수 있다
  • 프로세스는 프로그램이 메모리에 적재되어 운영체제로부터 필요한 공간, 파일, 메모리를 할당 받는다
  • node.js는 싱클 스레드로만 작동한다 ? (NO)
    node.js의 Event loop는 싱글 스레드로 작동되지만,
    Worker pool은 멀티 스레드로 작동된다
    즉, node.js의 초기화와 callback은 Event loop라는 하나의 프로세스, 하나의 스레드에서 작동되지만, I/O intensive, CPU intensive한 모듈은 Worker pool에서 작동한다
    npm worker pool

스레드

  • 프로세스 내에서 실행되는 흐름의 단위
  • 스레드는 다른 스레드와 독립적으로 작동한다
  • 싱글 코어에서 동시에 돌릴 수 있는 스레드 수는 한개 뿐이다
  • 프로세스 내 스레드는 call stack을 공유하지 않는다
    프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다
    스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유한다

메모리

  • 메모리 주소는 16진법으로 표현한다
  • 32비트 운영체제는 최대 4GB만을 사용할 수 있다
  • 메모리는 하드디스크보다 일기/쓰기 속도가 빠르다
  • 32비트 운영체제와 64비트 운영체제의 포인터의 크기는 다르다
    32bit 운영체제와 64bit 운영체제는 처리할 수 있는 데이터의 단위가 32bit, 64bit로 차이가 나기 때문에 사용할 수 있는 최대 메모리의 용량도 다르고, 메모리 주소의 값의 크기도 다르다

가비지 컬렉션

  • 가비지 컬렉션은 프로그램에서 더 이상 스지 않는 메모릴ㄹ 찾아서 회수하는 기능이다
  • 가비지 컬렉터가 내장되어 있는 프로그래밍 언어로는, C#, 자바, 자바스크립트(v8) 등이 있다
  • 가비지 컬렉션의 방법으로는 트레이싱, 레퍼런스 카운팅 등의 방법이 있다
  • 가비지 컬렉션은 개발자가 직접 메모리를 다룰 때에 생길 수 이쓴ㄴ 메모리 누수를 방지할 수 있다

이진 파일과 텍스트 파일의 차이점

  • 텍스트 파일이 아닌 파일은 전부 이진 파일로 취급 된다
  • 대표적인 이진 파일로는 비트맵 이미지 파일이나 사운드 파일, 또는 실행 가능한 파일 등이 있다
  • 메모장으로 파일을 열었을때 깨져보이는 경우, 인코딩의 문제이거나 혹은 해당 파일이 이진 파일이기 때문이다
  • 텍스트 파일은 운영체제별로 개행 문자 처리가 다르다

ASCII

  • & 문자를 포함한다
  • ASCII 문자열세트(charset) 중 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어져 있다
  • 유니코드에는 ASCII가 포함되어 있다 (유니코드는 ASCII를 확장한 형태다)

UFT-8, UFT-16

  • 둘다 유니코드의 인코딩 형식이다
  • UTF-8은 UTF-16에 비해 바이트 순서(엔디언)를 따지지 않고, 순서가 정해져 있다
  • 네트워크를 통해 전송되는 텍스트는 주로 UTF-8을 이용한다
  • BMP(다국어 기본 평면)에 속하는 문자열은 UTF-16을 이용할 때에 16비트로 표현이 가능하다

비트맵, 백터 이미지

해상도에 의존적인 비트맵 이미지는 <canvas> 태그를 이용해 표현한다

캐시의 장점

  • 아키텍처를 보다 적은 개수의 계층으로 구성할 수 있다
  • 영속적인 데이터를 저장할 수 있다

티어 별 캐시 적용

  • 네트워크 - DNS 서버
  • 클라이언트 - LocalStorage
  • 서버 - Redis

CDN(Content Delivery Network)은 네트워크 단계에서 콘텐츠를 보다 빠르게 제공하기 위한 서비스다

전 세계 곳곳에 분산되어 있는 데이터 센터에 콘텐츠가 저장(캐싱)되어 있으며, 지리적으로 가까운 데이터 센터로 접근할 수 있도록 만들어준다

profile
즐겁게 살자

0개의 댓글