1 . 프로그래밍 방법론
- 프로그램을 개발하는 다양한 접근 방식이나 철학을 뜻함
- 프로젝트 규모, 요구사항, 개발 팀의 특성에 따라 적합한 방법론이 달라짐
1 - 1 . 절차적 프로그래밍(Procedural Programming)
- 절차 중시
- 작업을 순서대로 실행하도록 프로그램 구성
- 코드는 명령문으로 이루어져 있고 작업 순서가 중요함
- 변수와 함수가 함께 사용되며 함수를 통해 프로그램의 기능을 분리하고 코드 중복을 줄임
1 - 2 . 객체지향 프로그래밍(Object-Oriented Programming, OOP)
- 객체라는 개념을 사용해 프로그램 구성
- 객체는 데이터(속성)와 함수(메서드)를 하나의 단위로 묶은 것
- 클래스를 이용해 객체 정의 -> 여러 개의 객체 생성 가능
- 캡슐화, 상속, 다형성 등의 특징을 활용해 코드를 재사용하고 확장할 수 있음
1 - 3 . 함수형 프로그래밍(Functional Programming)
- 함수 중심
- 수학적인 함수 개념에 기초함
- 코드가 간결하고 직관적임
- map, filter, reduce 등의 함수나 재귀를 주로 사용해 데이터 처리를 간결하게 수행함
2 . 클래스
- 객체지향 프로그래밍에서 데이터(속성)와 기능(메서드)을 하나로 묶어 객체를 만들기 위한 설계도(템플릿)
- 클래스를 정의하면 그 구조를 기반으로 여러 개의 객체(인스턴스)를 생성할 수 있음
- 각 객체는 동일한 구조를 가지면서도 서로 다른 값을 가질 수 있음
- 변수 = 속성 = 데이터
- 동사 = 함수 = 메서드 = 기능
- 기본값

3 . 객체(인스턴스) 생성
- 클래스를 정의한 후에는 이를 기반으로 객체(인스턴스)를 생성할 수 있음

3 - 1 . 객체와 인스턴스
- 객체
- 인스턴스와 거의 같은 의미로 사용되지만 관점에 따라 구분
- 메모리에 생성된 모든 실체를 의미하는 포괄적인 개념
- 파이썬에서 리스트, 함수, 클래스 등 모든 값이 객체
- 인스턴스
- 특정 클래스에 의해 생성된 객체를 가리키는 관계 중심의 용어로 '어떤 클래스의 인스턴스다'라고 표현
- 모든 인스턴스는 객체이지만 모든 객체가 특정 클래스의 인스턴스라고 강조해서 부르지 않음
- 주로 클래스와의 관계를 설명할 때 사용되는 용어
4 . 생성자
- 클래스의 인스턴스가 생성될 때 자동으로 호출되는 특별한 메서드
- 객체의 초기화 담당, 객체가 생성될 때 필요한 속성을 초기화하고 설정
- 생성자 메서드는 __init__로 표현
- 속성은 self를 사용해 접근, 설정
- 초기화된 속성은 객체가 생성될 때마다 다른 값을 가짐
-기본값

- 매개변수를 적지 않더라도 self는 적어야 함

4 - 1 . 인스턴스 변수
- 각 인스턴스마다 별도로 생성되는 변수
- 객체를 만들 때마다 self 키워드를 통해 생성자에서 정의
- 각 객체가 고유한 값을 따로 저장
- 인스턴스명으로만 접근 가능. 다른 인스턴스에 영향을 주지 않음 -> 객체마다 다른 속성값을 저장할 때 사용



5 . 메서드
- 클래스 내부에 정의된 함수
- 객체(인스턴스)나 클래스와 관련된 동작을 수행하는 기능
- 메서드의 종류 : 인스턴스 메서드, 클래스 메서드, 정적 메서드
- 인스턴스 메서드 : self 사용
- 클래스 메서드 : cls 사용(@classmethod)
- 정적 메서드 : 별도의 참조 없이 독립적으로 동작(@staticmethod)
- 단순한 함수와 달리 특정 객체나 클래스와 연결되어 동작
- 객체의 상태(속성)를 읽거나 변경하는 역할
- Fruit 클래스

- Fruit 클래스 apple 추가 결과

- Fruit 클래스 banana 추가 결과

- order 클래스

- 결과

5 - 1 . 데코레이터
- 기존 함수나 메서드를 수정하지 않고 그 기능을 감싸서 추가 동작을 붙여주는 기능
- 실행 전후에 로그를 출력하거나 권한 체크, 시간 측정 등의 공통 기능을 쉽게 재사용할 수 있게 해 줌
- 내부적으로는 함수를 인자(주소)로 받아 새로운 함수를 반환하는 구조로 동작 (closure 함수)
- @데코레이터이름 형태로 사용하면 해당 함수가 자동으로 데코레이터에 전달되어 기능 확장됨
5 - 2 . 클래스 변수
- 클래스에 속하는 변수
- 클래스가 생성될 때 정의
- 그 클래스로 만들어진 모든 인스턴스들이 공유하는 변수
- 클래스명으로 직접 접근하거나 인스턴스명으로 접근할 수 있음
- 모든 인스턴스가 같은 메모리 공간의 값을 참조하기 때문에 한 인스턴스에서 값을 변경하면 다른 인스턴스에서도 변경된 값을 볼 수 있음
- 주로 전체 객체에 공통적인 속성을 저장할 때 사용

- 인스턴스 변수로 덮어쓰기에서 apple.origin = '미국'은 클래스 변수의 값을 변경하는 것이 아니라 apple 객체 안에 새로운 origin 변수를 하나 더 만드는 것.
- apple.print_info()의 결과가 필리핀인 이유 : apple의 origin을 미국으로 설정했어도 코드 실행 시 print.info에는 Fruit.origin이 찍혀 있기 때문에 Fruit의 결과를 출력함
- print(apple.origin)의 결과가 미국인 이유 : apple.origin를 실행하면 apple 객체 안에 origin이라는 이름의 변수가 있는지 확인함 -> apple.origin = '미국'이라 미리 만들어두었기 때문에 미국 출력
'Python 기초' 카테고리의 다른 글
| 13 . 예외 처리 (0) | 2026.05.29 |
|---|---|
| 12 . 객체지향 프로그래밍 4대 패러다임 (0) | 2026.05.29 |
| 10 . 사용자 정의 함수 (0) | 2026.05.28 |
| 9 . 제어문 - 반복문 (0) | 2026.05.27 |
| 8 . 제어문 - 조건문 (0) | 2026.05.26 |