[코드스테이츠 백엔드 44기 SEB BE] 2일차-1

오태호·2023년 2월 14일
0

코드스테이츠

목록 보기
1/22
post-thumbnail

컴퓨터

  • 입력 받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 장치

컴퓨터의 구성 요소

  • 컴퓨터는 소프트웨어와 하드웨어로 구성되며 이 둘의 상호작용을 통해 동작

1. 소프트웨어

시스템 소프트웨어(System Software)

  • 응용 소프트웨어를 실행하기 위한 플랫폼 역할을 수행
  • 하드웨어와 직접 소통하며 하드웨어 장치들이 제대로 동작할 수 있도록 함
    • 응용 소프트웨어의 실행 환경임
      • Ex. 운영체제(OS) 및 런타임 환경
    • 하드웨어 장치를 관리
      • Ex. 키보드 드라이버, 마우스 드라이버 등과 같은 각종 장치 드라이버

응용 소프트웨어(Application Software)

  • 시스템 소프트웨어를 제외한 모든 소프트웨어

2. 하드웨어

중앙처리장치(Central Processing Unit, CPU)

  • 프로그램의 실행 및 데이터 처리를 담당하는 컴퓨터의 핵심 장치
  • 제어장치, 연산장치, 레지스터로 구성됨
    • 제어장치
      • CPU의 모든 동작과 데이터 흐름을 통제 및 관리
      • OS와 소통하며 컴퓨터의 자원 관리
    • 연산장치
      • 프로그램에 기술되어져 있는 명령어 수행
    • 레지스터
      • CPU 내에 존재하는 작고 빠른 기억장치
      • 연산장치의 동작에 필요한 데이터들을 임시적으로 보관하며 제공

기억장치(Memory Device)

  • CPU의 동작에 필요한 데이터들을 장기적/단기적으로 보관
  • 주기억장치
    • 컴퓨터가 프로그램을 수행하는 동안 필요한 모든 데이터들 저장
    • 큰 용량의 데이터 저장은 불가
    • 데이터를 읽고 쓰는 속도가 빠름
    • CPU는 주기억장치와 직접적으로 소통
    • Ex. RAM(Random Access Memory), ROM(Read Only Memory)
  • 보조기억장치
    • 컴퓨터에게 필요한 모든 정보를 반영구적 저장
    • 큰 용량의 데이터 저장 가능
    • 데이터를 읽고 쓰는 속도가 느림
    • CPU의 연산 속도에 비해 느리기 때문에 CPU와 직접적으로 소통하지 않음
    • Ex. SSD, HDD

캐시 메모리(Cache Memory)

  • CPU가 사용한 데이터와 관련된 데이터 중, 재사용 가능성이 높은 데이터들을 주기억장치로부터 불러와서 대기시키는 역할

입력장치(Input Device)

  • 사용자로부터 데이터를 입력받는 장치
  • Ex. 키보드, 마우스, 마이크 등

출력장치(Output Device)

  • 컴퓨터 내부로부터 사람이 감각할 수 있는 형태로 데이터를 출력하는 장치
  • Ex. 모니터, 스피커, 프린터 등

시스템 버스(System Bus)

  • 하드웨어 장치 간의 통로
  • 하드웨어 장치를 물리적으로 연결한 전선
  • 시스템 버스의 구성요소
    • 데이터 버스
      • 하드웨어 간에 데이터를 전달하는 통로
    • 주소 버스
      • 데이터가 도착해야 하는 곳에 대한 정보를 전달하는 통로
    • 제어 버스
      • CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달

컴퓨터의 동작

  1. OS가 보조기억장치에 저장되어 있던 프로그램을 RAM에 로드시킴 (로딩(Loading))
    • CPU가 작업할 수 있도록 보조기억장치에서 주기억장치로 프로그램 파일을 옮김
  2. 프로그램이 실행되어 모니터 상에 출력되어져 나타남
    • 프로세스(process) : 메모리에 로드되어 실행중인 프로그램
  3. 입력장치를 통해 데이터를 입력
  4. 처리 결과는 주기억장치에 저장되며 모니터를 통해 보여짐

프로그래밍

프로그램

  • 어떠한 목적을 달성하기 위한 컴퓨터 명령문의 집합

프로그래밍

  • 프로그램을 만드는 과정
  • 특정 목적 달성을 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 코드로 작성하는 과정

프로그래밍 언어

  • 컴퓨터는 기계어를 사용하는데, 이는 사람이 이해하기 어려움
  • 프로그래밍 언어
    • 컴퓨터의 언어와 사람의 언어를 매개해주는 언어
    • 사람이 이해할 수 있으면서 컴퓨터의 자세한 동작을 기술할 수 있도록 설계됨

컴파일

  • 프로그래밍 언어로 작성된 소스 코드를 기계어 코드로 변환하는 과정

빌드(Build)

  • 작성한 소스 코드를 실행할 수 있는 것으로 변환시키는 과정
  • 빌드 과정에 컴파일 과정이 포함되어 있음
  • 빌드 과정을 거친 후에 실행 파일이 만들어져 이를 이용해 프로그램이 실행됨
profile
자바, 웹 개발을 열심히 공부하고 있습니다!

0개의 댓글