관리 메뉴

제뉴어리의 모든것

[Section1][Development] 기초 - 1. 컴퓨터 프로그래밍의 이해 본문

코드스테이츠/정리 블로깅

[Section1][Development] 기초 - 1. 컴퓨터 프로그래밍의 이해

제뉴어리맨 2022. 6. 24. 15:23

1. 컴퓨터 프로그래밍의 이해

1-1. 컴퓨터의 이해

 

- 컴퓨터란?

입력받은 데이터를 정해진 규칙으로 처리하여 저장하고 출력하는 기기.

 

- 컴퓨터는 어떻게 위에 내용을 수행하는가?

 

-> 입력받은 :

입력장치로 사용자에게 데이터를 입력받는다. (키보드 등등..)

 

-> 데이터를 정해진 규칙으로 :

프로그램상의 로직으로 

 

-> 처리하여 :

cpu와 같은 처리장치로

 

-> 저장하고 :

기억장치에 처리된 결과를 저장함 (HDD, RAM 등등..)

 

-> 출력함

출력장치로 처리된 결과를 사용자에게 보여줌 (컴퓨터 화면, 스피커 등등..)

 

- 컴퓨터 구성요소

  • 소프트웨어 (SW)

소프트웨어는 크게 시스템소프트웨어응용소프트웨어로 나뉜다.

 

- 시스템 소프트웨어

1. 컴퓨터를 근본적으로 구동할 수 있게 해주는 소프트웨어로 하드웨어와 소통하여 작동을 제어한다.

2. 응용 소프트웨어의 작동을 가능하게 해주는 플랫폼 역할을 한다.

 

- 응용 소프트웨어

1. 시스템 소프트웨어 제외한 모든 소프트웨어를 말한다. (게임, 문서작성 프로그램 등등..)

 

 

  • 하드웨어 (HW)

컴퓨터를 구성하는 모든 물리적인 요소. 

cpu, 기억장치, 입출력장치 등등..

대표적인 하드웨어로는 아래와 같다.

 

 

 

  1.  CPU (프로세서)
    컴퓨터에서 실질적으로 데이터를 처리하는 장치이다.
    • 제어장치 : cpu의 모든 동작을 제어하고 통제함. 
    • 연산장치 : 프로그램의 명령어를 실행 (실제 처리가 이루어지는 부분.)
    • 레지스터 : 처리에 필요한 데이터들을 임시로 저장하는 기억장치로 작지만 빠른 성능을 가지고 있음.


  2. 기억장치
    컴퓨터에서 사용되는 데이터들을 장기적, 단기적 저장하는 장치이며 보조기억장치는 장기적이고 주기억장치는 단기적이다.
    • 주기억장치 :  컴퓨터에서 처리중인 데이터를 가져와 저장하는 곳으로 임시적이다. 용량은 작지만 빠르다. 그래서 cpu만큼은 아니지만 어느정도 비슷하기에 cpu와 직접 소통한다. (RAM, ROM 등등..)
    • 보조기억장치 : 컴퓨터에 필요한 모든 데이터를 저장하는 곳으로 반영구적이다. 용량은 크지만 속도는 느리다. (SSD, HDD)
  3. 캐시메모리
    • 주기억장치가 빠르다고는 하지만 CPU만큼은 빠르지 않기에 처리에 지연이 생길 수 있다 그러므로 처리를 빠르게 하기 위하여 CPU가 한번 사용한 데이터중 재사용 가능성이 큰 데이터들을 미리 불러와 대기 시켜 놓는 기억장치이다.
  4. 입력장치
    • 사용자로부터 데이터를 입력받는 장치
  5. 출력장치
    • 사용자가 입력하여 처리되고 저장된 데이터가 출력되는 장치
  6. 시스템버스
    • 하드웨어간에 소통할 수 있게 해주는 통로 (물리적 전선)
      • 데이터 버스
        • 하드웨어 간에 데이터를 전달하는 통로
      • 주소 버스
        • 데이터가 어디에 도착해야 하는지에 대한 정보를 전달하는 통로
      • 제어 버스
        • CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달하는 통로

- 컴퓨터의 동작

  • 계산기 프로그램을 실행 했을 경우 보조기억장치에 있는 계산기 프로그램이 주기억장치로 올라가고(로딩) 수식을 넣는 칸에 1 + 1을 입력한다 그리고 계산버튼을 누르면 CPU에서 계산기 프로그램의 코드를 읽어 입력된 수식을 계산하여 주기억 장치에 저장하고 우리에게 결과를 출력해준다.

 

1-2. 프로그래밍의 이해

- 프로그래밍

특정한 목적을 달성하기 위해 프로그래밍 언어로 논리적으로 코드를 작성하는것.

 

- 프로그램

특정한 목적을 위해 작성된 논리적 코드들의 집합체

 

 

- 프로그래밍 언어

사람이 컴퓨터(기계)에게 명령을 하기 위해 작성하는 언어.

 

- 컴파일

사람이 작성한 프로그래밍 언어를 기계어만을 이해하는 컴퓨터에 이해시키기 위해

프로그래밍 언어를 기계어로써 변환하는 과정. 

- 빌드

작성된 코드를 결과물(실행을 위한 파일 혹은 디렉토리)로써 산출하는 것.

컴파일은 그러한 과정속에 한 부분이다.

 

- 통합개발환경 (Integrated Development Environment, IDE)

앞서서 말한 코드작성, 컴파일, 빌드와 같이 프로그래밍에 필요한 모든것을 제공해주는 프로그램.