컴퓨터 사이언스 지식

신동윤·2023년 3월 7일
0

https://www.youtube.com/watch?v=yOOJi6eo0WQ&list=PLOr0j3JTShuEVpnryMFCDzwLAchenbQY6&index=1

컴퓨터의 문제처리 과정

사용자로부터 정보를 획득 저장 -> 처리 -> 출력

기억장치
RAM
HDD 보조기억장치 전원이 꺼져도 남아있음
SSD

처리장치
CPU 연산과 제어
GPU 그래픽 작업에 특화

출력장치
모니터
스피커
프린터

컴퓨터 시스템

하드웨어 -쉽게 변형할 수 없는 물리적 구성요소
모니터 키보드 본체 마우스 ...
RAM 하드디스크 CPU ...

소프트웨어 -쉽게 변형하거나 지울수있는 구성요소
하드웨어에게 명령을 내리는 것

시스템 소프트웨어 -하드웨어 동작시키는 프로그램
윈도우, 맥 ...
안드로이드 OS, 아이폰 ioS
디바이스 드라이브(마우스, 키보드 동작 관련)

응용 소프트웨어 -사용자가 원하는 기능을 함
문서편집 툴, 크롬 ...
각종 앱

프로그래밍 소프트웨어 -

하드웨어

전원공급장치 (PSU)
마더보드 (메인보드) 주요부품 장착,전원 할당, 통신, 흐름 제어
CPU (프로세서) 제어와 연산, 컴퓨터의 뇌, 아주 적은양의 데이터를 가질 수 있음
RAM (메모리) 속도 빠름, 용량 작음 / 작은 박스 => 없으면 창고에서 들고옴
HDD (하드디스크) 속도 느림, 용량 큼 / 거대한 창고
그래픽카드 (...GPU) 주요 기능은 GPU에서 처리(모니터에 그려줌) / 많은 양의 단순 연산 / 딥러닝(많은 단순 사칙연산)

CPU 연산 제어 => 데이터는 RAM 주기억장치에서 가져옴 => 하드디스크와 같은 보조기억장치에서 복사하거나, 입력장치로 부터 받아옴 => CPU에서 처리한 정보가 그래픽카드를 거침 => 출력장치에 전달됨

소프트웨어

작업의 순서대로 명령어들을 모아 놓은, 즉 명령어의 집합체
명령어= 코드, 코드작성= 코딩, 코딩하는사람= 프로그래머
앱= 애플리케이션 소프트웨어, 응용 소프트웨어
새로운 소프트웨어를 만들기 위해 프로그래밍 소프트웨어 특정한 목적을 가진 명령어 집합을 설계하기 위해 인간이 이해할수있는 언어를 사용하여 만듬, 여기서 쓰는 언어가 프로그래밍 언어, 이것을 기계어로 번역되어야 하드웨어가 이해할 수 있음, 그 번역기가 프로그래밍 소프트웨어에 들어있음.

소프트웨어 개발 단계
요구 사항 분석 (사용자가 원하는 목적, 기능) ->
설계 (프로그램 절차 및 사용자 인터페이스) ->
구현 (목적에 맞는 프로그래밍 언어 선택, 명확성, 간결성, 모호성 제거) ->
테스팅 (결함, 시스템 테스트) ->
배포 (릴리즈) ->
유지보수(사용자 피드백)

데이터 형태와 처리

input -> output

데이터 종류
문자, 숫자, 이미지, 비디오(이미지 여러장), 사운드, ... 컴퓨터에 0,1의 나열로 저장

트랜지스터 - 스위치를 끄거나 켜는 역할
0과 1의 나열로 나누어 저장, n개의 트랜지스터는 2^n개의 신호만 가능
오류의 최소화, 비용과 시간면에서 한개의 트랜지스터는 2개만 가능하게 함
2진법 bit(Binary Digit)

알고리즘

순서대로 문제를 해결하기 위한 지시절차의 모음

표현방식 - 순서도(flowChart), 수도코드(psedoCode)
지시사항을 도표로 표현한 것, 코드 작성에서 길을 잃지 않게 해줌

시퀀스(sequence) 치약바르기 -> 칫솔질하기 -> 행구기 / 수행 순서 중요
셀렉션(selection) 로그인 -> 비밀번호 입력 -> 비밀 번호 일치에 따라 절차 수행
루프(iteration) 치약바르기 -> 칫솔질하기 -> 3분이 지났는지 -> 칫솔질 or 행구기

0개의 댓글