배경 지식 복잡도 알고리즘에서 복잡도는 시간복잡도와 공간복잡도로 나뉘어진다. 시간복잡도란 '문제를 해결하는 데 걸리는 시간과 입력의 함수 관계'를 말하며, 특정 알고리즘의 로직이 입력의 크기에 따라 얼마나 오랜 시간 소요되는지를 의미한다. 빅오 표기법이 주로 사용되며
운영체제 개요 운영체제(Operating system, OS)는 컴퓨터의 하드웨어를 관리하는 소프트웨어이다. 컴퓨터에는 수 많은 하드웨어가 존재하고 여러 입출력 디바이스도 연결되어있으며 동시에 수 많은 응용 프로그램들이 작동된다. 이러한 구조 속에서 사용자가 한정된
버블 정렬 두 인접한 원소를 비교하여 정렬하는 방법이다. 작동 과정 배열의 길이가 N일 때, 1부터 N-1번 원소까지 이전의 원소와 비교하여 더 크다면/작다면 위치를 교환한다. 위 과정을 N번 반복한다. 특징 코드가 단순하다. 추가적인 메모리 공간이 필요하지 않다.
객체지향 언어실제 세계를 모델링하여 개발하는 방법으로, 데이터(프로퍼티)와 절차(메서드)가 하나로 묶인 객체를 중심으로 한 상호작용(메세지)으로 서술하는 방식이다.원칙단일책임 : 하나의 클래스는 하나의 기능만 가진다.개방폐쇄 : 기존의 코드를 수정하지 않고 동작을 추가
용어 정리 프로그램 컴퓨터에서 실행될 때 특정 작업(specific task)을 수행하는 일련의 명령어들의 모음(집합). HDD나 SDD같은 보조기억장치에 저장된 사용자가 작성한 코드 또는 컴파일 된 결과물. 참고 컴퓨터 프로그램 - wikipedia
멀티프로그래밍 일반적으로 실행되는 프로세스는 CPU 또는 I/O 사용 중 하나를 필요로 한다. CPU를 점유하여 프로세스를 실행하거나, I/O 작업을 통해 파일 입출력 등을 진행한다. 즉, 어떤 프로세스가 I/O 작업을 한다면 CPU는 그 동안 유휴 상태에 놓이게 된