[자료구조] 9강 - 힙
·
🎓방송통신대학교/🔢자료구조
✅ 1. 우선순위 큐(1) 큐FIFO(First In First Out) - 먼저 들어온 데이터가 먼저 삭제되는 자료 구조 ( 먼저 처리되는 데이터 )(2) 우선순위 큐위의 큐 구조에서 만약 중간의 데이터를 먼저 빼고 싶은 경우가 존재 할 때 사용되는 큐가 우선순위 큐임.즉, 우선순위가 높은 데이터가 먼저 처리가 되는 Queue 자료구조로 볼 수 있음.(3) 우선순위 큐 - 배열 구현위의 큐의 이미지는 배열 방식으로 구현 된 큐의 모습이다.먼저 데이터가 삽입이 되면, rear 포인터가 오른쪽으로 움직이면서 해당 위치에 데이터가 삽입이 된다.데이터를 꺼내는 작업(삭제 작업)을 하면 front 포인터가 한 칸씩 이동하면서 데이터를 꺼내면서 삭제하게 된다.배열에 우선순위 큐를 접목하게 되면, 위와 같이 특정 ..
[컴퓨터과학 개론] 15강 - 네트워크
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 컴퓨터 네트워크의 개요 및 발전 역사(1) 컴퓨터 네트워크의 개요데이터 통신을 위해 개발된 컴퓨터 네트워크는 게속적인 발전을 통해 서비스의 공유 및 컴퓨팅 자원의 공유를 위한 가장 효율적인 도구가 되었음컴퓨터 네트워크는 기본적으로 사람, 컴퓨터, 기타 장비들 간의 정보 교류를 위한 통신망임.(2) 컴퓨터 네트워크 서비스 역사[ 1960년대, ARPANet ]미국 국방 고등 연구 기획국(DARPA, Defense Advanced Research Project Agency)의 주도로 MIT를 중심으로 패킷 교환 네트워크로 현재의 인터넷이 시작이 됨.1960년대 초부터 기획이 사직되어 최초의 서비스가 1969년에 시작되었고, 1973년에는 현재 인터넷의 주요 프로토콜인 TCP/IP가 개발되어 ARPA..
[컴퓨터과학 개론] 14강 - 데이터베이스(2)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 관계형 모델(1) 관계형 데이터 모델관계형 데이터 모델은 실세계 정보를 2차원 테이블("릴레이션") 형식으로 표현하고 구현한 것임.테이블을 이용하여 데이터와 데이터의 관계를 표현하며, 데이터베이스를 2차원 테이블의 집합으로 간주함.실제 데이터가 테이블 형태로 저장되는 것을 의미하지 않음. ( 논리적으로 표현하여, 직관적으로 이해하기 쉽게 표현 )즉, 논리적 표현에 불과하며, DB 내부에서는 테이블이 아닌 디스크 블록, 페이지, B+트리, 해시 구조 등으로 저장됨.(2) 관계형 모델과 관련된 용어릴레이션: 관계형 데이터 모델에서 테이블을 의미함.투플: 한 행을 의미함.카디널리티 (행의 총 합): 한 릴레이션(테이블) 행의 수를 의미함. ( 투플의 개수를 의미함 )차수(열의 총 합): 한 릴레이션(..
[컴퓨터과학 개론] 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) 운영체제 역할관리대상인 자원의 범주에 프로세서 ..