파이썬 세션 수업날 5일차
클래스
- 클래스(Class)
- 객체(인스턴스)를 만들기 위한 설계도나 틀
- OOP의 핵심 개념
- 관련된 데이터와 기능을 논리적 단위로 묶어내면 큰 규모의 프로그램을 더 체계적이고 유지 관리하기 쉽게 만들 수 있음.
- 속성(특징,데이터)과 메소드(기능,함수)로 구성
class 클래스이름:
# 클래스 본문
# 속성(변수)과 메서드(함수)를 정의
- 클래스 이름은 관례적으로 단어의 첫 글자를 대문자로!
- 인스턴스(Instance)
- 특정 클래스로부터 생성된 객체
- 인스턴스랑 객체는 혼용되어 쓰이기도 함
- 객체(Object)
- 클래스를 통해 만들어낸 실제 사물(인스턴스)
- 클래스를 붕어빵 틀이라고 한다면, 객체는 그 틀로 찍어낸 붕어빵
- __init__생성자
def __init__(self, name, age):
self.name = name # 인스턴스 변수
self.age = age # 인스턴스 변수
- 인스턴스가 생성될 때 자동으로 호출되는 메서드
- 생성될때 호출된다고 해서 생성자(constructor)라고도 불림
- 인스턴스 생성 시 초기화 과정 수행 가능
- 객체 생성
- 클래스 정의한 후에는 클래스를 호출하는 형식으로 객체 생성 가능
- 인스턴스 변수(instance variable) (=데이터 관리)
- 각 객체마다 별로 관리되는 변수
- self.name, self.age와 같이 self를 통해 참조하는 변수
- 각각 인스턴스마다 각각 값을 가질 수 있다.
- 클래스 변수(class variable) (=데이터 관리)
- 클래스로부터 만들어진 모든 인스턴스가 공유하는 변수
- 클래스 블록 내에서 self 없이 바로 변수를 정의하면 클래스 변수로 설정
- 인스턴스 메서드(Instance Method) (=기능 구현)
- 고유의 변수(인스턴스 변수)를 다루는 함수
- 각 인스턴스에서 동작
- 클래스 메서드(Class Method) (=기능 구현)
- 틀자체(클래스)에 대한 것을 다루는 함수
- 클래스 자체를 인자로 받는다. (클래스 = 틀)
- 클래스 변수를 다루는 상황 / 새로운 인스턴스를 생성하는 메서드 등을 정의할 때 활용
- 정적 메서드(Static Method) (=기능 구현)
- 함수
- 첫번째 매개변수로 self나 cls 받지 않는다.
- 클래스에 굳이 소속될 필요 없지만, 분류상 틀에 넣어야 깔끔해서 넣는 경우. (주로 클래스나 인스턴스 변수에 접근할 필요가 없는 경우)
- 데코레이터 @staticmethod 를 사용
1교시 실습 코드 정리:
https://colab.research.google.com/drive/1BIMMGKaXvourlbI9_aVuuW5V_xQZxXBm?usp=sharing
- 접근 지정자와 캡슐화 (=코드 재사용성, 유연성 극대화)
관례적으로 변수나 메서드 앞에 언더스코어(_)를 붙여 내부적으로 사용함을 암시
_변수명 : 해당 변수는 내부적 용도로 사용되는 것 암시 (개발자간 약속)
__변수명: 외부에서 접근하기 어렵게 강제. 즉, 클래스에 속한 메서드들만 이 변수에 접근 가능
캡슐화를 통해 내부 데이터는 메서드로만 접근 가능하게 하여 데이터 무결성 보장
- 상속 (=코드 재사용성, 유연성 극대화)
기존 클래스를 재사용하여 새로운 클래스를 만들 수 있게 하는 기능
상속을 통해 기존 클래스(부모 클래스 또는 슈퍼 클래스)의 변수 & 메서드 -> 자식 클래스(서브 클래스)에서 물려받을 수 있음.
필요하다면 물려받은 것을 확장 또는 수정 가능
- 다현성(Polymorphism) (=코드 재사용성, 유연성 극대화)
같은 메서드 이름이 다양한 클래스에서 다른 형태로 동작할 수 있음
- 오버라이딩(Overriding) (=코드 재사용성, 유연성 극대화)
자식 클래스에서 부모 클래스의 메서드를 재정의하는 것
2교시 실습 코드 정리:
https://colab.research.google.com/drive/1xjaEKk7YHUs3kP3K1txlY1biFfV59x0e?usp=sharing
isupper() 메서드 (확인용)
- 문자열이 모두 대문자로 구성되어 있는지를 확인하여 True 또는 False로 답해주는 함수
문자열.isupper()
- 전부 대문자여야 함: 문자열 내의 모든 "알파벳"이 대문자일 때만 True를 반환합니다.
- 알파벳이 아닌 문자: 숫자, 공백, 특수문자 등은 무시하지만, 적어도 하나 이상의 알파벳이 포함되어 있어야 합니다.
- 소문자가 하나라도 섞이면: 바로 False를 반환합니다.
- 자주 함께 쓰이는 메서드들
- islower() : 모든 알파벳이 소문자인지 확인
- istitle() : 각 단어의 첫 글자만 대문자인지 확인
- upper() : 문자열을 대문자로 변환
- lower() : 문자열을 소문자로 변환
pop() 메서드
- 데이터를 꺼내오면서 동시에 삭제하는 기능
- 주로 리스트(List)와 딕셔너리(Dictionary)에서 사용
1. 리스트에서의 pop()
- 리스트의 특정 인덱스에 있는 요소를 제거하고, 그 제거된 값을 반환
- 반환값 존재: 삭제된 데이터를 변수에 담아 나중에 다시 사용할 수 있습니다.
- 인덱스 조정: 중간 요소를 pop()하면 뒤에 있던 요소들이 앞으로 한 칸씩 당겨집니다.
list.pop(index)
- index (선택): 삭제할 요소의 위치 번호입니다.
- 비워둘 경우: 가장 마지막 요소(-1 인덱스)를 꺼냅니다.
2. 딕셔너리에서의 pop()
- 특정 키(Key)를 지정하여 해당 키-값 쌍을 삭제하고, 값(Value)을 반환
dictionary.pop(key, default)
- key: 삭제할 데이터의 키입니다.
- default (선택): 키가 없을 경우 에러 대신 반환할 값입니다. (설정 안 하면 KeyError 발생)
3. 비슷한 기능
| 매서드 / 명령어 | 특징 | 반환값 |
| pop() | 인덱스나 키로 삭제 | 있음 (삭제된 값) |
| remove() | 값(value)을 직접 찾아서 삭제 | 없음 |
| del | 인덱스나 키로 삭제 (명령어) | 없음 |
| clear() | 모든 요소를 삭제하여 비움 | 없음 |
오늘 한 일 점검
- 파이썬 클래스, 파일 내용 및 예제 정리
- 데이터 전처리 & 시각화 챕터 3 수강 -> 3-4까지만 수강
- sql 알고리즘 코드카타 3개
- Python 코드카타 3개
26.01.15(목) 할 일
- 파이썬 세션 듣기
- 데이터 전처리 & 시각화 챕터 3-5 ~ 8 수강 및 정리
- sql 알고리즘 코드카타 3개
- Python 코드카타 3개
오늘의 회고
이해한듯 이해못한듯 한 상태이다. 뭔가 집중력이 저하된것 같기도 하고.. 내일 내용 정리를 듣고 정리 겸 연습문제를 다시 풀어보는 시간을 빠르게 가져보는 것도 좋을 것 같다. 그 후 잘 풀린다면 4차 세션의 심화문제를 재도전해보고자 한다. 이번에도 안되면 인간튜터님께 H.E.L.P 할 예정..
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프] TIL 18일차 26.01.16(금) (1) | 2026.01.16 |
|---|---|
| [내일배움캠프] TIL 17일차 26.01.15(목) (1) | 2026.01.15 |
| [내일배움캠프] TIL 15일차 26.01.13(화) (0) | 2026.01.13 |
| [내일배움캠프] TIL 14일차 26.01.12(월) (1) | 2026.01.12 |
| [내일배움캠프] TIL 13일차 26.01.09(금) (0) | 2026.01.09 |