백엔드 개발자 공부/웹 개발

[웹 개발] 컴퓨터와 프로그래밍의 이해

gotoguy 2022. 8. 22. 22:38
728x90

컴퓨터의 이해

    컴퓨터란? - 입력 받은 데이터정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 전자 장치

        입력 받은 데이터 : 사람으로부터 입력 장치를 통해

        정해진 규칙대로 : 프로그램(소프트웨어 및 애플리케이션) -> 소프트웨어

        처리해서 : 중앙처리장치를 통한 연산

        처리 결과를 저장 : 기억장치

        출력하는 전자 장치 : 출력장치를 통해 사람이 감각할 수 있는 형태로 전달

            * 프로그램을 제외한 장치는 하드웨어


소프트웨어

    - 시스템 소프트웨어 : 응용 소프트웨어를 실행하기 위한 플랫폼. 하드웨어와 직접적으로 소통 (운영체제, 런타임 환경, 하드웨어 드라이버)

    - 응용 소프트웨어 : 시스템 소프트웨어를 제외한 모든 소프트웨어. 애플리케이션, 앱, 프로그램이라고도 부름

 

하드웨어

    - 중앙처리장치(CPU,프로세서) : 프로그램의 실행과 데이터 처리

        제어장치 - 모든 동작과 데이터 흐름을 통제하고 관리, 운영체제와 소통

        연산장치 - 프로그램의 명령어 수행, 코드 실행

        레지스터 - 기억장치, 연산장치 동작에 필요한 데이터들을 임시적으로 보관

    - 기억장치(저장장치) : CPU 동작에 필요한 데이터들을 장기적/단기적으로 보관

        보조기억장치 - 반영구적으로 저장. 큰 용량/느린 속도. (e.g. SSD, HDD)

        주기억장치 - 프로그램 수행에 필요한 모든 데이터 저장. 적은 용량/빠른 속도. CPU와 직접적으로 소통. (e.g. RAM, ROM)

        캐시 메모리 : CPU가 사용한 데이터와 관련된 데이터 중, 재사용 가능성이 높은 데이터를 주기억장치로부터 불러와서 대기시켜놓음

    - 입력장치 : 사용자로부터 데이터를 입력받는 장치 (e.g. 키보드, 마우스, 마이크, 트랙패드)

    - 출력장치 : 사용자에게 감각할 수 있는 형태로 출력해주는 장치 (e.g. 모니터, 스피커, 프린터)

    - 시스템 버스 : 하드웨어 장치 간의 통로

        데이터 버스 - 하드웨어 간 데이터 전달 통로

        주소 버스 - 데이터 도착 정보 전달 통로

        제어 버스 - CPU 제어장치의 신호 전달 통로

 

컴퓨터의 동작

    - 로딩(Loading) : CPU가 작업할 수 있도록 보조기억장치에서 주기억장치로 프로그램 파일을 옮겨오는 과정

    - 프로세스 : 메모리에 로드되어 실행 중인 프로그램


프로그래밍의 이해

    프로그래밍이란? - 프로그램을 만드는 과정으로서, 특정 목적을 달성하기 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 코드로 작성하는 과정

        프로그램 - 프로그래밍의 결과로 만들어진 것. 어떠한 목적을 달성하기 위한 컴퓨터 명령문의 집합체

        프로그래밍 언어 - 컴퓨터의 언어(기계어)와 사람의 언어를 매개해주는 언어. 컴퓨터에 가까울수록 저수준 언어, 사람에 가까울수록 고수준 언어(e.g. Java, C언어)

        컴파일 - 프로그래밍 언어로 작성된 소스 코드를 기계어 코드로 번역하는 과정. 빌드 과정의 일부

        빌드 - 작성한 소스 코드를 실행할 수 있는 산출물로 변환시키는 과정. 컴파일을 통해 번역한 소스 코드를 실행 파일(.exe 또는 .msi 확장자)로 만들어 실행할 수 있는 프로그램으로 완성시키는 과정

        통합개발환경(IDE) - 코드를 작성할 때 사용하는 프로그램. 코드 작성/편집, 디버깅, 빌드 등 하나의 IDE 안에서 가능. (e.g. Visual Studio Code, IntelliJ, Eclipse)

728x90