본문 바로가기

분류 전체보기

(47)
인공지능 2강 (탐색에 의한 문제풀이) 학습개요 인공지능의 초기 연구는 인간이 지능적으로 문제를 해결하는 과정을 어떻게 컴퓨터를 이용할 수 있을까에 집중된다. 이를 위해서는 우선 해결해야 할 문제를 컴퓨터를 통해 표현해야 한다. 이것은 외부 세계를 컴퓨터에 적절한 형식으로 모델링하는 것이며, 여기에는 문제를 풀이하는 과정에서 변화되는 상태를 표현하고, 이러한 상태를 변화시키는 적절한 수단을 정의하는 것을 포함한다. 알고리즘으로 해결하기 어려운 문제를 풀이하는 것은 이렇게 표현된 문제의 상태공간에서 어떻게 목표에 이르는 경로를 탐색하는 것으로 볼 수 있다. 목표상태를 탐색하는 것은 다양한 기준에 따라 순서를 정하여 탐색할 수 있다. 이번 시간에는 문제 풀이를 위한 문제표현 방법 및 문제풀이의 기본적 접근방법과 맹목적 탐색으로 분류되는 탐색 기법..
알고리즘 2강 (알고리즘 소개) 학습개요 이번 강의에서는 앞으로 다룰 다양한 알고리즘에 적용될 기본적이고 핵심적인 개념으로, 알고리즘의 성능을 분석하고 점근성능으로 표기하는 방법을 중심으로 학습한다. 또한 순환 알고리즘의 개념과 이를 위한 점화식에 대해서도 살펴본다. 학습목표 알고리즘의 시간 복잡도의 개념을 이해하고 적용할 수 있다. 점근성능의 표기법의 종류와 개념을 이해하고 적용할 수 있다. 순환 알고리즘과 점화식의 관계 및 기본 점화식의 의미를 이해할 수 있다. 주요용어 시간 복잡도(time complexity) -알고리즘을 실행시켜 완료할 때까지 걸리는 시간 -알고리즘에서 수행되는 단위 연산의 수행 횟수의 합으로 정의되며, 입력 크기의 함수와 최악의 수행시간으로 표현 공간 복잡도(space complexity) 알고리즘 수행에 필..
운영체제 1강 (운영체제 소개) 학습개요 운영체제는 컴퓨터를 사용하기 위해 반드시 필요한 소프트웨어 중 하나입니다. 컴퓨터가 사용자에게 제공하는 서비스가 다양해지고 편리해지는 만큼 사용자를 위해 컴퓨터 내에서 이루어져야 하는 자원의 관리나 활용이 효율적으로 동작해야 하는데, 운영체제는 그 근간을 이루는 핵심적인 시스템 소프트웨어입니다. 이번 강의에서는 운영체제에 대한 전반적인 개요에 대해 알아봅니다. 우선 운영체제의 정의와 역할을 살펴본 후, 운영체제를 구성하는 기본적 요소인 프로세스 관리자, 메모리 관리자, 장치 관리자, 파일 관리자의 역할에 대해 개략적으로 학습합니다. 그리고 운영체제의 유형에 대해 살펴봅니다. 학습목표 운영체제의 개념과 역할을 설명할 수 있다. 운영체제의 구성을 설명할 수 있다. 운영체제의 유형을 설명할 수 있다...
인공지능 1강 (인공지능개요) 학습개요 인공지능은 사람이 가지고 있는 고유한 능력인 지능을 컴퓨터를 통해 구현함으로써 인간의 사고과정에 대한 이해나 지능적인 도구를 만들어 내려고 하는 시도이다. 이번 강의에서는 컴퓨터를 이용한 문제풀이 방식이 지능적인 것이 되기 위해서는 어떠한 능력을 갖추고 있어야 할지에 대한 기본적인 이해를 해 보려고 한다. 학습목표 인공지능 시스템에서 필요한 ‘지능’의 의미를 설명할 수 있다. 인공지능을 구현하기 위한 접근방법의 종류를 설명할 수 있다. 지능형 에이전트의 기본적인 구조에 대해 설명할 수 있다. 주요용어 튜링 테스트 : Alan Turing이 컴퓨터의 지능적 행동 능력을 평가하기 위해 제안한 방법으로, 평가자가 가려진 사람과 컴퓨터를 대상으로 대화를 하는 과정에서 사람과 컴퓨터를 구분하는 검사 방법..
알고리즘 1강 (알고리즘 소개) 학습개요 알고리즘의 첫 번째 강의 시간으로서 알고리즘 전반에 걸친 기본적인 개념을 소개한다. 우선 알고리즘의 필요성과 정의를 간단히 살펴본 후, 알고리즘의 대표적인 설계 기법들에 대해서 중점적으로 학습한다. 학습목표 알고리즘의 중요성과 개념을 이해할 수 있다. 대표적인 알고리즘 설계 기법들의 종류와 개념을 이해할 수 있다. 거스름돈 문제와 배낭 문제의 개념, 동작 원리 및 특성을 이해할 수 있다. 주요용어 알고리즘(algorithm) 주어진 문제에 대해 하나 이상의 결과를 생성하기 위해 모호하지 않고 단순 명확하며 컴퓨터가 수행할 수 있는 유한개의 일련의 명령을 순서에 따라 구성한 것 욕심쟁이 방법(greedy method) 해를 구하는 일련의 선택 과정마다 해당 단계에서 ‘가장 최선‘이라고 여겨지는 국..
Spring data jpa 타임리프 페이징 Criteria @Data public class Criteria { private int pageNum; private int amount; // 현재 페이지, 페이지 당 보여질 게시물 갯수 private int showStat; private String keyword; private String type; // 검색 키워드, 검색 타입 // private String[] typeArr; //검색 타입 배열 // 기본 생성자 -> 기본세팅 : pageNum=1, amount=10 public Criteria() { this(1, 10); } // 생성자 -> 원하는 pageNum, 원하는 amount public Criteria(int pageNum, int amount) { super(); this..
REST API와 WebSocket: 실시간 통신을 위한 기술 소개 REST API: 요청 기반의 단방향 통신 REST (Representational State Transfer) API는 클라이언트와 서버 간 통신에 가장 널리 사용되는 기술입니다. 이 구조에서 클라이언트는 서버에 요청을 보내고, 서버는 그 요청에 대한 응답을 반환합니다. 이 통신은 단방향으로, 클라이언트가 서버에 정보를 요청할 때만 발생합니다. 택시 앱을 이용하는 손님이 드라이버의 위치를 확인하고 싶을 때를 예로 들면, 클라이언트 앱은 서버에 드라이버의 현재 위치를 요청합니다. 서버는 이 요청에 응답하여 드라이버의 위치 정보를 클라이언트에 전달합니다. WebSocket: 양방향 통신의 실현 WebSocket은 클라이언트와 서버 간에 양방향 통신 채널을 제공하는 기술입니다. 이를 이용하면 서버는 요청 없..
Node.js 프로젝트를 위한 필수 라이브러리와 도구 설정하기 Node.js 프로젝트를 개발하면서 로그 관리, 데이터베이스 연결, 타입스크립트 사용 등 다양한 요구사항이 생깁니다. 이 글에서는 프로젝트 관리와 개발을 효율적으로 진행할 수 있는 주요 라이브러리와 도구의 설치 및 설정 방법을 소개합니다. Morgan 설치로 로그 관리하기 로그 관리는 모든 애플리케이션에 필수적입니다. Node.js에서 **morgan**은 요청 로그를 효과적으로 관리할 수 있게 도와주는 미들웨어입니다. $npm install morgan --save-dev ​ save-dev 옵션은 이 라이브러리가 개발 환경에서만 필요하다는 것을 나타냅니다. ts-node 설치로 TypeScript 실행하기 *ts-node*를 설치하면 Node.js 환경에서 TypeScript 파일을 컴파일 없이 바로..