하드웨어: 컴퓨터를 물리적으로 구성하는 요소이며, 컴퓨터에 연결되어 추가적인 기능을 수행합니다.컴퓨터의 하드웨어는 중앙처리장치, 기억장치, 입출력장치로 구성됩니다.중앙처리장치(Central Processing Unit, CPU)는 프로세서라고 불리기도 하는데, 입력장치
CPU는 용량이 매우 큰 파일이나 데이터를 처리해야 하지만, 한 번에 32bit 또는 64bit의 블록 단위로 굉장히 적은 양의 데이터를 조작하고 계산합니다. 하지만 중앙처리장치는 이러한 비트들을 빠른 속도로 처리할 수 있습니다.이와 정반대로, 하드디스크는 CPU보다
정보를 저장하고 연산을 수행하기 위해 컴퓨터는 비트(bit)라는 측정 단위를 씁니다. 비트는 이진 숫자는 0과 1, 두 가지 값만 가질 수 있는 측정 단위입니다.하나의 비트는 0과 1, 이 두 가지의 값만 저장할 수 있습니다. 하지만 비트 한 개는 많은 양의 데이터를
2진수 개요 > 비트란 이진법의 최소단위로, 숫자 0, 1로 신호를 나타내는 최소의 단위를 비트라 합니다. 비트를 가지고 수학적 연산을 하기 위해 컴퓨터는 0과 1만을 사용하는 2진수라는 수 체계를 사용합니다. 수 체계 우리가 사용하는 수 체계는 10진수입니다. 1
컴퓨터는 0과 1로 된 데이터만 저장할 수 있기 때문에, 0과 1을 이용한 텍스트 문자로 나타내야 합니다. ASCII(아스키)는 문자를 컴퓨터가 이해할 수 있는 이진 데이터(0 또는 1)로, 혹은 그 반대로 변환하는 표준 방법입니다.ASCII(아스키)는 컴퓨터가 텍스트
16진수 개요 컴퓨터에서 데이터를 처리하기 위해 16진수를 사용할 때 장점이 있습니다. 16진수를 사용하면 10진수보다 2진수를 간단하게 나타낼 수 있습니다. 10진수를 16진수로 바꾸어보기
보통 우리가 볼 수 있는 이미지 파일 형식으로는 비트맵(.bmp), JPG(.jpg), PNG(.png), GIF(.gif) 등이 있습니다. 사진을 찍어 이미지에 저장하면 그 이미지는 보통 JPEG라는 확장자를 갖게 되고 이미지를 압축하여 저장합니다. 하나의 이미지를
가상현실을 통해 3차원 세계에서 게임이나 비디오 등의 시뮬레이션을 경험할 수 있게 되었습니다. 증강현실은 가상현실과 기본적으로 비슷한데, 사용자에게 기존의 주변환경과 분리된 전혀 다른 환경을 경험하게 하지 않고 현재의 환경 위에 영상, 게임 등의 효과를 입히는 기술입니
자연어란 인간이 일상적으로 사용하는 언어입니다. 컴퓨터는 기계어를 사용하기 때문에, 명령을 내리기 위해서 규칙이 정해져 있는 프로그래밍 언어를 이용합니다.컴퓨터가 사람의 언어를 기계적으로 분석하여 컴퓨터가 이해할 수 있는 형태로 바꾸어 처리하는 것을 자연어 처리라고 합
알고리즘 개요 > 알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열입니다. 이러한 일련의 순서적 규칙들의 나열 방법에 따라 알고리즘의 종류가 달라집니다. 같은 출력값이라도 알고리즘적 순서나열에 따라 출력값에
의사코드 개요 컴퓨터 프로그램은 프로그래밍 언어로 작성됩니다. 프로그래밍 언어는 일반적으로 기계가 알아들을 수 있도록 명령을 내리기 위해 사용되는 언어입니다. 알고리즘을 표현하는 방법으로는 자연어(natural language), 의사코드(Pseudocode), 순서
선형 탐색 개요 > 선형탐색은 원하는 원소가 발견될 때까지 처음부터 마지막 자료까지 차례대로 탐색합니다. 효율성과 비효율성 선형 탐색 알고리즘은 정확하지만 아주 효율적이지 못한 방법입니다. 리스트의 길이가 n이라고 했을 때, 최악의 경우 리스트의 모든 원소를 확인
버블 정렬 개요 정렬되지 않은 리스트를 탐색하는 것보다 정렬한 뒤 탐색하는 것이 더 효율적입니다. 정렬 알고리즘 중 하나는 버블 정렬입니다. 버블 정렬은 두 개의 인접한 자료 값을 비교하면서 위치를 교환하는 방식으로 정렬하는 방법을 말합니다. 버블 정렬은 단 두 개의
선택 정렬 개요 보통 배열이 정렬되어 있으면 정렬되지 않은 배열보다 더 쉽게 탐색할 수 있습니다. 정렬을 위한 알고리즘 중 선택정렬을 배열 안의 자료 중 가장 작은 수(혹은 가장 큰 수)를 찾아 첫번째 위치(혹은 가장 마지막 위치)의 수와 교환해주는 방식의 정렬입니다
삽입 정렬 개요 자료를 정렬하는 또 다른 알고리즘 중 하나인데, 자료를 여러 번 비교하거나 교환할 필요가 없는 방법이 있습니다. 삽입 정렬은 자료가 정렬된 부분과 정렬되지 않은 부분으로 나누어집니다. 정렬되지 않은 부분의 자료가 정렬된 부분의 자리로 삽입되는 형태의
시간 복잡도 개요 시간 복잡도란 알고리즘을 수행할 때 걸리는 시간을 기준으로 효율성을 분석하는 것입니다. 시간의 효율성이란 결국 알고리즘에서 비교와 교환 등이 일어날 때 연산자의 처리 횟수가 적다는 의미이며, 연산자의 처리 횟수가 적다는 건 시간의 복잡도가 낮다는 의
합병 정렬 개요 > 합병 정렬은 원소가 한 개가 될 때까지 계속해서 반으로 나누다가 다시 합쳐나가며 정렬을 하는 방식입니다. 그리고 이 과정은 재구적으로 구현됩니다. 실행 합병 정렬은 배열의 원소들이 반으로 나누어지는 과정과 정렬된 후 합쳐지는 과정으로 나누어져 있
이진 탐색 개요 주어진 배열을 탐색하는데 사용할 수 있는 다양한 알고리즘이 있습니다. 만약 찾고자 하는 원소가 배열의 끝에 있다고 가정해봅니다. 선형 알고리즘을 사용하면 찾고자 하는 원소를 찾기 위해 배열 전체를 탐색해야 합니다. 선형 탐색보다 더 빠른 알고리즘으로
인터넷 기초 개요 인터넷이 동작할 수 있도록 많은 다양한 시스템들과 프로토콜(Protocol, 통신 규칙)들이 갖추어져 있고, 모든 인터넷 요소들이 더불어 동작해야 사람들이 인터넷을 효과적으로 사용할 수 있습니다. IP 주소 인터넷상에 있는 장치들은 IP주소 (In
IP 주소 개요 인터넷 프로토콜은 인터넷의 정보들이 어떻게 전송되는지를 정의하기 위한 규칙들입니다. 프로토콜이란, 규칙들의 집합을 말합니다. 인터넷 프로토콜 중 일부는 인터넷 상에 있는 각 장치에 대해 IP 주소를 할당해주는 것과 관련 있습니다. IP 주소는 인터넷
도메인 이름 시스템(Domain Name System) 혹은 DNS는 구글 크롬이나 인터넷 익스플로러 같은 웹 브라우저 주소창에 텍스트를 IP 주소로 변환해줍니다.동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol) 혹은 DHCP
인터넷은 한 장치에서 다른 장치로 정보를 보낼 수 있게 합니다. 그리고 인터넷에서 데이터를 쉽게 전송하도록 돕기 위해서 라우터가 사용됩니다. 라우터는 인터넷의 구성 요소로, 데이터를 다양한 네트워크로 보내줍니다. 라우터는 보낸 데이터가 올바른 목적지에 잘 도착할 수 있
컴퓨터들이 인터넷을 통해 통신하기 위해서는 통신을 어떻게 해야 하는지, 인터넷상의 한 지점에서 다른 지점으로 어떻게 데이터가 도달하는지 알려주는 표준 집합 혹은 프로토콜이 필요합니다. 프로토콜 없이는 수신 장치가 정보를 받게끔 보장하거나 받은 정보로 무엇을 해야 할 지
HTTP 개요 HTTP(Hypertext Transfer Protocol)은 웹 브라우저가 웹 서버와 대화하기 위한 프로토콜입니다. 사용자가 웹 페이지를 방문하려 할 때, 그들의 웹 브라우저(클라이언트)는 웹 서버에 웹 페이지의 내용을 요청해야 합니다. 웹 서버는 그
신뢰 모델의 기본: 사용자가 인터넷에서 소프트웨어를 다운로드할 때, 그 소프트웨어에 악성 코드가 없다는 커다란 신뢰가 필요합니다.위와 같은 코드에서는 사용자 이름과 비밀번호를 확인하여 사용자 계정 자격이 유효한지 확인하는 가상의 로그인 프로그램을 코드로 구현했습니다.
사이버 공격: 해커가 악의적인 목적으로 컴퓨터 시스템과 네트워크를 대상으로 공격을 시도하는 것입니다.사이버 보안: 시스템과 관련 있는데 웹사이트와 사용자가 사이버 위협에 스스로 더 잘 대처할 수 있도록 하는 것을 말합니다.피싱 공격: 해커가 사용자에게 일반적인 회사를
HTML(Hyper Text Markup Language)은 웹페이지의 내용을 나타내는 언어입니다. 반복문이나 조건문 등을 포함하는 프로그래밍 언어는 아니지만, 웹 페이지의 내용을 어떻게 구성할지 결정할 수 있습니다. 사용자가 웹페이지를 요청하면 웹서버는 페이지의 내용
HTML이 웹페이지의 구조를 표현하기 위한 언어인 반면, CSS(Cascading Style Sheets)는 웹 페이지를 디자인하기 위해 인터넷에서 사용되는 언어입니다.CSS는 HTML의 요소 태그 안에 style속성으로 사용할 수 있습니다. CSS는 속성과 값이 한
웹 페이지에게 어떠한 기능을 주기 위해서 해석형 언어인 PHP를 사용합니다. 해석형 언어는 컴파일되지 않고 한 줄씩 인터프리터에 의해 실행됩니다. 인터프리터는 각 줄을 읽어서 그것이 의미하는 바를 실행하는 프로그램입니다.PHP언어의 기본 문법을 C언어와 비교하여 살펴봅
SQL(Structured Query Language)는 데이터베이스에서 사용하는 언어입니다. 데이터를 추가하거나 삭제하고 필요에 따라 조회할 수도 있습니다. 데이터를 저장하는 방법으로 C의 파일입출력을 알아보았지만 조금 더 많은 양의 데이터를 체계적이고 빠르게 찾아보
PHP를 이용하면 역동적인 웹사이트를 만들 수 있습니다. PHP는 웹 서버 측의 프로그램을 만드는 데에 사용되는데, 웹 브라우저와 같은 클라이언트에서 사용되는 자바스크립트(JavaScript)를 알면 더 많은 것들을 할 수 있습니다. 자바스크립트는 사용자가 입력한 데이