태그: OOP
11편
-
객체지향 vs 함수형 프로그래밍: 설계 방식의 차이와 선택 기준
캡슐화·상속·다형성 중심의 객체지향과 순수 함수·불변성 중심의 함수형 프로그래밍을 C++·Python·JavaScript 예제로 비교하고, 같은 문제를 두 방식으로 풀어 보며 멀티 패러다임 언어에서의 선택 기준을 설명합니다.
-
JavaScript 클래스: ES6 class 문법, 상속, private 필드
ES6 class 정의와 getter·setter, static 메서드를 이용한 팩토리, extends와 super 상속, # 접두사 private 필드를 게임 캐릭터·쇼핑몰 예제로 익히고, super() 누락이나 new 없이 호출하는 실수를 짚습니다.
-
Kotlin 클래스와 객체 | 클래스, 상속, 인터페이스
Kotlin 주 생성자와 init 블록, 부 생성자, 프로퍼티 getter·setter, open 상속과 추상 클래스, 인터페이스, data class의 copy와 구조 분해, sealed class, object 싱글톤과 companion object를 쇼핑 시스템 예제로 설명합니다.
-
C++ 가상 함수 현장 매뉴얼 | 설계·비용·override·실무 패턴 한글 정리
가상 함수를 언제 쓰고 언제 템플릿으로 대체할지, override/final로 실수를 줄이는 법, 다형 호출 비용과 캐시 친화 설계까지. 현업에서 바로 적용 가능한 체크리스트와 안티패턴을 정리합니다.
-
Java 클래스와 객체 | OOP, 상속, 인터페이스
Java 클래스 정의와 생성자 오버로딩, extends와 super를 이용한 상속, 여러 인터페이스 동시 구현, 추상 클래스, 접근 제어자로 하는 캡슐화를 도서 관리 시스템 예제 하나로 연결해 설명합니다.
-
Python 클래스: 객체지향 프로그래밍(OOP) 기초와 특수 메서드
self와 __init__, 클래스 변수와 인스턴스 변수의 차이에서 시작해 상속과 super(), @property 캡슐화, __str__·__len__·__call__ 같은 특수 메서드, @classmethod와 @staticmethod, 추상 클래스까지 Python 객체지향을 예제로 짚습니다.
-
C++ 가상 함수 심화 가이드 | vtable·vptr, 가상 상속, 추상 클래스, 가상 소멸자
C++ 가상 함수가 런타임에 올바른 오버라이드를 호출하는 원리(vtable·vptr), override와 final, 순수 가상 함수와 추상 클래스, 가상 소멸자, 다이아몬드 상속을 예제로 설명하고, 생성자 안의 가상 호출·기본 인자·이름 가림 같은 함정을 짚습니다.
-
C++ static 멤버 변수와 함수: 초기화 순서, 스레드 안전성, C++17 inline static
C++ static 멤버 변수·함수의 동작 원리를 싱글톤, 카운터, 설정 관리자, 팩토리 실전 예제로 정리합니다. 초기화 순서 함정, 스레드 안전성, C++17 inline static까지 다룹니다.
-
C++ 상속과 다형성: virtual 함수, 추상 클래스, 가상 소멸자 누락과 슬라이싱
C++의 상속(Inheritance)과 다형성(Polymorphism)을 게임 캐릭터·결제 시스템 예제로 정리합니다. virtual 함수, 순수 가상 함수, 가상 소멸자 누락과 슬라이싱 같은 실무에서 자주 겪는 함정을 다룹니다.
-
C++ friend: private 접근을 열어 줄 때, operator<<와 대칭 연산자, getter와 비교
friend는 특정 함수나 클래스에만 private 멤버 접근을 허용합니다. operator<< 같은 스트림 연산자와 대칭 비교 연산자를 friend로 만드는 이유, friend가 상속되지 않는다는 규칙, getter를 늘리는 것과 비교한 판단 기준을 예제로 설명합니다.
-
C++ 클래스와 객체 입문: 설계도 비유로 이해하는 생성자·접근 제어·소멸자
클래스는 설계도, 객체는 그 설계도로 만든 실체라는 비유로 첫 C++ 클래스를 작성해 봅니다. 생성자와 소멸자가 언제 호출되는지, public·private 접근 제어가 왜 필요한지, 세미콜론 누락 같은 초보자 실수를 예제로 짚습니다.