문자열
유니코드 협회가 제정하는 전 세계의 모든 문자(영어를 포함하는 전 세계 모든 문자)를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준
ASCII 란?
유니코드가 개발되기 이전 미국에서 개발된 영문 알파벳을 컴퓨터에서 일관되게 표현하고 다룰 있게 만든 표준
유니코드는 ASCII를 포함하고 확장한 산업 표준
어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것
어떤 신호로 만들 때 기준을 삼는 것이 유니코드
인코딩 방식에는 UTF-8, UTF-16, EUC-KR 등 다양한 방식이 존재
UTF-8 : 유니코드를 1byte(8bit) ~ 4byte의 가변 길이로 표현
UTF-16 : 유니코드를 16bit 로 표현
그래픽
비트맵(래스터) | 벡터 | |
---|---|---|
기반기술 | 픽셀 기반 | 수학적으로 계산된 Shape 기반 |
특징 | 사진과 같이 색상의 조합이 다양한 이미지에 적합 | 로고, 일러스트와 같이 제품에 적용되는 이미지에 적합 |
확대 | 확대에 적합하지 않음 | 품질 저하 없이 모든 크기로 확대 가능 |
파일 사이즈 | 이미지의 크기에 따라 파일 사이즈 커짐 | 큰 크기의 벡터 그래팩도 작은 사이즈 가짐 |
상호 변환 | 경우에 따라 오래 걸림 | 쉽게 변환 가능 |
파일 포맷 | jpg, gif, png, bmp, psd | svg, ai |
운영 체제
시스템 자원 관리
응용 프로그램은 컴퓨터를 이용해 다양한 작업을 하는 것이 목적
운영체제는 응용 프로그램이 하드웨어(CPU, RAM 등) 에게 일을 시킬 수 있도록 도와줍니다.
응용 프로그램 관리
응용 프로그램이 실행되고, 시스템 자원을 마음대로 사용하는 것을 방지하고자 시스템 자원을 사용할 수 있도록 권한 등을 관리합니다.
응용 프로그램이 시스템 자원을 사용할 수 있도록, 운영체제 에서 다양한 함수를 제공하는데 이것을 시스템 콜(System Call) 이라고 부릅니다.
응용 프로그램은 하드웨에(예:프린트, 카메라)를 사용 하기 위해서는 운영 체제로 부터 사용 권한을 획득한다. 그리고 응용 프로그램은 운영체제가 제공하는 API를 사용하여 하드웨어를 사용한다.
프로세스
프로세스 내에서 코드가 실행되는 하나의 흐름
한 프로세스 내에 스레드가 두 개라면 코드가 실행되는 흐름이 두 개
멀티 태스킹은 두 가지 이상의 작업을 동시에 처리하는 것을 의미합니다.
운영 체제는 멀티 태스킹을 할 수 있도록, 프로세스 마다 CPU 및 메모리 자원을 적절히 할당하고 병렬로 실행합니다.
멀티 스레드 란 하나의 애플리케이션 내부에세의 멀티 태스킹을 의미합니다.
각 스레드마다 Call Stack이 존재하며, 각각의 스레드는 독립적으로 동작합니다.
동시에 돌릴수 있는 스레드 수는 컴퓨터에 있는 코어 갯수로 제한됩니다.
싱글 코어 : 운영체제는 각 스레드를 시간에 따라 분할하여, 여러 스레드가 일정시간 마다 돌아가면서 실행되도록 합니다.(Concurrency, 동시성, 병행성)
멀티 코어 : 여러 개의 스레드가 실제로 동시에 수행됨.(Parallelism, 병렬성)