백엔드/[컴퓨터 공학] 기초 6

Checkpoint - 컴퓨터 공학 기초

1. 프로그램과 프로세스, 스레드에 대한 설명으로 틀린 것을 고르세요. 하나의 프로그램이 여러 프로세스를 가질 수 있다. 프로세스는 싱글 스레드 또는 멀티 스레드로 작동할 수 있다. 프로세스는 프로그램이 메모리에 적재되어 운영체제로부터 필요한 공간, 파일, 메모리를 할당받는다. node.js는 싱글 스레드로만 작동한다. 더보기 정답 4 node.js의 Event loop는 싱글 스레드로 작동되지만, Worker pool은 멀티 스레드로 작동됩니다. 즉, node.js의 초기화와 callback은 Event loop라는 하나의 프로세스, 하나의 스레드에서 작동되지만 I/O intensive, CPU intensive한 모듈은 Worker pool에서 작동합니다. 2. 스레드에 대한 설명으로 틀린 것을 고르..

캐시

많은 시간이나 연산이 필요한 작업의 결과를 저장해두는 것을 의미합니다. 캐시의 작동원리 캐시의 데이터는 일반적으로 RAM(Random Access Memory)에 저장되며, 소프트웨어 구성 요소와 함께 사용될 수도 있습니다. 캐시는 기본 스토리지 계층(SSD, HDD)에 액세스하여 데이터를 가져오는 더 느린 작업의 요구를 줄이고, 데이터 검색의 성능을 높입니다. 속도를 위해 용량을 절충하는 캐시는 일반적으로 데이터의 하위 집합을 일시적으로 저장합니다. 완전하고 영구적인 데이터가 있는 데이터베이스와는 대조적입니다. 캐시의 장점 애플리케이션 성능 개선 데이터베이스 비용 절감 백엔드 부하 감소 예측 가능한 성능 데이터베이스 핫스팟 제거 읽기 처리량 증가

가비지 컬렉션

가비지 컬렉션 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것입니다. 가비지 컬렉션의 방법 트레이싱: 한 객체에 flag를 두고, 가비지 컬렉션 사이클마다 flag에 표시 후 삭제하는 mark and sweep 방법입니다.객체에 in-use flag를 두고, 사이클마다 메모리 관리자가 모든 객체를 추적해서 사용 중인지 아닌지를 표시(mark)합니다. 그 후 표시되지 않은 객체를 삭제(sweep)하는 단계를 통해 메모리를 해제합니다. 레퍼런스 카운팅: 한 객체를 참조하는 변수의 수를 추적하는 방법입니다. 질문 크롬 브라우저 및 node.js의 v8 엔진은, 어떻게 가비지 컬렉팅을 하고 있나요? Memory terminology를 읽어보세요.

프로세스, 스레드, 멀티 스레드

프로세스 사용자가 애플리케이션을 실행하면, 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행합니다. 이때 실행되는 애플리케이션을 프로세스라고 부릅니다. 스레드(Thread) 하나의 스레드는 코드가 실행되는 하나의 흐름으로 비유를 하자면 일상생활에 차도를 예로 들 수 있을것같다. 도로에서 차로가 1개만 존재할때 많은 차들이 몰리면 차가 막히게 된다. 만약 차로가 1개 이상 여러개 존재할때에도 많은 차들이 몰렸을때 막힐지언정, 차로가 1개만 존재할때 보다는 차가 덜 막힐것이다. 도로를 프로세스, 차로를 스레드, 차를 프로그램의 내부 코드들로 생각하면 이해가 쉽다. 차로가 1개 이상 존재할 경우, 이 경우를 컴퓨터 공학에서는 멀티 스레드라고 한다. 멀티 스레드(Multi-Thread) ..

그래픽

비트맵(래스터)과 벡터 이미지의 차이점 비트맵(래스터) 벡터 기반 기술 픽셀 기반 수학적으로 계산된 Shape기반 특징 사진과 같이 색상의 조합이 다양한 이미지에 적합 로고, 일러스트와 같이 제품에 적용되는 이미지에 적합 확대 확대에 적합하지 않음, 보다 큰 사이즈의 이미지가 필요할 때 사용하려는 크기 이상으로 생성하거나 스캔해야 함 품질 저하 없이 모든 크기로 확대 가능하며, 해상도의 영향을 받지 않음 크기(dimension)에 따른 파일 용량(file size) 큰 크기의 이미지는, 큰 파일 사이즈를 가짐 큰 크기의 벡터 그래픽은 작은 파일 사이즈를 유지할 수 있음 상호 변환 이미지의 복잡도에 따라 벡터로 변환하는 것에 오랜 시간이 걸림 쉽게 래스터 이미지로 변환 가능 대표적인 파일 포맷 jpg, g..

문자열

Achievement Goals 프로그램, 프로세스, 스레드에 대해 기본적인 개념을 설명할 수 있다. 동시성과 병렬성의 차이를 이해할 수 있다. 자바스크립트 엔진(v8)이 어떤 특징을 가지고 있는지 이해할 수 있다. 프로그래밍에서 문자열을 다루는 방법과 유니코드 및 인코딩에 이해할 수 있다. 유니코드 유니코드 협회(Unicode Consortium)가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준입니다. 인코딩 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것, 인코딩과 디코딩의 기준을 문자열 세트 또는 문자셋(charset)이라고 합니다. 이 문자셋의 국제 표준이 유니코드입니다. ASCII 영문 알파벳을 사용하는 대표적인 문자 인코딩으로 7비..