왜 객체지향 언어를 배우는가?
프로그래밍 학습의 목적
🧩 문제 해결 능력
사고력을 필요로 하는 다양한 문제를 해결하는 방법을 배운다
💡 논리적 사고 훈련
논리적이고 창의적으로 사고하는 훈련을 한다
⚙️ 소프트웨어 원리 이해
소프트웨어의 동작 원리를 이해한다
강의 목표 & 평가 방법
이 과목에서 무엇을 배우는가
📘 목표 1
C++의 기본을 이해한다
💻 목표 2
C++로 콘솔 프로그램을 구현할 수 있다
🏗️ 목표 3
객체 지향 프로그램을 이해한다
📊 평가 방법
📌 과제 제출 규칙
소스코드(*.cpp, *.h)와 실행결과 캡처파일 제출 · 매주 토요일 23:59까지 · 기한 이후 감점
강의 목차
15주 전체 커리큘럼
| 주차 | 내용 | 주차 | 내용 |
|---|---|---|---|
| 1주 | 강의 소개 | 9주 | 배열 |
| 2주 | 프로그래밍 개요 (데이터, 자료형, 상수와 변수) | 10주 | 포인터 |
| 3주 | 식과 연산자 | 11주 | 포인터와 배열의 완성 |
| 4주 | 조건문 | 12주 | 구조체 |
| 5주 | 반복문 | 13주 | 파일입출력 |
| 6주 | 함수 1 | 14주 | 메모리관리 |
| 7주 | 함수 2 | 15주 | 기말고사 |
| 8주 | 중간고사 |
절차지향 vs 객체지향
C와 C++의 차이
🔄 절차지향 (C)
- 1970년대 AT&T 벨연구소에서 Ken Thompson, Dennis Ritchie가 UNIX용으로 개발
- 고급언어지만 저급언어 특성도 보유 → 매우 효율적
- 실행 순서 고정 → 코드 순서 변경시 동일 결과 보장 어려움
- 디버깅이 어려움 · 유지보수 어려움
🏗️ 객체지향 (C++)
- 1983년경 Bjarne Stroustrup이 C의 장점을 유지하며 약점 보완
- 코드 재활용성이 높음
- 구조화 → 오류 수정 쉬움
- 이식성이 좋고 유연함
- 단점: 상대적으로 속도가 느림
🏪 자판기 예시로 보는 차이
잔돈을 받는다
제품을 받는다
돈을 검사한다
제품을 준다
잔돈을 준다
📌 핵심 차이
절차지향은 함수(순서)를 중심으로 설계하고, 객체지향은 객체(데이터+행동)를 중심으로 설계한다. 객체지향은 현실 세계의 사물을 그대로 모델링하는 방식이다.