1. 컴퓨터
컴퓨터란?
하드웨어와 소프트웨어로 구성되어 사용자가 원하는 작업을 수행하는 장치
➡️ 사용자로부터 입력받은 데이터를 정해진 규칙대로 처리하고 저장/출력함
컴퓨터의 구성요소
1️⃣ 소프트웨어
-
시스템 소프트웨어
- 응용 소프트웨어의 실행환경 -
OS
- 하드웨어 장치 관리 -
키보드/마우스 드라이버
-
응용 소프트웨어
- 시스템 소프트웨어를 제외한 모든 소프트웨어 - 프로그램/애플리케이션
2️⃣ 하드웨어
- CPU
- 제어장치: CPU의 모든 동작과 흐름 통제/관리 ➡️ 제어신호 생성
- 연산장치: 제어신호에 따라 명령어를 실행
- 레지스터: 연산장치에 필요한 데이터를 일시적으로 저장/제공하는 고속 기억장치
- 기억장치
- 주기억장치
RAM
ROM
- CPU와 직접 소통 ⭕️
- 데이터 저장 용량 ⬇️
- 데이터 처리 속도
- 보조기억장치
HDD
SSD
- CPU와 직접 소통 ❌
- 데이터 저장 용량 ⬆️
- 데이터 처리 속도 ⬇️
- 입력장치 : 키보드, 마우스, ...
- 출력장치 : 프린터, 스피커, ...
- 시스템버스: 컴퓨터 시스템을 구성하는 기능장치를 연결하는 배선의 집합
- 데이터버스: CPU와 메인 메모리, 주변 장치 사이에 데이터를 전송하는 배선의 집합
- 주소버스: CPU가 시스템 구성 요소를 식별하기 위한 주소 정보를 전송하는 배선의 집합
- 제어버스: CPU가 시스템 구성 요소의 동작을 제어하는 데 사용되는 배선의 집합
2. 프로그래밍
프로그래밍이란?
컴퓨터가 특정 작업을 수행하기 위한 프로그램을 설계하는 것
프로그래밍 언어
사람이 사용하기 편리한 언어로 프로그래밍할 수 있도록 만든 언어
-
컴퓨터가 이해하는 언어는 기계어인데, 사람이 기계어로 코딩을 하는 것에 한계가 있음!
➡️ 사람이 컴퓨터와 소통하기 위해서는 사람의 언어와 컴퓨터의 언어의 다리 역할을 하는 프로그래밍언어가 필요 ‼️
-
기계어에 가까울수록 저수준 언어 Low-Level Language : 어셈블리어
-
사람의 언어에 가까울수록 고수준 언어 High-Level Language : C
, Java
컴파일
프로그래밍 언어를 기계어로 번역하는 것
빌드
작성한 코드를 실행시킬 수 있는 결과물로 만드는 것
3. 웹
클라이언트와 서버
-
클라이언트: 리소스를 사용
- 웹 사이트(웹 앱)
- 스마트폰 / 태블릿 앱
- 데스크탑 앱
-
서버: 리소스를 제공
2 - Tier 아키텍처
클라이언트 ↔️ 서버(DB)
3 - Tier 아키텍처
클라이언트 ↔️ 서버 ↔️ DB