Computer Science

가오리·2022년 11월 6일
0

let me borrow your CS

목록 보기
7/25
post-thumbnail

CS: Computer Science

컴퓨터가 무엇을 할 수 있는지에 대해 연구하는 분야로 3가지로 구분할 수 있다
TCS(이론 컴퓨터 과학)과 CE(컴퓨터 엔지니어링), applications(응용 프로그램)이 있다


TCS: Theoretical Computer Science, 이론 컴퓨터 과학

TCS는 이론적인 컴퓨터 과학의 주요 분야를 말하는데 계산 이론, 람다 미적분학 등 컴퓨터 과학의 수학적 측면에 중점을 둔 일반 컴퓨터 과학 및 수학을 말한다

튜링 머신: Turing Machine
‘모든 컴퓨터들은 충분한 시간과 메모리만 주어진다면 정확히 똑같은 것들을 계산한다’
그러니까 성능이나 속도에서 차이를 보이는 것 뿐 어쨌든 계산이 가능하다
튜닝 머신은 ‘어떠한 연산이든 수행 가능한 장치의 수학적 모델’을 의미하고 긴 테이프에 쓰여있는 여러 가지 기호들을 일정한 규칙에 따라 바꾸는 기계를 말한다.
엘런 튜링이 제안한 머신이자 현대 컴퓨터의 초안이다
더 알아보기

하드웨어: Hardware
컴퓨터의 모든 물리적 부품을 말한다. 입력, 연산, 제어, 기억, 출력 기능이 있고 이런 기능을 위해 컴퓨터는 여러 가지 부품을 가지고 있다
컴퓨터의 하드웨어는 크게 중앙 처리 장치, 기억장치, 입출력 장치로 구분한다

계산 가능성 이론: Computability Theory
어떤 문제를 알고리즘이나 튜링 머신으로 해결할 수 있는가를 다룬다
계산 가능성 이론의 주요 의문 4가지가 있다

어떤 문제를 튜링 머신이 해결할 수 있는가?
어떤 다른 시스템이 튜링 머신과 동등한가?
어떤 문제들이 더 강력한 기계들을 필요로 하는가?1z
어떤 문제들이 덜 강력한 기계로 풀 수 있는가?

계산 복잡도 이론: computational Complexity
계산 문제를 푸는 알고리즘을 복잡도에 따라 분류하여 문제의 모임을 구성하는 방법을 연구한다. 이 때 알고리즘의 수행은 실제 컴퓨터가 할 수 있지만 평가하는 데에는 튜링 기계와 관련이 있는 정량화된 방법을 사용한다
시간 복잡도는 얼마나 빠르게 실행되는가, 공간 복잡도는 얼마나 많은 자원이 필요한가를 나타낸다
더 알아보기

알고리즘: Algorithms
어떤 일을 해결하려는 방법과 절차, 즉 어떤 문제를 해결하기 위해 단계적인 절차나 방법을 공식화한 형태로 표현한 것을 말한다

정보 보안: Information Theory

디지털 정보의 수량화, 저장 및 통신에 대한 과학적 연구이다. 핵심 척도는 엔트로피, 엔트로피는 랜덤 변수의 값이나 랜덤 프로세스의 결과와 관련된 불확실성의 양을 수량화한다.

암호화: Cryptography

수학적 과정을 통해 어떤 정보를 의미없는 문자의 나열로 바꾸는 것을 말한다.
전송, 수신, 저장하는 정보를 해독할 수 없도록 정보를 비밀코드로 변환하는 기술적 프로세스이다. 기본적으로 암호화는 데이터로의 무단 액세스를 방지하는 방법이다.
더 알아보기



CE: Computer Engineering, 컴퓨터 엔지니어링

전자공학을 기반으로 컴퓨터와 관련된 전자공학에 컴퓨터 과학을 접목한 것

스케줄러: Scheduler
한정적인 메모리를 프로세스가 효율적으로 사용할 수 있도록 작업을 할당시켜주는 역할을 한다
1. Jop Queue: 모든 프로세스들이 들어있다
2. Ready Queue: ready 상태인 프로세스들이 들어있다
3. Device Queue: I/O 장치 사용을 대기하는 프로세스들이 들어있다

멀티 프로세싱: Multiprocessing
하나의 프로세서가 아닌 여러 개의 프로세서가 서로 협력적으로 일을 처리하는 것
많은 양의 작업을 빠른 시간에 처리하기 위해서는 단일 프로세서가 처리하는 것보다 멀티 프로세서로 처리하는 것이 더 빠르다

  • SMP: Symmetric Multi-Processing, 대칭형 멀티 프로세싱
  • AMP: Asymmetric Multi-Processing, 비대칭형 멀티 프로세싱

컴퓨터 아키텍처: Computer Architecture
일련의 소프트웨어 및 하드웨어 기술 표준이 상호 작용하여 컴퓨터 시스템 또는 플랫폼을 형성하는 방법을 자세히 설명하는 사양을 말하는데 쉽게 말해서 컴퓨터 시스템의 설계 방법과 호환되는 기술을 말한다

소프트웨어와 프로그래밍 언어: Software and Programming Languages
소프트웨어는 컴퓨터에게 동작 방법을 지시하는 명령어 집합의 모음이다.

  • 시스템 소프트웨어: 컴퓨터를 효율적으로 운영하여 제어하기 위한 프로그램
  • 응용 소프트웨어: 특정 분야의 업무를 처리하기 위해 또는 특수한 문제해결을 위해 만들어지는 프로그램

프로그래밍 언어는 프로그램을 정의하는 데에 사용되는 언어이다. 여기서 프로그램은 문제 해결을 위해 작성된 명렁어들을 말한다. 컴퓨터가 이해할 수 있는 언어로 명령어를 작성하면 되는데 이 언어가 프로그래밍 언어이다.

컴파일러: Compiler
인간이 이해할 수 있는 언어로 작성된 소스코드를 CPU가 이해할 수 있는 언어로 변환하는 작업을 하는 프로그램

운영체제: Operating System
컴퓨터 시스템의 자원들을 효율적으로 관리하며 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임

네트워크: Network
컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미한다. 쉽게 말하자면 2대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것을 말한다.

데이터 관리: Data Management
데이터를 수집하고 저장하고 사용하는 프로세스를 말한다. 보유 중인 데이터 종류, 데이터 위치, 데이터 소유자, 데이터 확인 권한을 가진 사용자, 액세스 방법 등을 데이터 관리를 통해 파악할 수 있다

컴퓨터 그래픽스: Computer Graphics
인간의 창의력과 구상력을 바탕으로 컴퓨터와 각종 소프트웨어 그리고 주변기기를 이용하여 인간의 손으로 표현하기 힘든 색, 명암, 조형, 애니메이션, 영상 등과 같은 시각적 결과물을 생성, 조작, 출력할 수 있도록 하는데 관련된 모든 기술을 말한다.



Applications: 응용 프로그램

넓은 의미로 운영체제에서 실행되는 모든 소프트웨어를, 좁은 의미로 운영체제 위에서 사용자가 직접 사용하는 소프트웨어를 말한다

최적화: Optimisation
정보공학에서 시스템을 수정하여 어떠한 면의 작업을 더 효과적으로, 또는 자원을 덜 사용하도록 만드는 작업
컴퓨터 프로그램은 더 빠르게 실행되거나 기억장치 또는 자원을 덜 사용하게 하여 운영하도록 개선하고 유지보수의 편의성을 고려한 코드를 개선하거나 안전서 확보를 위한 최적화를 한다

충족 가능성 문제: satisfiability problem
여러 개의 boolean 변수들로 이루어진 식이 있을 때 각 변수에 값을 할당하여 식을 참으로 만드는 조합을 찾거나 그러한 조합이 없음을 찾는 문제이다

인공지능: Artificial Intelligence
동적 컴퓨팅 환경에 내장된 알고리즘을 생성하고 적용하여 인간의 지능을 모방하는 기초 지식을 말한다. 간단히 말해서 인간처럼 사고하고 행동하는 컴퓨터를 만드는 것을 말한다.

머신러닝: Machine Learning
인공지능에 속한 분야로 데이터를 통해 기계가 스스로 학습하게 하는 방법을 의미한다

  • 지도학습: 정답/오답을 알려주며 학습시키는 지도 학습 방식
  • 비지도 학습: 정답/오답이라는 답이 없는 데이터들을 자동으로 수집하여 규칙을 스스로 발견하게 하는 학습 방식
  • 강화학습: 실패와 성공의 과정을 반복하며 학습해나가는 방식

컴퓨터 비전: Computer Vision
컴퓨터가 이미지와 비디오에서 개체와 사람을 식별하고 파악할 수 있도록 지원하는 컴퓨터 과학 분야를 말한다. AI처럼 사람의 능력을 복제하는 작업을 수행하고 자동화한다

영상(화상) 처리: Image Processing
넓게는 입출력이 영상인 모든 형태의 정보 처리를 가리키며 사진이나 동영상을 처리하는 것이 대표적이다. 대부분의 영상 처리 기법은 화상을 2차원 신호로 보고 여기에 표준적인 신호 처리 기법을 적용하는 방법을 쓴다.

자연어 처리: Natural Language Processing
자연어는 인간이 일상에서 사용하는 언어를 말하고 자연어 처리는 기계가 자연어를 이해하고 해석하여 처리할 수 있도록 하는 일을 말한다.

  • 텍스트 분류: 텍스트가 특정 분류, 카테고리에 속하는 것을 예측하는 기법을 통칭한다
  • 감성 분석: 텍스트에 나타나는 감정/기분 등의 주관적 요소를 분석하는 기법을 통칭한다
  • 텍스트 요약: 텍스트에서 중요한 주제츨 추출하여 요약하는 기법을 말한다

지식 표현: Knowledge Representation
인간의 지식을 컴퓨터 시스템이 사용할 수 있도록 가공 및 표현하기 위한 연구이다. 인공지능 연구에 있어서 매우 중요하며 사실과 관계성 등을 부호화하고 지식 베이스에 저장하는 방법이 사용되며 논리, 프레임, 규칙 등이 모두 지식을 표현하는 방법이다.

빅데이터: Big data
조직이 보유하고 있는 데이터의 양이 방대하고 지속적으로 증가하여 전통적인 방법으로는 분석할 수 없는 데이터를 말한다. 전통적인 정형 데이터, 비정형 데이터 또는 반정형 데이터로 구성될 수 있다.

사물 인터넷: Internet of Thing
인터넷을 통해 데이터를 다른 기기 및 시스템과 연결 및 교환할 목적으로 센서, 소프트웨어, 기타 기술을 내장한 물리적 객체(사물)의 네트워크를 의미한다. 이와 같은 물리적 객체는 평범한 가정용 전자기기부터 정교한 산업용 도구에 이르기까지 매우 광범위하다.

시뮬레이션: Simulation
물리적 또는 추상적인 시스템을 모델로 표현하고 그 모델을 사용해서 실험하는 일ㅇ르 말한다. 쉽게 말하자면 실제로 실행하기 어려운 실험을 간단히 행하는 모의 실험을 말한다.

인간과 컴퓨터 간의 상호작용: Human Computer Interaction
인간과 컴퓨터 간 상호작용에 대해 연구하는 분야를 말하고 좁은 의미로는 사용자가 컴퓨터를 쉽고 편리하게 이용할 수 있도록 환경을 개발하는 것을 말하며 넓은 의미로는 UI 환경을 개발하는 것을 넘어서 컴퓨터와 사람들 간의 상호작용 그 자체를 말한다.

로봇 공학: Robotics
컴퓨터에 물리적 실체를 부여하여 사람과 유사한 수준의 지능적인 기계를 만들기 위한 기술을 말한다.




참고 자료

컴퓨터과학 지도: 어떤 것들을 다루는가?

profile
가오리의 코딩일기

0개의 댓글