티스토리 뷰
🟩 오늘의 목표
- 클래스의 역할과 필요성을 이해한다.
- 클래스와 객체를 정의하고 활용해 간단한 프로그램을 작성한다.
- 접근 제어자(public, private)를 적절히 사용하여 안전한 구조를 설계한다.
- 생성자, getter/setter, 파일 분리 구조를 통해 유지보수하기 좋은 코드를 작성한다.
🟧 C++ 기초 세션 – Class(클래스) 이해하기
🟦 1. 클래스가 필요한 이유
- 유지 보수 시간이 개발보다 더 오래 걸리는 실제 환경에서는 재사용성, 유지 보수성이 매우 중요하다.
- C++의 class는 데이터를 안전하게 보호하고, 필요한 기능만 외부에 제공하는 방식으로 구조를 개선한다.
- 클래스는 “설계도”, 객체는 “설계도로 만들어진 실제 인스턴스”의 개념.
🟦 2. 클래스 없이 작성한 프로그램의 문제점
- 학생 성적 관리 예제에서 함수에 과목이 늘어날수록 인자 개수가 폭증 → 유지보수 불가.
- 데이터가 외부에 노출되어 잘못된 접근으로 오류 발생 가능.
- 데이터(점수)와 기능(평균, 최대값 계산)이 섞여 있어 구조가 복잡해짐.
🟦 3. 클래스 기본 구조 (멤버 변수 & 멤버 함수)
- 멤버 변수 (private):
- 내부 데이터를 저장한다.
- 함부로 수정되면 오류가 생기므로 대부분 private으로 숨긴다.
- 멤버 함수 (public):
- 외부에서 사용할 수 있는 기능(행동).
- 데이터는 멤버 함수만 통해 안전하게 조작.
🟦 4. 접근 제어자 — public / private
- public : 외부에서 접근 가능한 공개 멤버.
- private : 클래스 내부에서만 접근 가능한 비공개 멤버.
- 기본값이 private이라, 멤버 변수는 자동으로 보호됨.
- private 멤버에 직접 접근 시 컴파일 에러 발생 → 데이터 보호 효과.
🟦 5. getter / setter 사용 이유
- private 변수에 직접 접근할 수 없기 때문에
→ getter(값 읽기), setter(값 변경) 을 통해 안전하게 제어. - setter로 잘못된 값 입력을 방지하거나 로직을 추가할 수도 있어 유지관리 쉬움.
🟦 6. 생성자(Constructor)
- 객체가 생성될 때 자동으로 호출되는 특별한 함수.
- 특징:
- 반환형 없음.
- 클래스 이름과 동일해야 함.
- 멤버 변수를 초기화할 때 사용.
- 형태:
- 기본 생성자
- 매개변수 있는 생성자
- 기본값이 있는 생성자
- 잘못된 호출 또는 정의 누락 시 컴파일 에러 발생.
🟦 7. Student 클래스에 생성자 적용하기
- 국/영/수 점수를 입력받아 최대 점수 & 평균을 계산하는 클래스 제작.
- 점수가 항상 3개 필요하므로 생성자에서 초기화.
- 필요 시 기본값이 있는 생성자로 대체 가능.
🟦 8. 헤더(.h) / 소스(.cpp) 파일 분리
- Student.h
- class 선언(목차 역할)
- 중복 포함 방지를 위한 #ifndef, #define, #endif
- Student.cpp
- 멤버 함수 구현(실제 내용)
- main.cpp
- Student.h를 include하고 클래스 사용
이렇게 파일을 나누면:
- 전체 구조가 명확해지고
- 유지보수성과 가독성이 크게 향상됨.
🟫 오늘 느낀 점
클래스 구조를 배운 덕분에 C++ 프로그램이 어떻게 확장성과 유지보수성을 갖추는지 이해할 수 있었다.
'내일배움캠프 Unreal_7기 > 본캠프' 카테고리의 다른 글
| TIL - 11일차 (1) | 2025.12.11 |
|---|---|
| TIL - 10일차 (0) | 2025.12.10 |
| TIL - 8일차 (0) | 2025.12.08 |
| TIL - 7일차 (1) | 2025.12.05 |
| TIL - 6일차 (0) | 2025.12.04 |

