대학
-
컴퓨터의 구조와 성능 향상대학/운영체제 2023. 4. 16. 21:20
컴퓨터의 기본 구성 CPU, 메모리와 같은 필수장치와 키보드 같은 입력장치, 그래픽카드 같은 출력장치, 디스크 같은 저장장치 등 주변장치로 구성되어 있다. 현대의 컴퓨터는 폰 노이만 구조를 따르는데, 폰 노이만 구조는 CPU, 메모리, 입출력장치, 저장장치 등은 버스(Bus)로 연결되어 있고, 모든 프로그램은 메모리에 올라와야 실행될 수 있는 구조를 말한다. 여기서 메모리와 주변장치를 연결하는 버스를 Front-Side Bus 라 하고, CPU 내부의 장치를 연결하는 버스를 Back-Side Bus 라 한다. 일반적으로 BSB의 속도가 FSB보다 훨씬 빠른데, CPU는 BSB의 속도로 동작하고, 메모리는 FSB의 속도로 동작하기 때문에 지연이 발생하게 된다. 이 문제는 cache를 통해 해결한다. FSB..
-
운영체제와 컴퓨터대학/운영체제 2023. 4. 16. 20:18
운영체제의 개요 운영체제는 응용 프로그램, 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고, 그 결과를 돌려주는 시스템 소프트웨어 이다. 이 과정에서 사용자가 직접 컴퓨터 자원에 접근하는 것을 막아 자원을 보호한다. 초기 컴퓨터는 논리적으로 순차 처리하는 일괄 작업 시스템으로 시작했지만, 이후에 주변기기들이 생겨나면서 입력값에 따라 작업의 흐름이 바뀌는 대화형 시스템을 넘어 여러 작업을 시분할 하여 동시에 처리하는 것 처럼 하는 시분할 시스템까지 발전하게 되었다. (운영체제는 프로세스를 관리하고, 실제 작업의 처리단위는 스레드로 CPU가 시분할로 처리한다) 인터넷이 보급됨에 따라 분산 시스템이 생겨났고, 이는 곧 서버-클라이언트 시스템으로 발전했다. 서버의 부담을 줄이고자 p2p(peer)..
-
Database Design using E-R model대학/데이터베이스 2023. 4. 15. 23:38
E-R model에서 E는 Entity, R은 Relationship을 지칭하는데 이 용어가 무엇을 뜻하는지를 우선 알아보자. Entity set entity(개체)란 구분이 가능한 객체로 attribute의 집합으로 표현되기도 한다. tuple과 헷갈리기 쉬운데 tuple은 실제 DB에서 사용되는 용어이고, attribute의 순서가 중요하지만, entity는 DB 설계에서 사용되는 용어이고, attribute의 순서가 중요하지 않다. 이런 entity의 집합을 entity set이라 하고, 다음과 같이 그릴 수 있다. relation과 생김새가 비슷하지만, 여기에는 표현되지 않은 attribute가 나중에 구현에 가서는 생기는 등 차이점이 존재한다는 점을 알아두자. 밑줄친 attribute는 prim..
-
SQL 중급대학/데이터베이스 2023. 4. 15. 15:25
모든 예시는 sqlite3을 기준으로 작성하였습니다. 이 포스트에서는 아래의 내용을 다룹니다. Join inner left outer right outer full outer natural on using Views update view Simple View Transactions Integrity Constraints not null primary key unique check references on (Action) Built-in Data Type date time timestamp interval julianday Large-Object Type blob clob Index Output Redirection Join join 연산은 Cartesian-Product와 Select 연산의 합으로 구현..
-
SQL 입문대학/데이터베이스 2023. 4. 12. 15:29
모든 예시는 sqlite3을 기준으로 작성하였습니다. 이 포스트에서는 아래의 내용을 다룹니다. 테이블 생성 Domain Type 테이블 업데이트 insert delete drop alter update Query select from where Relational Language DML DDL Aggregate Function avg min max sum count Window Function row_number rank 기타 Query operation like (%, _), substring, || Set operation (union, intersect, except) Set membership (in) / Set comparison (exists, unique) order by limit Null..
-
데이터베이스 개념대학/데이터베이스 2023. 4. 6. 14:24
DBMS 데이터를 CSV처럼 관리한다고 생각해보자. Artist(name, year, country) "A", 1992, "USA" "B", 1990, "KOREA" "C", 2000, "KOR" Album(name, artist, year) "song 1", "a", 1993 "song 2", "B", 1980 "song 2", "B", 1980 이런 경우 다음과 같은 문제가 발생할 수 있다. 1. country 이름의 일관성이 없다. 2. Artist 테이블에 없는 사람의 곡이 Album 테이블에 있을 수 있다. 3. 사람이 태어나기도 전에 곡이 있는, 논리적으로 맞지 않는 상황이 있을 수 있다. 4. 중복된 데이터가 존재할 수 있다. 등등, 그저 문자로 데이터를 관리하면 무결성, 유지보수 측면에서 ..
-
그래프대학/자료구조실습 2022. 12. 15. 22:21
- 그래프 노드와 노드를 연결하는 간선들로 이루어진 비 선형 자료구조로 트리와 다르게 패턴이 없다. 모든 노드가 1-1로 연결되어 있는 그래프를 완전 그래프 (Complete Graph)라 부르고, 원래 그래프에서 일부 간선을 제외한 그래프를 부분 그래프 (Subgraph)라 부른다. 그래프의 표현 방법은 인접 행렬 (Adjacency Matrix)과 인접 리스트 (Adjacency List)로 표현할 수 있는데, 인접 행렬로 표현시 구현이 쉽고, 특정 노드간의 인접 여부 확인이 빠르다는 장점이 있지만, 특정 노드와 인접한 모든 노드를 알고자 할 때, 모든 간선을 확인해야 하고, 구현상의 이유로 메모리 낭비가 발생한다는 단점이 있다. 반면에 인접 리스트로 표현시 메모리 효율적이고, 인접한 노드를 효율적으..
-
스택 / 큐대학/자료구조실습 2022. 12. 15. 21:38
- 스택 (Stack) 한 쪽에서만 데이터 입출력이 일어나는 선형구조로, 가장 마지막에 삽입된 원소가 가장 먼저 제거되는 LIFO 형태의 자료구조 이다. c++ STL의 stack 라이브러리이다. 위 코드는 일반 스택1과, 크기가 2, 값 100으로 초기화한 vector을 이용한 스택2를 수정해보는 코드이다. - 큐 (Queue) 한 쪽에서 데이터 입력이, 다른 한 쪽에서 데이터 출력이 일어나는 선형구조로, 가장 처음에 삽입된 원소가 가장 먼저 제거되는 FIFO 형태의 자료구조 이다. c++ STL의 queue 라이브러리이다. 위 코드는 일반 큐1과, 크기가 2, 값 100으로 초기화한 list을 이용한 큐2를 수정해보는 코드이다.