본문 바로가기

전체 글165

6-7. 캡슐화와 접근 제한자 개념 안녕하세요! 지난 시간에는 상속(Inheritance)과 다형성(Polymorphism)을 통해 코드를 재사용하고, 다양한 객체들이 유연하게 동작하도록 만드는 방법을 알아보았습니다. 이제 OOP의 강력한 장점들을 조금씩 느끼고 계실 거예요.이번 시간에는 객체지향 프로그래밍의 또 다른 중요한 원칙이자, 데이터의 안전성과 코드의 유지보수성을 높이는 데 필수적인 개념인 **캡슐화(Encapsulation)**와 파이썬에서의 접근 제한자(Access Modifiers) 개념에 대해 알아보겠습니다.캡슐화는 데이터와 그 데이터를 다루는 기능을 하나로 묶고, 외부로부터 데이터를 보호하는 것을 의미합니다. 그럼, 캡슐화가 무엇이고, 파이썬에서 이를 어떻게 구현하는지 함께 살펴볼까요?Part 1: 캡슐화 (Encapsu.. 2025. 7. 2.
6-6. 오버라이딩과 super() 안녕하세요! 지난 시간에는 객체지향 프로그래밍(OOP)의 핵심 원칙인 상속(Inheritance)과 다형성(Polymorphism)에 대해 알아보았습니다. 자식 클래스가 부모 클래스의 속성과 메서드를 물려받고, 다양한 객체들이 동일한 이름의 메서드에 대해 각자의 방식으로 동작하는 것을 배웠죠!이번 시간에는 다형성을 구현하는 주요 방법이자, 상속에서 매우 중요한 개념인 **오버라이딩(Overriding)**과, 부모 클래스의 기능을 자식 클래스에서 호출할 때 사용되는 특별한 함수 **super()**에 대해 더 깊이 알아보겠습니다.Part 1: 오버라이딩(Overriding) - 부모의 메서드를 자식에서 재정의하기오버라이딩은 자식 클래스가 부모 클래스로부터 물려받은 메서드와 동일한 이름으로 메서드를 다시 .. 2025. 7. 1.
6-5. 상속과 다형성 안녕하세요! 지난 시간에는 클래스 변수, 정적 메서드, 클래스 메서드와 같이 클래스 수준에서 데이터를 관리하고 행동을 정의하는 다양한 방법에 대해 알아보았습니다. 이제 여러분은 클래스를 더욱 세밀하게 설계하고 활용할 수 있게 되었을 거예요!이번 시간에는 객체지향 프로그래밍(OOP)의 핵심 원칙 중 두 가지인 **상속(Inheritance)**과 **다형성(Polymorphism)**에 대해 자세히 알아보겠습니다. 이 두 가지 개념은 OOP의 강력함을 가장 잘 보여주는 요소이며, 코드 재사용성, 확장성, 그리고 유연성을 극대화하는 데 필수적입니다.상속은 "기존 것을 물려받아 확장하는 것"이고, 다형성은 "하나의 형태가 여러 다른 동작을 하는 것"이라고 비유할 수 있습니다. 그럼, 이 두 가지 개념이 어떻게.. 2025. 7. 1.
6-4. 클래스 변수, 정적 메서드, 클래스 메서드 안녕하세요! 지난 시간에는 객체지향 프로그래밍의 핵심인 생성자(__init__)와 인스턴스 변수에 대해 알아보았습니다. 이제 각 객체(인스턴스)가 자신만의 고유한 데이터(속성)를 가질 수 있다는 것을 이해하셨죠! 또한 객체가 특정 행동을 수행하는 메서드에 대해서도 학습했습니다.이번 시간에는 클래스에 속하지만, 특정 객체(인스턴스)와는 조금 다르게 동작하는 특별한 변수와 메서드들에 대해 알아보겠습니다. 바로 클래스 변수(Class Variable), 정적 메서드(Static Method), 그리고 **클래스 메서드(Class Method)**입니다.이들을 이해하면 파이썬 클래스를 더욱 유연하고 효율적으로 설계할 수 있습니다.Part 1: 클래스 변수 (Class Variable) - 모든 객체가 공유하는 .. 2025. 6. 30.
6-3. 메서드 정의와 호출 안녕하세요! 지난 시간에는 객체지향 프로그래밍(OOP)의 핵심 개념인 생성자(__init__)와 인스턴스 변수에 대해 알아보았습니다. 이제 여러분은 클래스라는 설계도로 자신만의 고유한 데이터(속성)를 가진 객체를 만들 수 있게 되었죠!하지만 객체는 단순히 데이터를 저장하는 것 외에도 특정 **행동(Action)**을 수행할 수 있어야 합니다. 예를 들어, Person 객체는 "인사하기"를, Car 객체는 "운전하기"를, BankAccount 객체는 "입금하기"를 할 수 있어야 합니다.이번 시간에는 객체가 이러한 행동을 수행할 수 있도록 정의하는 **메서드(Method)**의 개념과, 메서드를 어떻게 정의하고 호출하는지 자세히 알아보겠습니다. 메서드는 객체가 할 수 있는 '동사'와 같다고 생각하시면 됩니다.. 2025. 6. 29.
6-2. 생성자(__init__)와 인스턴스 변수 안녕하세요! 지난 시간에는 객체지향 프로그래밍(OOP)의 가장 기본적인 개념인 클래스(Class)와 객체(Object)에 대해 알아보았습니다. 클래스가 객체의 설계도라면, 객체는 그 설계도로 만들어진 실제 사물이었죠.하지만 지난번 Person 클래스로 객체를 만들었을 때는 모든 객체가 똑같았습니다. 각각의 붕어빵(객체)이 팥 붕어빵, 슈크림 붕어빵처럼 서로 다른 속성(데이터)을 가질 수 있도록 하려면 어떻게 해야 할까요?이번 시간에는 클래스로 객체를 만들 때 초기값을 설정하는 특별한 메서드인 **생성자(__init__)**와, 객체 고유의 데이터를 저장하는 **인스턴스 변수(Instance Variable)**에 대해 자세히 알아보겠습니다. 이 둘은 객체의 개성을 부여하는 핵심 요소입니다.Part 1: .. 2025. 6. 29.