컴퓨터 공학 Computer Engineering 18

[컴퓨터 비전] Sampling & Aliasing, Nyquist Rate, Low pass Filter

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! Sampling & Aliasing 우리가 다루는 이미지는 2차원의 신호(Signal)로 볼 수 있다. Figure 1. 에서 노란 선의 신호를 화살표 우측의 연속적인 신호로 나타낼 수 있고, 연속적인 신호는 Sampling할 수 있다. (연속적인 신호(또는 함수)에서 특정 위치를 대표하는 값을 뽑아내는 과정을 Sampling이라고 한다.) Sampling된 값을 다시 연속적인 값으로 복원할 때, 기존의 신호와 달라지는 현상이 발생하는데 이런 현상을 Aliasing이라고 부른다. 이처럼 우리가 다루는 이미지는 연속이 아닌 discrete한 pixel 값으로 이루어져 있고, 카메라의 센서 또한 불연속..

Resizing Array

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! Introduction C언어로 프로그래밍을 공부하면서 가장 처음 접하게 되는 기본적인 배열(Array)은 초기화 시 자료형과 크기를 지정한다. 배열의 크기를 지정해두기 때문에, 데이터의 입력이 얼마나 들어오는지 미리 알기 어려운 경우에는 배열 크기 설정에 어려움을 겪는다. 이런 어려움을 해결하기 위해 다음 특징을 갖는 Resizing Array를 사용한다: - 저장된 데이터의 크기에 따라 Array의 크기를 재조정하는 자료 구조 - index로 원소 접근 가능 Python의 List, C++의 vector, Java의 ArrayList가 그 대표적인 예시이다. 이를 활용해 사용자는 데이터의 입력이..

관계형 해석 (튜플 관계형 해석 vs 도메인 관계형 해석)

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! 관계형 해석 (Relational Calculus) 원하는 정보가 무엇(What)이라는 것만 정의하는 비절차적인 특성(Non-Procedural)을 가진다. 관계형 대수와 관계형 해석은 동등하며, 서로 변환이 가능하다. 튜플(Tuple) 관계형 해석, 도메인(Domain) 관계형 해석의 두가지 표현 방법이 있다. 튜플 관계형 해석 vs 도메인 관계형 해석 튜플 관계형 해석과 도메인 관계형 해석은 표현 방법의 차이는 있지만 표현 능력은 동등하다. 1. 튜플 관계형 해석 튜플 관계형 해석식을 구성하는 요소는 아래와 같다. 튜플 변수(또는 범위 변수 t) : 튜플 변수의 선언은 R(t) 형식으로 표기한다..

[컴퓨터 구조] 컴퓨터의 주요 구성요소 5가지

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! 컴퓨터에는 기본적인 function 이 있고, 그 기본을 수행하기 위해 중요한 구성 요소들이 있다. Basic Functions of a Computer 먼저, 컴퓨터의 기본적인 function 을 말하자면 아래와 같다. Input / Output Data Process the Data Store the Data Components of a Computer 컴퓨터의 주요 구성 요소에는 5가지가 있다. 그 다섯 가지는 바로 아래 그림의 요소들 중 Input, Output, Control, Datapath, Memory 이다. 주요 구성 요소들은 하드웨어 기술과 무관하게, 과거부터 현재까지의 모든 컴퓨..

[컴퓨터 구조] High Level Language to the Language of Hardware

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! Instructions 우리가 일반적으로 쓰는 언어는 하드웨어가 이해할 수 없다. 하드웨어가 이해할 수 있는 0과 1로만 이루어진 command를 우리는 Instruction 이라고 부른다. High-Level Language -> Instruction High-Level Language 프로그래머가 좀 더 자연스러운 언어(영어와 대수적 표현) 으로 생각할 수 있도록 도와준다. 개발하는 환경과 다른 환경에서도 잘 작동함. ( 컴파일러와 어셈블러를 통해 모든 하드웨어의 이진 명령으로 번역할 수 있다. ) 어셈블리어, 기계어보다 간결하다. C, Java, C++, Python ... 등 컴파일러를 통해..

[컴퓨터 구조] Below Your Program(Application Software, System Software, Hardware)

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! Below Your Program 우리는 프로그램을 사용할 줄은 알지만, 내부에서 어떤 일을 하는 지는 모른다. Application Software를 구성하는 코드를 Hardware는 그대로 이해할 수 없다. 따라서 High-Level operations를 Simple Computer Instructions로 번역하는 과정이 필요하다. 프로그램 내에 어떻게 소통이 이뤄지는지 확인해보자. Application Software 우리가 흔히 접하고 사용하는 프로그램( 워드 프로세서, 데이터베이스, 웹 브라우저 등 대부분의 프로그램 )을 말한다. 응용 프로그램(Applications software)은 ..

[컴퓨터 구조] 무어의 법칙이란? (Moore's Law)

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! 고든 무어 무어의 법칙은 인터넷 경제의 3원칙 ( 무어의 법칙, 메트칼프의 법칙, 가치사슬을 지배하는 법칙 ) 중 하나로, 인텔의 창립자 고든 무어(Gordon Moore)가 1965년 발표한 논문의 '글'이 학계와 업계에서 인용되면서 '무어의 법칙'이라는 이름이 붙게 됐다. 무어의 법칙 (Moore's Law) 무어의 법칙은 '반도체의 처리 속도가 두배가 된다.' 이런 뜻이 아니다. 약 18개월~24개월 주기로 칩의 집적도가 약 2배씩 상승한다는 말이다. 즉, 트랜지스터가 두배씩 증가한다. 아래의 그래프를 보면 어느정도 맞다. 우리는 프로젝트를 할 때 종료시점까지 프로젝트가 대략 얼마정도 걸리는지..

[CUDA] 쿠다 프로그램 작성해보기 (.cu 확장자)

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! 글에 포함된 코드의 개발 환경은 아래와 같습니다. - CUDA : CUDA v11.4 - IDE : Visual Studio 2019 - OS : Windows 10 CUDA 프로젝트 만들기 최근에는 Visual Studio 내에서 CUDA 프로젝트를 손쉽게 만들 수 있습니다. 새 프로젝트 만들기를 선택하고 스크롤을 내려보면 아래 그림과 같이 CUDA 프로젝트를 만들 수 있습니다. (CUDA를 설치해 놓지 않았으면 설치부터 해야합니다.) .CU 확장자 위와 같이 쿠다 프로젝트를 만들면 소스 코드의 확장자 명이 .cu 인 것을 확인할 수 있습니다. 모든 쿠다 프로그램은 확장자 명으로 .cu 를 사용합..

[MySQL] 테이블 열(컬럼) 추가, 삭제 (예시 포함)

MySQL에서 테이블 열을 추가하거나 삭제하기 위한 구문을 알아보겠습니다. 컬럼 추가 먼저 열을 추가하는 구문입니다. alter table 테이블명 add column 컬럼명 타입 옵션 컬럼 삭제 다음은 열을 삭제하는 구문입니다. alter table 테이블명 drop column 컬럼명 예시 위의 구문을 사용해 열을 추가, 삭제해보겠습니다. 위는 수정하기 전 제가 사용할 테이블입니다. 위의 기존 user 테이블에 삭제, 추가 구문을 사용해봅시다. 위의 구문을 입력해 날짜에 관련된 열을 먼저 삭제하고, 취미와 관련된 열을 추가했습니다. 그럼 어떻게 됐는지 보겠습니다. 결과를 확인해보면 mDate 열은 사라지고, hobby 열은 추가돼 NULL 값으로 채워졌습니다. 이전 포스팅(https://kingnam..

DBMS(DataBase Management System)란? DBMS의 필수 기능, 장단점

이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다! DBMS란 DBMS(DataBase Management System)은 기존 파일 시스템의 데이터 종속성(Data Dependency)과 데이터 중복성(Data Redundancy) 문제를 해결하기 위해 제안됐다. DBMS는 다양한 사용자가 필요로 하는 데이터베이스를 정의, 생성, 조작, 공유할 수 있도록 기능을 제공하는 소프트웨어 시스템을 말한다. 이런 환경 하에 응용 프로그램들이 데이터베이스를 이용하기 위해서는 DBMS를 통해야 하며, 데이터베이스의 구성, 접근방법, 그리고 관리유지에 대한 모든 책임을 DBMS가 지고 있다. DBMS의 기본적인 아이디어는 아래 그림처럼 묘사된다. DBMS의 필수..