본문 바로가기
728x90

파이썬기초64

[PYTHON] 클래스(Class)와 객체(Object)의 결정적 차이 : 객체지향의 본질 꿰뚫기 추상적인 개념에서 구체적인 실체로의 전환, 파이썬 객체지향 프로그래밍(OOP)의 핵심 패러다임 분석1. 도입: 왜 클래스와 객체를 구분해야 하는가?파이썬을 포함한 현대 프로그래밍 언어의 중심에는 객체지향 프로그래밍(Object-Oriented Programming, OOP)이 있습니다. 우리가 마주하는 모든 데이터와 기능을 체계적으로 관리하기 위해 파이썬은 모든 것을 '객체'로 취급합니다. 하지만 많은 입문자가 '클래스'와 '객체'라는 용어를 혼용하여 사용하곤 합니다. 클래스와 객체의 관계를 이해하는 것은 단순히 용어를 정의하는 것을 넘어, 소프트웨어를 어떻게 설계하고 메모리를 어떻게 효율적으로 관리할 것인가에 대한 해답을 찾는 과정입니다. 본 포스팅에서는 이 두 개념의 물리적, 논리적 차이를 명확히 하.. 2026. 2. 14.
[PYTHON] 재귀 함수(Recursive Function)의 마법 : 원리와 실전 설계 전략 단순 반복문을 넘어 논리적 우아함을 구현하는 재귀적 사고방식(Recursive Thinking)의 모든 것1. 재귀 함수란 무엇인가? (The Essence of Recursion)프로그래밍의 세계에서 재귀(Recursion)는 함수가 자기 자신을 다시 호출하여 문제를 해결하는 기법을 말합니다. 이는 마치 거울 두 개를 마주 보게 놓았을 때 끝없이 펼쳐지는 이미지나, 러시아의 인형 '마트료시카'와 같습니다. 커다란 인형을 열면 똑같이 생긴 조금 더 작은 인형이 나오고, 그 안에 또 작은 인형이 들어있는 구조와 매우 흡사합니다. 재귀는 복잡한 문제를 동일한 형태의 더 작은 하위 문제(Sub-problems)로 쪼개어 해결할 때 매우 강력한 위력을 발휘합니다. 특히 자료구조의 트리(Tree)나 그래프(Gra.. 2026. 2. 13.
[PYTHON] 함수 기본 값(Default Parameter) 설정 시 치명적인 실수와 해결 방안 파이썬의 유연함 속에 숨겨진 '가변 객체(Mutable Objects)'의 비밀과 안전한 코드 설계 전략1. 서론: 왜 파이썬의 기본값은 때때로 예상과 다르게 동작하는가?파이썬을 사용하면서 함수를 정의할 때 인자에 기본값을 설정하는 기능은 매우 편리합니다. def func(a, b=10):와 같은 방식은 코드의 재사용성을 높이고 호출 시 번거로움을 줄여줍니다. 하지만 파이썬의 중급자로 넘어가는 과정에서 반드시 마주하게 되는 기이한 현상이 있습니다. 바로 "함수를 여러 번 호출했는데, 이전 호출의 결과가 다음 호출에 영향을 미치는 현상"입니다.이는 단순한 버그가 아니라 파이썬의 함수 정의 시점(Definition Time)과 객체 참조 방식 때문에 발생하는 고유한 특징입니다. 본 포스팅에서는 이 치명적인 .. 2026. 2. 13.
[PYTHON] 함수 안에서 전역 변수를 수정하려면? (global 키워드) 파이썬 프로그래밍을 배우다 보면 가장 먼저 마주하는 난관 중 하나가 바로 '변수의 범위(Scope)'입니다. 특히 함수 내부에서 함수 외부에 선언된 변수(전역 변수)의 값을 읽는 것은 가능하지만, 값을 수정하려고 할 때 예기치 않은 오류(UnboundLocalError)가 발생하거나 값이 변하지 않는 현상을 겪게 됩니다. 이때 구원 투수로 등장하는 것이 바로 global 키워드입니다. 본 포스팅에서는 단순한 문법 설명을 넘어, 왜 파이썬이 이러한 구조를 가지고 있는지, global 키워드를 언제 사용해야 하며, 실무에서는 왜 이를 지양하고 대안을 찾는지 전문 개발자의 관점에서 심도 있게 다룹니다.1. 파이썬의 변수 범위: LEGB 규칙파이썬은 변수를 찾을 때 LEGB 규칙을 따릅니다. 이는 변수가 어디에.. 2026. 2. 13.
[PYTHON] 지역 변수(Local)와 전역 변수(Global)의 완벽 가이드 : 스코프의 원리와 메모리 관리 파이썬 프로그래밍을 시작할 때 가장 먼저 마주하는 벽 중 하나가 바로 변수의 범위(Scope)입니다. "분명 변수를 선언했는데 왜 함수 밖에서는 사용할 수 없을까?" 혹은 "함수 안에서 값을 바꿨는데 왜 원래 변수는 그대로일까?"와 같은 의문은 모두 지역 변수(Local Variable)와 전역 변수(Global Variable)의 차이에서 기인합니다. 이 글에서는 파이썬의 변수 유효 범위가 결정되는 방식인 LEGB 룰을 바탕으로, 효율적인 메모리 관리와 코드 가독성을 높이기 위한 변수 활용 전략을 심층적으로 다룹니다.1. 변수의 스코프(Scope)란 무엇인가?스코프는 프로그래밍 언어에서 변수가 유효한 범위를 의미합니다. 파이썬은 변수가 선언된 위치에 따라 해당 변수에 접근할 수 있는 영역을 엄격히 제한.. 2026. 2. 13.
[PYTHON] 매개변수(Parameter)와 인자(Argument)의 차이는? : 개념적 정의부터 메모리 구조까지 파이썬을 비롯한 모든 프로그래밍 언어를 학습할 때 가장 먼저 접하게 되는 기본 단위는 '함수(Function)'입니다. 하지만 함수를 정의하고 호출하는 과정에서 혼용되는 용어인 매개변수(Parameter)와 인자(Argument)의 차이를 정확히 구분하는 개발자는 생각보다 많지 않습니다. 이 글에서는 두 용어의 단순한 사전적 의미를 넘어, 파이썬의 동작 원리와 메모리 관점에서 이들이 어떻게 상호작용하는지 심도 있게 다룹니다.1. 용어의 본질적 차이: 위치와 시점가장 명확한 구분법은 '언제, 어디서 정의되는가'를 확인하는 것입니다. 이를 비유하자면, 매개변수는 커피 머신에 설계된 '캡슐 투입구'와 같고, 인자는 실제로 그 투입구에 넣는 '커피 캡슐' 그 자체라고 볼 수 있습니다.매개변수 (Parameter.. 2026. 2. 12.
728x90