일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- select
- 오블완
- 우선순위큐
- Node
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- 컴파일시스템
- CSS 기초
- 자바스크립트
- 자바문자열구분
- 블록체인 강의
- StringBuilder
- StringTokenizer
- 블록체인강의
- stringreader
- attribute
- 자바입력받기
- 반정규화
- Entity
- 시스템프로그래밍
- html 태그
- biginteger사용법
- K-MOOC
- html기초
- 2차원배열정렬
- 티스토리챌린지
- K-MOOC 단국대학교 홍보단
- 블록체인
- 해시
- national instruments
- 단국대학교 k-mooc
- Today
- Total
목록CS (36)
열정 실천
시스템 프로그래밍이란? 컴퓨터는 크게 하드웨어와 소프트웨어로 나누어지는데, 하드웨어에는 CPU, 메모리, I/O(입출력)장치로 소프트웨어는 어플리케이션 프로그램과 시스템 프로그램으로 구성된다. 어플리케이션 프로그램은 특정한 기능을 수행하고 시스템 프로그램은 이 어플리케이션과 하드웨어를 연결시켜준다. 우리가 지금까지 개발할 때는 코드를 치고 컴파일을 하면 그 과정은 생략하고 바로 결과를 볼 수 있었다. 이는 추상화가 잘 이루어져 있기에 가능했던 것이고 실제로는 시스템 프로그램에 의해 컴파일되고, 메모리와 CPU에 파일을 옮겨지고, 실제 process로써 돌아가게 된다. 우리는 이제 추상화로 숨겨져 있는 부분 즉, 시스템 프로그램의 원리에 대해 공부하고자 한다!! 컴퓨터 시스템의 구성요소 컴퓨터 시스템의 범..
컴퓨터의 구조는 입/출력 장치, CPU, 주기억장치, 보조기억장치로 구분된다. 아래 그림을 보면 컴퓨터 구조를 파악해볼 수 있다. 오늘은 대략적으로 어떤 역할을 하는지에 대해서 알아보고 더 상세한 내용은 다음 시간에!! CPU : Central Processing Unit 메모리에 저장된 프로그램과 자료를 이용하여 실제 작업을 수행하는 회로장치이다. 주요 구성 요소로 3가지가 있다. - 연산장치 : 자료의 연산을 수행 - 제어장치 : 컴퓨터의 작동을 제어 - 레지스터 : 연산에 필요한 자료를 임시로 저장 주기억장치 주기억장치는 CPU가 해야 할 작업 내용인 프로그램 명령어와 프로그램에서 이용할 자료를 저장한다. 주기억장치로는 RAM과 ROM이 있다. RAM (Random Access Memory : *임..
메모리 동적 할당이란?? 정적 메모리 : 프로그램이 실행하는 순간 프로그램이 사용할 메모리 크기를 고려하여 메모리를 할당하는 기법 (Static Allocation) 동적 메모리 : 프로그램이 실행 중에 필요한 만큼 메모리를 할당하는 기법 (Dynamic Allocation) - 힙 영역에 할당 동적 메모리 할당하기 메모리 동적 할당을 하는 방법은 Malloc, Calloc Relloc 이렇게 3가지가 있다. 우선 이 함수를 사용하려면 stdlib.h 헤더파일(표준 라이브러리 함수 정의)을 추가해야한다. Malloc malloc 은 인자로 전달된 값에 해달하는 크기의 메모리 공간을 힙 영역에 할당하고, 이 공간의 주소값을 반환한다. - 함수 원형 - void* malloc(size_t size); mal..
효율적인 알고리즘이란 전체 실행 시간이 짧으면서 메모리와 같은 컴퓨터의 자원들을 적게 사용하는 알고리즘 이다. 일반적으로 메모리 공간보다 실행시간이 더 중요하게 생각된다. 그렇다면 실행시간을 측정하기 위해 어떤 방법을 써야할까? 두 개의 알고리즘을 동시에 실행에 비교를 하는 경우에는 무조건 "구현"해야하고, 동일한 조건의 하드웨어여야하고, 소프트웨어환경도 동일해야하기 때문에 효율성을 따지기에 요구사항이 많다. 이와같은 문제점들 때문에 알고리즘을 직접 구현하지 않고도 대략적인 효율성을 분석할 수 있는 방법이 개발되었다. 이것을 알고리즘의 복잡도라고 하고, 알고리즘의 실행시간 분석은 시간 복잡도(time conplexity), 알고리즘이 사용하는 기억 공간 분석을 공간 분석도(complexity)라고 한다...
추상자료형이란? 자료의 집합과 자료에 가해지는 연산들의 집합에 대한 수학적인 명세. 추상자료형을 표현할 때, 데이터는 주로 집합의 개념을 사용하여 표현하고, 연산의 정의에는 연산의 이름, 매개변수, 결과, 기능 등을 기술한다. 추상자료형과 C++,Java 추상 자료형의 개념은 C++과 Java의 특징인 객체지향의 개념과 정확히 일치한다. 객체지향 언어인 C++과 Java에서는 클래스를 사용하여 추상 자료형을 구현한다. 추상 자료형의 "데이터"는 클래스의 멤버변수(속성)로 구현되고, "연산"은 클래스의 멤버함수(메소드)로 구현된다.
자료구조란? 현실 세계에서의 반복적이고 복잡한 자료들을 효율적으로 처리하기위해 컴퓨터는 자료들을 정리하고 조직화하는 여러가지 구조들을 활용한다. 이를 자료구조라고 부른다. 자료구조의 분류 자료구조는 프로그래밍 언어가 기본적으로 제공하는 정수, 실수, 문자와 같은 단순 자료구조와 이와는 다른 복합 자료구조로 나눠지고, 복합 자료구조는 가시 선형 자료구조와 비선형 자료구조로 나누어진다. 프로그램 = 자료구조 + 알고리즘 프로그램은 데이터를 처리하고 있고 이들 자료구조는 자료구조를 사용하여 표현하고 저장된다. 또한, 주어진 문제를 처리하는 절차인 알고리즘이 필요하다. 자료구조와 알고리즘은 밀접한 관계가 있어서 자료구조가 결정되면 그 자료구조에서 사용할 수 있는 알고리즘이 결정된다. 효율적인 알고리즘이란? 전체..