본문 바로가기

Computer_Science/History & Issue

컴퓨터와 프로그래밍의 이해

컴퓨터란?

  • 입력 받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 전자장치.
  • 입력장치(I/O) / 정해진 규칙(Program)/ 처리(CPU)/ 저장(Memory) / 출력(I/O)

소프트웨어(Software)

  • 하드웨어가 어떻게 동작해야 하는지 규정해놓은 명령어의 집합
  • 시스템 소프트웨어/응용 소프트웨어
    • 시스템 소프트웨어 (System Software)
      : 응용 소프트웨어를 실행하기 위한 일종의 플랫폼 역할을 수행하며, 하드웨어와 직접적으로 소통하며 하드웨어 장치들이 제대로 동작할 수 있도록 해줍니다. ex) 운영체제, 런타임 환경(Node.js,JRE), 드라이버(키보드,마우스,USB)
    • 응용 소프트웨어 (Application Software)
      : 소프트웨어에서 시스템 소프트웨어를 제외한 모든 소프트웨어를 의미합니다. 줄여서 애플리케이션 및 앱이라고도 하며, 일반적으로 프로그램이라고도 불립니다. 종류는 사무용, 교육용, 멀티미디어, 통신용, 게임 등 매우 다양합니다.

하드웨어(Hardware)

  • 컴퓨터를 구성하는 기계적 장치들의 집합
  • 중앙처리 장치 (Central Processing Unit, CPU)
    • 프로그램의 실행과 데이터 처리를 담당하는 컴퓨터의 핵심장치
    • 제어장치, 연산장치, 레지스터로 구성
         -   제어장치: CPU의 모든 동작과 데이터 흐름을 통제하고 관리함., 운영체제와 소통하며 컴퓨터 자원 관리
         -   연산장치: 프로그램의 명령어 수행, 코드 실행
         -   레지스터: CPU내부의 빠른 메모리. 연산에 필요한 데이터를 임시 보관
  • 기억장치 (Memory Device)
    • CPU 동작에 필요한 데이터들을 장기/단기적으로 보관. (장기저장-보조기억장치, 단기저장-주기억장치)
    • 보조기억장치
          -   데이터를 반영구적으로 저장,
         -   용량이 크지만, 속도가 느림 --> CPU와 직접 소통X
         -   ex) HDD, SSD
    • 주기억장치
         -   프로그램을 수행하는 동안 모든 데이터를 저장
         -   용량이 작지만, 속도가 빠름 --> CPU와 직접 소통
         -   ex) RAM(Random Access Memory), ROM(Read Only Memory)
    • 캐시 메모리 (Cache Memory)
         -   레지스터보다 느리지만 주기억장치보다 빠른 메모리.
         -   주기억장치로부터 재사용 가능성이 높은 데이터를 미리 불러와서 캐시 메모리에 대기시켜 놓음.
    • 메모리 계층구조
         -   보조기억장치 >> 주기억장치 >> 캐시 >> CPU Register
  • 입출력장치 (I/O Device)
  • 시스템 버스 (System Bus)
    • 하드웨어 장치간의 통로
    • 데이터 버스 : 하드웨어 간에 데이터를 전달
    • 주소버스: 데이터가 어디에 도착해야 하는지에 대한 정보(주소) 전달
    • 제어버스: CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달하는 통로

프로그래밍

  • 프로그램을 만드는 과정으로서, 특정 목적을 달성하기 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 코드로 작성하는 과정
  • 프로그램: 명렁어의 집합
  • 컴파일: 소스코드 -> 기계어 코드로 변환하는 과정
  • 빌드: 소스코드를 실행할 수 있는 산출물(프로그램)로 변환시키는 과정
반응형