[코드스테이츠 백엔드 44기 SEB BE] 2일차-1
컴퓨터
- 입력 받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 장치
컴퓨터의 구성 요소
- 컴퓨터는 소프트웨어와 하드웨어로 구성되며 이 둘의 상호작용을 통해 동작
1. 소프트웨어
시스템 소프트웨어(System Software)
- 응용 소프트웨어를 실행하기 위한 플랫폼 역할을 수행
- 하드웨어와 직접 소통하며 하드웨어 장치들이 제대로 동작할 수 있도록 함
- 응용 소프트웨어의 실행 환경임
- 하드웨어 장치를 관리
- 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가 사용한 데이터와 관련된 데이터 중, 재사용 가능성이 높은 데이터들을 주기억장치로부터 불러와서 대기시키는 역할
- 사용자로부터 데이터를 입력받는 장치
- Ex. 키보드, 마우스, 마이크 등
출력장치(Output Device)
- 컴퓨터 내부로부터 사람이 감각할 수 있는 형태로 데이터를 출력하는 장치
- Ex. 모니터, 스피커, 프린터 등
시스템 버스(System Bus)
- 하드웨어 장치 간의 통로
- 하드웨어 장치를 물리적으로 연결한 전선
- 시스템 버스의 구성요소
- 데이터 버스
- 주소 버스
- 데이터가 도착해야 하는 곳에 대한 정보를 전달하는 통로
- 제어 버스
- CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달
컴퓨터의 동작
- OS가 보조기억장치에 저장되어 있던 프로그램을 RAM에 로드시킴 (로딩(Loading))
- CPU가 작업할 수 있도록 보조기억장치에서 주기억장치로 프로그램 파일을 옮김
- 프로그램이 실행되어 모니터 상에 출력되어져 나타남
- 프로세스(process) : 메모리에 로드되어 실행중인 프로그램
- 입력장치를 통해 데이터를 입력
- 처리 결과는 주기억장치에 저장되며 모니터를 통해 보여짐
프로그래밍
프로그램
- 어떠한 목적을 달성하기 위한 컴퓨터 명령문의 집합
프로그래밍
- 프로그램을 만드는 과정
- 특정 목적 달성을 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 코드로 작성하는 과정
프로그래밍 언어
- 컴퓨터는 기계어를 사용하는데, 이는 사람이 이해하기 어려움
- 프로그래밍 언어
- 컴퓨터의 언어와 사람의 언어를 매개해주는 언어
- 사람이 이해할 수 있으면서 컴퓨터의 자세한 동작을 기술할 수 있도록 설계됨
컴파일
- 프로그래밍 언어로 작성된 소스 코드를 기계어 코드로 변환하는 과정
빌드(Build)
- 작성한 소스 코드를 실행할 수 있는 것으로 변환시키는 과정
- 빌드 과정에 컴파일 과정이 포함되어 있음
- 빌드 과정을 거친 후에 실행 파일이 만들어져 이를 이용해 프로그램이 실행됨