목록2024/04 (38)
navis
학습개요 이번 강의부터 앞으로 3번의 강의에 걸쳐서 다양한 정렬 알고리즘에 대해서 학습한다. 이번 시간은 정렬의 첫 번째 강의로서 정렬의 기본 개념과 관련 용어를 우선 살펴보고, 정렬할 데이터의 개수가 작을 때 간단히 사용될 수 있는 기초적인 성능의 비교 기반의 내부 정렬 알고리즘으로서 선택 정렬, 버블 정렬, 삽입 정렬, 셸 정렬에 대해서 살펴본다. 학습목표 정렬과 관련된 기본적인 개념과 용어들을 이해할 수 있다. 기초적인 성능의 내부 정렬 알고리즘으로서, 선택 정렬, 버블 정렬, 삽입 정렬 및 셸 정렬의 원리와 수행 과정을 이해할 수 있다. 기초적인 정렬 알고리즘의 성능을 분석하고 장단점을 이해할 수 있다. 주요용어 내부 정렬(internal sort) - 정렬할 모든 데이터를 주기억장치에 저장한 후..
1. Docker 설치Docker 홈페이지에 접속하여 자신의 OS에 맞는 Docker를 내려 받아 설치한다.설치가 완료되면 다음 명령어를 실행하여 버전을 출력해 보자.$ docker -vDocker version 19.03.13, build 4484c46d9d#2. MySQL Docker 이미지 다운로드다음 명령어로 MySQL Docker 이미지를 다운로드한다. 태그에 버전을 지정하지 않으면 최신 버전을 다운로드한다.$ docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysqlbb79b6b2107f: Pull complete49e22f6fb9f7: Pull complete842b1255668c: Pull complete9f48..
학습개요 프로그램을 실행시키면 운영체제로부터 프로그램이 동작하는 데 필요한 자원을 할당받아 동작을 시작합니다. 이처럼 실행상태에 들어간 프로그램을 프로세스라고 합니다. 프로세스의 동작은 CPU가 그 프로세스의 명령들을 실행하는 것입니다. 이때 CPU도 기억장치나 입출력장치와 마찬가지로 프로세스가 동작하는데 필요한 자원입니다. 그리고 프로세스 내에서의 다중처리를 위해 한 프로세스 안에 여러 개의 쓰레드를 두기도 합니다. 이번 강의에서는 운영체제의 핵심적인 구성요소 중 하나인 프로세스에 대한 기본적인 이해와 함께 쓰레드의 개념을 학습합니다. 학습목표 프로세스의 개념을 설명할 수 있다. 쓰레드의 개념을 설명할 수 있다. 프로세스와 쓰레드의 관계를 설명할 수 있다. 정리하기 프로세스는 실행 중인 프로그램을 의미..
학습개요 인공지능의 초기 연구는 인간이 지능적으로 문제를 해결하는 과정을 어떻게 컴퓨터를 이용할 수 있을까에 집중된다. 이를 위해서는 우선 해결해야 할 문제를 컴퓨터를 통해 표현해야 한다. 이것은 외부 세계를 컴퓨터에 적절한 형식으로 모델링하는 것이며, 여기에는 문제를 풀이하는 과정에서 변화되는 상태를 표현하고, 이러한 상태를 변화시키는 적절한 수단을 정의하는 것을 포함한다. 알고리즘으로 해결하기 어려운 문제를 풀이하는 것은 이렇게 표현된 문제의 상태공간에서 어떻게 목표에 이르는 경로를 탐색하는 것으로 볼 수 있다. 목표상태를 탐색하는 것은 다양한 기준에 따라 순서를 정하여 탐색할 수 있다. 이번 시간에는 문제 풀이를 위한 문제표현 방법 및 문제풀이의 기본적 접근방법과 맹목적 탐색으로 분류되는 탐색 기법..
학습개요 이번 강의에서는 앞으로 다룰 다양한 알고리즘에 적용될 기본적이고 핵심적인 개념으로, 알고리즘의 성능을 분석하고 점근성능으로 표기하는 방법을 중심으로 학습한다. 또한 순환 알고리즘의 개념과 이를 위한 점화식에 대해서도 살펴본다. 학습목표 알고리즘의 시간 복잡도의 개념을 이해하고 적용할 수 있다. 점근성능의 표기법의 종류와 개념을 이해하고 적용할 수 있다. 순환 알고리즘과 점화식의 관계 및 기본 점화식의 의미를 이해할 수 있다. 주요용어 시간 복잡도(time complexity) -알고리즘을 실행시켜 완료할 때까지 걸리는 시간 -알고리즘에서 수행되는 단위 연산의 수행 횟수의 합으로 정의되며, 입력 크기의 함수와 최악의 수행시간으로 표현 공간 복잡도(space complexity) 알고리즘 수행에 필..
학습개요 운영체제는 컴퓨터를 사용하기 위해 반드시 필요한 소프트웨어 중 하나입니다. 컴퓨터가 사용자에게 제공하는 서비스가 다양해지고 편리해지는 만큼 사용자를 위해 컴퓨터 내에서 이루어져야 하는 자원의 관리나 활용이 효율적으로 동작해야 하는데, 운영체제는 그 근간을 이루는 핵심적인 시스템 소프트웨어입니다. 이번 강의에서는 운영체제에 대한 전반적인 개요에 대해 알아봅니다. 우선 운영체제의 정의와 역할을 살펴본 후, 운영체제를 구성하는 기본적 요소인 프로세스 관리자, 메모리 관리자, 장치 관리자, 파일 관리자의 역할에 대해 개략적으로 학습합니다. 그리고 운영체제의 유형에 대해 살펴봅니다. 학습목표 운영체제의 개념과 역할을 설명할 수 있다. 운영체제의 구성을 설명할 수 있다. 운영체제의 유형을 설명할 수 있다...