0-컴퓨터란?

2024. 11. 10. 17:33·컴퓨터 과학/프로그래밍 기초

현미경과 계산기를 갖춘 인간 컴퓨터, 1952년

 

컴퓨터란 무엇일까?

A computer is a machine that can be programmed to automatically carry out sequences of arithmetic or logical operations (computation).

출처: https://en.wikipedia.org/wiki/Computer

 

-> 위키 백과의 설명을 보면 컴퓨터는 기계인데, 자동으로 일련의 산수나 논리계산을 하도록 프로그래밍될 수 있는 기계라고한다

 

컴퓨터의 목적이 계산이라는건 알겠는데 왜 굳이 컴퓨터라는 기계를 만들 필요가 있었을까?

→ 계산을 빠르고 정확하게 하기 위해서였을 것이다. 

 

그렇다면 왜 계산을 빠르고 정확하게 해야했을까?

→ 세금 징수, 돈 문제, 군사 목적 등의 경우 계산의 범위도 크고 복잡하기 때문에 사람이 할 경우 느리기도 하고 부정확할 수 있기 때문이다.

 

계산을 빠르고 정확하게 위해서 어떤 시도들이 있었나?

→ 손가락, 나무 막대기, 주판, 태엽, 진공관, 트랜지스터, 반도체 등으로 점점 발전해왔다.

→ 결국 전기를 쓰는 것을 선택했다 (가장 빠르기 때문)

 

기계로 계산을 하기 위해서 어떤 것이 필요하지?

  • 저장(계산하라고 넣은 값이 넣자마자 사라지면 안되니까)
  • 처리(어떤 것들을 어떻게 '계산'할지에 대한 언어적 약속)
  • 입출력(계산할 값과, 계산 후 결과 값)

결국 컴퓨터는 '전기' 를 사용한다. 그렇다면 어떻게 전기를 통해서 저장과 계산을 해야하지?

익숙한 10진법을 전기를 통해서 표현한다고 생각해보자.

 

우선 전기를 '저장' 하는 부분을 먼저 생각해보자

전기를 10%만 저장하고 20%만 저장하고 30% 만 저장하는 방식으로 숫자 1, 2, 3 등을 나타낼 수 있을 것이다.

하지만 이렇게 전압을 쪼개서 숫자를 표현하고 저장하는 것은 어렵다.

전기를 보내는 도중에 전기가 새어나갈 수도 있고, 주변 환경에 따라서 영향을 크게 받을 수 있기 때문이다.

 

이렇게 사람이 자주 쓰는 10진법을 컴퓨터로 표현하기 어렵기 때문에 

간단하게 특정 전압을 넘기면 1이라고 생각하고, 특정 전압 아래라면 0이라고 생각하기로 하는 이진법이 컴퓨터에 도입되었다.

 

저장하는 부분은 정해졌다. 그렇다면 이 두 0과 1만 가지고 어떻게 복잡한 계산을 해야할까?

다행이도 참과 거짓을 0 과 1로 대입해서 계산하는 '불 대수' 가 있어서 이걸 사용하면 될 것 같다

전기를 통한 기계로 저장을 하려면?

-> 전기적 신호를 유지할 수 있도록 해야한다

→ 회로가 필요하다 (flip-flop)

->  다른 기술이 필요하다

전기를 통한 기계로 계산을 하려면?

-> 전기를 통해서 저장하기 때문에 전위차를 변경할 수 있어야한다

→ 회로가 필요하다 (and, or, xor 등 논리 게이트)

-> 다른 기술이 필요하다

 

 

요약하자면 컴퓨터는 '계산' 을 하기 위한 기계이고, 그를 위해서는 (저장, 연산, 입 출력) 의 기능을 할 수 있어야하며, 이 기능을 구현하기 위해서 우리는 '회로' 가 필요하고 다른 기술들이 필요하다는 것을 알게되었다

'컴퓨터 과학 > 프로그래밍 기초' 카테고리의 다른 글

4 - 서브루틴과 함수 (+ 컴파일러)  (0) 2025.03.27
3- 초기 프로그래밍의 변수  (0) 2024.12.17
2- 컴퓨터의 구조와 핵심  (0) 2024.12.17
1-컴퓨터의 계산(저장, 연산 그리고 제어)  (0) 2024.12.17
'컴퓨터 과학/프로그래밍 기초' 카테고리의 다른 글
  • 4 - 서브루틴과 함수 (+ 컴파일러)
  • 3- 초기 프로그래밍의 변수
  • 2- 컴퓨터의 구조와 핵심
  • 1-컴퓨터의 계산(저장, 연산 그리고 제어)
로그랩
로그랩
coding-journal-by-log 님의 블로그 입니다.
  • 로그랩
    로그의 코딩노트
    로그랩
  • 전체
    오늘
    어제
    • 분류 전체보기 (42)
      • 컴퓨터 과학 (5)
        • 프로그래밍 기초 (5)
        • 네트워크 (0)
        • 운영체제 (0)
      • 자료구조 & 알고리즘 (0)
      • 알고리즘 문제풀이 (13)
        • 백준 (13)
      • 디자인 패턴 & 아키텍처 (0)
      • 프로그래밍 언어 (2)
        • JAVA (0)
        • JvaScript (0)
        • C 언어 (2)
        • C++ (0)
      • 웹 프로그래밍 (1)
      • 백엔드 (0)
        • 스프링 (0)
        • 전자정부 프레임워크 (0)
        • Mybatis (0)
      • 프론트엔드 (0)
        • ajax (0)
        • react (0)
      • GIS 프로그래밍 (5)
        • OpenLayers (0)
        • GeoServer (1)
        • Qgis (0)
        • PostGIS (0)
        • uDIg (4)
      • 수학 (0)
      • 컴퓨터 설정 (14)
        • vim & neovim (8)
        • 개발환경 (4)
        • 윈도우 설정 (2)
        • 맥 설정 (0)
      • 일상 (1)
        • 책 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준 11382 c++
    백준 10869 c++
    VsCode Vim
    백준 18108 c++
    vim
    백준 10998 c++
    백준 10926 c++
    vim 단축키
    백준 1008 c++
    오블완
    백준 1001 c++
    solved.ac 클래스1
    함수란
    백준 a - b
    티스토리챌린지
    서브루틴이란
    백준 a + b
    솔브닥 클래스1
    백준 a * b
    백준 2557 c++
    neovim
    2025 정처기
    백준 1000 c++
    2025 정처기 실기
    솔브닥 클래스 1 올클
    백준 ??!
    백준 10430 c++
    백준 10172 c++
    백준 10869 c++
    백준 1998년생인 내가
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
로그랩
0-컴퓨터란?
상단으로

티스토리툴바