[컴퓨터 공학 개론] #7 - 알고리즘
·
💻 Computer Science/컴퓨터 공학 개론
자료구조와 밀접한 관련이 있는 "알고리즘" 은 문제를 해결하기 위한 일련의 절차를 뜻합니다. 즉, 어떤 작업을 수행하기 위해 명령어를 입력받아 결과를 출력해 내는 과정입니다. 알고리즘을 제대로 익혀야 더 효율적인 프로그램을 작성할 수 있습니다. 알고리즘을 공부할 때, 이론적인 부분도 중요하나 실제 문제들 (백준, 프로그래머스…)에서 실제로 공부하며 익히는 것이 너무나 중요합니다. 이 포스팅은 컴퓨터 공학 개론 포스팅이기에 현재 포스팅에서 다루는 정렬 알고리즘이나, 검색 알고리즘은 간단히 개념만 살펴보고 넘어가고 추후에 알고리즘 포스팅에서 더 자세하게 다뤄보겠습니다!! 01. 알고리즘 개요 1) 알고리즘 표현 방법 알고리즘은 “어떤 문제를 해결하기 위한” 일련의 절차를 공식화한 형태로 표현한 것입니다. 이..
[컴퓨터 공학 개론] #6 - 자료구조
·
💻 Computer Science/컴퓨터 공학 개론
컴퓨터에서 "자료(Data)" 란 프로그램으로 처리하고자 하는 데이터를 뜻합니다. 대부분의 프로그램은 자료를 처리하여 유용한 정보로 출력하는데, 이때 데이터가 어떤 구조로 표현되느냐에 따라 프로그램의 성능이 결정됩니다. 이것이 "자료구조"가 필요한 이유입니다. 01. 자료구조 개요 1) 자료구조 개념 "자료구조"란 데이터의 구조적 특징이 잘 살도록 체계적으로 데이터를 저장하고 사용하는 방법을 의미합니다. 프로그램이 쉽게 이용하도록 구성된 데이터 간의 논리적인 관계입니다. 프로그램이 다루는 데이터의 대부분은 어떠한 구조적인 관계를 맺고 있습니다. 즉, 데이터마다 특정한 방법으로 저장되거나 사용된다는 것입니다. 2) 자료구조 분류 자료구조는 "단순 구조", "선형 구조", "비선형 구조"로 분류됩니다. (1..
[컴퓨터 공학 개론] #5 - 프로그래밍 언어
·
💻 Computer Science/컴퓨터 공학 개론
01. 프로그래밍 언어 개요 컴퓨터를 이용해 문제를 해결할 때는 컴퓨터에 명령을 내려야 하는데, 이 명령어들의 집합이 프로그램이며, 프로그램을 작성하는 과정을 프로그래밍이라고 합니다. 이러한 과정은 컴퓨터가 이해할 수 있는 언어로 실행 프로그램을 만드는 것입니다. 이때 컴퓨터가 이해할 수 있는 언어를 "프로그래밍 언어"라고 합니다. 1) 저급 언어와 고급 언어 (1) 저급 언어 저급 언어, Low Level Language는 하드웨어 지향의 컴퓨터 내부 표현에 가까운 언어로, "기계어"와 "어셈블리어"로 구분됩니다. 기계어는 2진수 형태의 0과 1로 작성하며 컴퓨터가 직접 이해할 수 있는 언어입니다. 어셈블리어는 기계어 명령을 간단한 기호로 표현한 언어이며 기계어보다 사용하기 약간 편합니다. 그러나 두 ..
[컴퓨터 공학 개론] #4 - 소프트웨어와 운영체제
·
💻 Computer Science/컴퓨터 공학 개론
01. 소프트웨어 이해 소프트웨어는 하드웨어와 함께 컴퓨터를 구성하는 주요 요소 중 하나입니다. 컴퓨터 내 일 처리 순서와 방법을 지시하는 명령어의 집합인 프로그램과 프로그램 수행에 필요한 절차, 규칙, 관련 문서 등을 총칭하는 용어입니다. 소프트웨어는 크게 "시스템 소프트웨어"와 "응용 소프트웨어"로 나뉘며, 그 외에 "펌웨어"와 "미들웨어"가 있습니다. 펌웨어: 하드웨어를 제어하는 역할을 하는 작은 규모의 소프트웨어 미들웨어: 시스템 소프트웨어와 응용 소프트웨어 사이, 다른 종류의 응용 프로그램 사이에서 중개 역할을 하는 프로그램 1) 시스템 소프트웨어 시스템 소프트웨어는 컴퓨터를 관리하기 위한 소프트웨어입니다. 컴퓨터 사용에 꼭 필요한 프로그램들을 의미합니다. 일반적으로 운영체제와 시스템을 관리하는..
[컴퓨터 공학 개론] #3 - 컴퓨터 구조
·
💻 Computer Science/컴퓨터 공학 개론
컴퓨터 시스템은 하드웨어와 소프트웨어로 구성되어 있습니다. "컴퓨터 구조"는 하드웨어를 구성하는 각 장치의 특성과 동작 원리를 다루는 학문입니다. 하드웨어와 관련된 여러 장치와 개념을 알아보겠습니다. 01. 하드웨어 구성 하드웨어는 "중앙처리장치", "기억장치", "입출력장치"로 구성되어 있으며, 각 장치는 "시스템 버스(System Bus)"로 연결되어 있습니다. 컴퓨터는 데이터를 입력받아 저장한 상태에서 이를 처리한 후 출력하는 일을 합니다. 1) 시스템 버스 시스템 버스는 컴퓨터에 있는 중앙처리장치, 주기억장치, 입력장치, 출력장치 간 데이터를 서로 주고 받기 위해 사용되는 경로입니다. 시스템 버스는 데이터가 이동하는 길인 만큼 선의 폭이 넓을수록 한 번에 전송할 수 있는 데이터 양도 많아집니다. ..
[컴퓨터 공학 개론] #2 - 데이터 표현과 논리회로 (2)
·
💻 Computer Science/컴퓨터 공학 개론
01. 논리회로의 개념 논리회로는 디지털 회로를 구성하는 가장 기본적인 요소로 논리합(OR), 논리곱(AND), 부정(NOT), 부정논리곱(NAND), 부정논리곱(NOR) 등의 논리연산(Bool Algebra)을 수행하는 회로이다. 논리회로의 동작이나 기능을 기술하는 방식은 논리식, 논리도, 진리표 3가지가 있는데, 표현 방식을 알면 동작 원리를 쉽게 파악할 수 있다. 논리식: 논리연산자(AND, OR, NOT)으로 구성된 식이다. 논리도: 논리식을 그림으로 표현해 시각적으로 구성된 식이다. 진리표: 논리회로에 입력 가능한 모든 경우의 수에 대응하는 츨력값을 정의한 표이다. 게이트의 입력과 출력의 상관관계를 나타낸다. 1) 논리 연산자 논리회로에서 '논리'란 참 또는 거짓을 다룬다는 의미이다. 컴퓨터는 ..
[컴퓨터 공학 개론] #2 - 데이터 표현과 논리회로 (1)
·
💻 Computer Science/컴퓨터 공학 개론
01. 진법 체계 진법은 사용할 수 있는 숫자의 개수와 각 숫자의 위치 값을 정의한 수의 체계이다. 이때, 사용할 수 있는 숫자의 개수는 "0부터 해당 진법의 수보다 1 적은 수'이다. 우리가 주로 사용하는 진법은 10진법이지만 2진법, 8진법, 16진법, 60진법 등 많은 진법이 사용되고 있다. 그 중 컴퓨터는 2진법을 사용한다. 컴퓨터가 표현하는 체계를 이해하기 위해 다양한 진법들에 대해서 알아보자. 1) 10진법(Decimal Notation) 10진법: 0부터 9까지 10개의 숫자를 한 묶음으로 해서 1자리씩 위로 올리는 방법 $$ \begin{align} 432_{10} &= 4 \times 10^2 + 3 \times 10^1 + 2 \times 10^0 \\&= 4 \times 100 + 3..
loading