Skip to main content

Command Palette

Search for a command to run...

[python study note] 가변타입, 불변타입, 절차 지향 프로그래밍

Mutable Type, Immutable Type, Procedural Programming

Updated
2 min read
[python study note] 가변타입, 불변타입, 절차 지향 프로그래밍

1. 파이썬은 순수 객체 지향 언어

파이썬의 모든 것이 객체라는 뜻

숫자열이나 문자열 등이 모두 어떤 클래스의 인스턴스 이다.


2. 가변 타입 객체 vs 불변 타입 객체

가변 타입 객체 : 한번 생성한 인스턴스의 속성 변경 가능. ex)리스트

클래스 불변 타입 객체 : 한번 생성한 인스턴스의 속성 변경 불가. ex)튜플 클래스

어떤 타입이냐에 따라 같은 상황에서도 다른 결과가 나온다.

mutable_object = [1, 2, 3]
immutable_object = (1, 2, 3)

#리스트의 0번째 요소를 4로 바꿈
mutable_object[0] = 4
print(mutable_object) #[4, 2, 3] 
#=> 리스트 인스턴스는 생성되고 나서도 속성을 바꿀 수 있다.

immutable_object[0] = 4
print(immutable_object) #TypeError: 'tuple' object does not support item assignment
# => 튜플은 불변타입 이기 때문에 변경 불가능

불편타입 : 변수가 가리키는 객체 자체는 바꿀 수 있다.

가변 : list(리스트), dict(딕셔너리)

불변 : bool(불린), int(정수), float(실수), str(문자열), tuple(튜플)

위의 파이썬의 기본 클래스 말고 직접 작성하는 클래스는 가변 타입이다.

인스턴스 변경 시 원래 인스턴스 속성을 바꾸면 된다.


3. 절차 지향 프로그래밍

객체 지향 프로그래밍과 달리 객체라는 개념이 없다.

대신 절차 지향 프로그래밍에도 함수라는 개념은 있다.

함수는 순서대로 특정 명령어들을 실행하는 부분을 하나로 묶은 것

객체 지향 프로그래밍은 필요한 동작 뿐만 아니라 아예 연관된 데이터도 객체로 묶어서 하나의 클래스로 나타낸다.

즉, 절차 지향 프로그래밍에서는 프로그램 안에서 서로 관련된 동작들만을 묶어서 관리하는데 객체 지향 프로그래밍에서는 관련된 동작들을 관련된 데이터와도 함께 묶어서 관리하는 것.

절차 지향 프로그래밍과 객체 지향 프로그래밍의 차이

절차 지향 프로그래밍

  • 프로그램을 만들 때 데이터와 함수를 합칠 수 없다.

  • 프로그램을 명령어들을 순서대로 실행하는 것으로 본다.

객체 지향 프로그래밍

  • 프로그램을 만들 때 데이터와 함수를 합칠 수 있다.

  • 프로그램을 객체들이 순서대로 소통하는 과정으로 본다.

More from this blog

s3사용 및 s3:PutBucketPolicy 권한 오류

1. S3 생성 중 정책 생성 페이지에서 s3:PutBucketPolicy 권한이 없어 오류 발생 IAM 사용이 아닌 루트 사용자 버전으로 설명 AWS IAM 콘솔 → 정책 → AdministratorAccess⁠검색→ 정책이 나타나면 사용자에 연결→ 없다면 새로운 정책 추가 없으므로 AdministratorAccess 생성 정책 생성 버튼 클릭 → JSON 탭 선택 후 아래 코드 입력 → 생성 { "Version": "2012-10-1...

Mar 12, 20252 min read9
s3사용 및 s3:PutBucketPolicy 권한 오류

챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

https://youtu.be/5soSQgVHGEA OpenAI API를 이용한 챗봇을 만들면서 대화가 길어질수록 LLM 호출 시 토큰 수 증가로 응답 시간이길어지는 문제가 발생 문제분석 여기서 생각하는 문제는 db 조회의 부하 처음 챗봇에게 부여하는 역할이 너무 긴데, 이걸 매 API 호출마다 전송함 대화 흐름을 기억하기 위해 챗봇-유저 간 대화 내용을 모두 DB에 저장한 다음 그대로 API 호출 마다 LLM에 전달함 → 모든 대화 ...

Jan 16, 20253 min read122
챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

dayeon's blog

124 posts