[컴퓨터과학 개론] 13강 - 데이터베이스(1)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 데이터베이스 개념(1) 데이터 처리 개념[ 데이터 ]관찰이나 측정을 통해 현실 세계에서 단순히 수집된 사실이나 값을 의미함.데이터는 적절한 처리를 거쳐야만 정보로써 가치를 지니게 된다.[ 정보처리 시스템 ]한 기관에서 데이터를 수집, 조직, 저장하고 정보를 생성, 분배하는 시스템쉽게말해, 데이터를 입력받아 처리(가공) 하고, 그 결과를 정보로 산출하는 시스템을 의미한다.이러한 정보처리 시스템을 구현하기 위해서는 여러 기술이 필요함. ( 운영체제, 네트워크 기술, 앱로직, 보안 ... 등 )이러한 기술 중에서 방대한 데이터를 효과적으로 저장하고 운영하기 위한 기술인 데이터베이스를 배우는것임.즉, 정보처리 시스템에서 한 축을 담당하고 있는 것이 이 데이터베이스임. -> 1960 년대에 등장함.(2..
[컴퓨터과학 개론] 12강 - 프로그래밍 언어(2)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 블록과 변수(1) 블록과 변수 - 개요블록(block) 과 변수(variable) 은 프로그래밍 언어가 데이터를 저장하고, 실행 범위를 관리하는 가장 기본 단위임.변수의 유효범위(scope) 문제는 변수에 대한 기억 장소의 할당 및 유지에 대한 문제로 볼 수 있음.즉, 블록내 변수에 대한 유효 범위 결정 문제는 프로그램의 실행과 깊은 관련을 가진다.[ 유효 범위 결정 문제 ]블록이 여러 겹으로 중첩이 되어있는 경우 "어떤 블록에서 정의된 변수를 어디까지 쓸 수 있나?", "겹쳐진 블록 안에서 같은 이름의 변수를 선언하면 어떤 걸 써야 하나?" 와 같은 문제를 의미한다.[ 블록과 변수 ]현재의 고급언어들은 위와같이 블록을 이용해 구조적 프로그래밍의 반복, 제어와 같이 복합문을 구현 할 수 있음.위..
[컴퓨터과학 개론] 11강 - 프로그래밍 언어(1)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 프로그래밍 언어의 개요(1) 프로그래밍 언어 개념프로그래밍 언어는 사람의 의도를 컴퓨터에게 전달하여 컴퓨터에게 작업을 수행시키기 위해 만들어짐.프로그래밍 언어는 사람의 의도를 추상화하여 압축된 언어로 컴퓨터에 전달되어야 함.동시에 컴퓨터에서 실행될 수 있는 이진 코드(binary code)로 번역되어야 함.[ 프로그래밍 언어 목적 ]일상 언어로 프로그램을 작성할 수 있다면 누구나 자신의 필요에 따라 프로그램을 작성할 수 있음하지만, 일상 언어로 작성된 프로그램은 애매모호한 의미를 가질 수 있음즉, 하나의 문장에서 두 개의 의미로 해석이 될 수도 있다는 의미임.프로그래밍 언어는 의미적으로 애매모호함이 없고, 어떤 경우에도 동일한 의미로 해석되어야 함결론은 이렇게 애매모호한 의미를 가질 수 있기 때..
[컴퓨터과학 개론] 10강 - 컴퓨터 구조(2)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 명령어(1) 명령어 집합 구조내장 프로그래밍(폰 노이만 구조) 개념으로부터 직접적으로 도출된 개념이다.이것이 ISA(Instruction Set Architecture) 이다. HW와 SW의 교량 역할을 해주는 중요한 개념이다.연산 코드(OP code)는 CPU의 명령어 집합 ISA에 의해 정의되어있음.쉽게말해, CPU가 이해하고 실행할 수 있는 명령어들의 집합과 그것들의 형식, 동작을 정의한 규칙이다.즉, 프로그래머가 CPU에게 "이렇게 동작해!" 라고 말할 수 있는 언어라고 보면 됨.결과적으로 ISA 는 단순히 명령어 모음이 아닌 CPU가 어떻게 동작할지를 정해놓은 약속집같은 것이다.[ 명령어 집합 ]컴퓨터 시스템 내에 정의되어 있는 기본적인 명령어들의 집합을 의미한다.모든 컴퓨터는 자신만의..
[컴퓨터과학 개론] 9강 - 컴퓨터 구조(1)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 불 대수와 논리 게이트(1) 컴퓨터 하드웨어의 기본 구성하드웨어 기본 구성요소는 크게 중앙처리장치, 기억장치, 입력장치, 출력장치로 구성이 되어있음.중앙처리장치: 제어장치와 연산장치 그리고 CPU 안에서 데이터나 연산의 저장을 임시적으로 저장 할 레지스터가 있으며, 연산장치와 레지스터를 합쳐서 처리장치로 보고 있음. 제어제어장치가 핵심이며, 연산장치는 계산기로써 제어장치가 명령어를 해석할 때 필요에 의해서만 호출이 되며 계산이 된다.CPU가 메모리, 입출력장치 등 다른 장치와 데이터를 주고받을 때는 시스템 버스를 통해서 이루어지게 된다.이때 제어장치(CU) 가 시스템 버스를 통해 하드웨어에 접근해 읽기/쓰기 신호를 전송하며 하드웨어를 제어할 수 있게 됨.(2) 시스템 버스중앙처리장치, 기억장치,..
[컴퓨터과학 개론] 8강 - 운영체제(2)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 프로세서 관리(1)[ 프로세스 : Process ]운영체제에 의해 메모리에 적재되고 CPU 실행 대상이 된 프로그램을 프로세스라고 한다.메모리에 올라가 있는 상태만으로도 OS 관점에서 이미 프로세스로 관리되고 있는 것이기 때문에 이것도 프로세스로 본다.CPU가 실제로 해당 메모리에 올라간 프로그램의 명령어를 가져와 실행시켜도 프로세스로 본다.프로세스는 주기억장치에 적재되고 중앙처리장치를 할당받아 실행될 명령어로 변경되어 다양한 작업을 수행할 수 있는 능동적 프로세스가 된다.정리하면 메모리에 올라간 상태와 CPU에서 메모리에 명령어를 가져와 실행 시키는 단계 또한 프로세스로 볼 수 있다는 의미[ 프로세서 : Processor ]처리하는 장치라는 뜻으로, 보통 명령어를 해석하고 실행하는 장치인 CP..
[컴퓨터과학 개론] 7강 - 운영체제(1)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 운영체제의 개념(1) 운영체제의 개념컴퓨터 하드웨어와 응용 프로그램(프로그래머) 혹은 컴퓨터 사용자 사이의 인터페이스를 제공하는 시스템 소프트웨어이다.사용자 측면에서는 하드웨어에 대한 지식이 없어도 하드웨어에 접근하고 사용할 수 있는 하드웨어 사용의 편리성 제공시스템 측면(개발자 측면)에서는 제한적인 컴퓨터 자원을 효율적으로 사용하기 위한 컴퓨터 자원 관리의 효율성 제공(2) 컴퓨터 시스템과 운영체제와의 관계응용 프로그램이나 사용자 프로그램들은 하드웨어의 메모리, cpu 등의 자원 또는 기능을 이용하기 위해서 운영체제를 통해서 하드웨어에 접근을 할 수 있게 된다. 즉, 운영체제는 하드웨어를 조작 할 수 있게 도와주는 프로그램으로 볼 수 있다.(3) 운영체제 역할관리대상인 자원의 범주에 프로세서 ..
[컴퓨터과학 개론] 6강 - 알고리즘(2)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 정렬 알고리즘: 퀵 정렬, 합병 정렬퀵정렬, 합병 정렬 두 가지의 공통 특징은 분할 정복 방법이 적용되는 알고리즘이다.분할 정복 방법은 그냥 단순히 데이터 집합을 쪼개서 분할 해서 정렬 할 때 쓰이는 개념으로 보면 될 듯(1) 퀵 정렬[ 피벗 - pivot, 분할원소 ]두 개의 부분배열로 분할할 때 기준이 되는 특정한 데이터를 의미함.보통 주어진 배열의 첫 번째 원소를 피벗으로 정하긴 함.특정 데이터(피벗)를 기준으로 입력 배열을 두 개의 부분배열로 분할하고, 각 부분 배열에 대해서 독립적으로 퀵 정렬을 순환적으로 적용한다. 라는 개념을 가지고 있는 정렬임.쉽게말해, 입력 배열에서 정렬 기준으로 삼고 싶은 요소를 피벗으로 보고 해당 피벗 데이터를 기준으로 입력 배열을 두 개의 부분 배열로 나눌 ..
[컴퓨터과학 개론] 5강 - 알고리즘(1)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 알고리즘의 개념(1) 알고리즘의 정의주어진 문제를 풀기 위한 명령어들을 단계적으로 나열한 것을 의미 ( 주어진 문제에 대한 풀이 방법 및 절차 )입출력: 0개 이상의 외부 입력, 1개 이상의 출력 생성명확성: 각 명령은 모호하지 않고 단순 명확해야 함유한성: 한정된 수의 단계를 거친 후에는 반드시 종료해야 함유효성: 모든 명령은 컴퓨터에서 실행할 수 있어야 함알고리즘을 충족하기 위해서는 이와 같이 4가지 조건을 만족해야함.알고리즘은 주어진 문제에 대한 효율적인 알고리즘을 구현하는 것을 목표로 하고 있음. ( 실용적 측면에서 효율적이어야 함 )(2) 알고리즘 생성 단계(1) 설계: 문제를 해결하는 아이디어를 구체화하여 알고리즘 형태로 만드는 단계(2) 표현/기술: 설계된 알고리즘을 수도 코드, 순..
[자료구조] 8강 - 스레드트리
·
🎓방송통신대학교/🔢자료구조
✅ 1. 스레드 트리 개념(1) 스레드 트리란?[ 기존 이진 트리의 단점 ]이진 트리: 각 노드가 데이터를 저장하고 최대 두 개의 자식 노드를 갖는 자료구조임.( 또한, 일반 이진 트리는 재귀 또는 스택을 이용해 구현을 할 수 있음. )기존 이진 트리에서 잎 노드의 left/right 포인터가 항상 NULL 이기 때문에 순회(전위, 중위, 후위 방식)를 할 때, 이전의 노드로 돌아가야 하는 경우가 있는데 이때, 재귀 호출마다 함수 호출 스택이 쌓이는 문제점이 발생함.스택 오버헤드: 트리가 깊거나 노드 수가 많아지면 스택 오버플로우가 발생 할 가능성이 높아짐.실행 속도: 함수 호출/복귀 비용이 반복되어 실행 속도가 느려질 수 있음.[ 스레드 트리 ]스레드 트리: 위와 같이 이진 트리의 단점을 보완하고자, ..