260314 프로그래밍 기초
주제: 코딩이란? & 컴퓨터의 구조
1. 코딩이란
1.1 코딩의 본질
- 코딩은 단순하게 편집(editing)이다
- 편집 = 글을 작성하는 행위
- 글을 작성하려면 규칙이 필요하다 → 문법
정리
코딩 = 문법 + 로직으로 글을 작성하는 것
1.2 코딩에 필요한 요소
-
문법(Syntax): 규칙
-
로직(Logic): 흐름과 순서
-
편집기(Editor): 코드 작성 도구
-
IDE (통합개발환경)
- Integrated Development Environment
-
1.3 컴파일 과정
- CPU는 사람이 작성한 코드를 이해하지 못함
- 컴퓨터가 이해할 수 있는 0과 1로 변환 필요
핵심 개념
- 컴파일(Compile) = 번역
- 기계어 = 이진코드 = 바이너리 코드
1.4 컴파일러의 역할
- 문법 검사
- 기계어로 변환
- 실행까지 담당
오류 종류
- 문법 오류 (Syntax Error)
- 실행 시점 오류 (Runtime Error)
오류를 수정하는 과정 = 디버깅(Debugging)
1.5 로직 설계
- 로직 작성 시 순서도(Flowchart) 사용
핵심 요약
코딩의 시작과 끝은 변수
2. 컴퓨터 구조
2.1 CPU (중앙처리장치)
- processor라고도 부름
- process = 작업 단위 (명령)
구성 요소
- ALU: 연산 처리
- Controller: 제어
- Register: 초고속 저장소
연산 종류 (산비논대)
- 산술 연산
- 비교 연산
- 논리 연산
- 대입 연산
모든 연산은 변수(메모리)를 기반으로 이루어짐
2.2 RAM (메인 메모리)
- 변수 대부분 저장
- 빠르지만 휘발성
2.3 저장장치 (HDD / SSD)
- 데이터를 영구적으로 저장
2.4 메모리 속도 관계
레지스터 > 캐시 > RAM > HDD/SSD
역할
- 레지스터: CPU 내부, 가장 빠름
- 캐시 메모리: 중간 가속 역할
- RAM: 작업 공간
- 저장장치: 장기 저장
2.5 추가 개념
-
캐시 메모리에는 변수 선언 불가
-
C/C++: 레지스터 변수 사용 가능
-
Java/Python:
- 포인터 없음
- 객체 참조 방식 사용
2.6 Python / Dart 변수 특징
- Mutable: 값 변경 가능
- Immutable: 값 변경 불가능
3. 변수
3.1 변수란
- 값을 저장하는 공간
- 메모리에 존재
3.2 변수의 특징
- 값 저장 + 변경 가능
- 변경 불가능한 경우 = 상수(Constant)
3.3 자료형 (Data Type)
- 변수는 메모리 할당 시 크기를 지정해야 함
- 자료형에 따라 메모리 크기가 달라짐
핵심 정리
코딩은 문법과 로직을 이용해 변수를 다루고,
그 결과를 컴퓨터가 이해할 수 있는 형태로 변환하는 과정이다