본문 바로가기
728x90

Artificial Intelligence602

[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] @staticmethod와 @classmethod : 객체지향 설계의 품격을 높이는 마법의 데코레이터 파이썬을 깊게 탐구하다 보면 클래스 내부에 정의된 메서드들 위에 붙은 골뱅이(@) 기호, 즉 데코레이터(Decorator)를 자주 마주하게 됩니다. 특히 @staticmethod와 @classmethod는 초보 개발자에게는 "둘 다 인스턴스 없이 호출하는 것 아닌가?"라는 의문을 남기고, 숙련된 개발자에게는 "어느 지점에서 유연성을 확보할 것인가?"라는 설계적 고민을 던지는 핵심 요소입니다.단순히 문법적인 차이를 넘어, 코드의 재사용성과 유지보수성, 그리고 파이썬스러운(Pythonic) 코드를 작성하기 위해 이 두 데코레이터의 심층적인 메커니즘을 파헤쳐 보겠습니다.1. 기본 개념의 재정의: 그들은 왜 태어났는가?객체지향 프로그래밍(OOP)에서 클래스는 데이터와 그 데이터를 처리하는 행동을 하나로 묶는 틀.. 2026. 2. 12.
[PYTHON] 매개변수(Parameter)와 인자(Argument)의 차이는? : 개념적 정의부터 메모리 구조까지 파이썬을 비롯한 모든 프로그래밍 언어를 학습할 때 가장 먼저 접하게 되는 기본 단위는 '함수(Function)'입니다. 하지만 함수를 정의하고 호출하는 과정에서 혼용되는 용어인 매개변수(Parameter)와 인자(Argument)의 차이를 정확히 구분하는 개발자는 생각보다 많지 않습니다. 이 글에서는 두 용어의 단순한 사전적 의미를 넘어, 파이썬의 동작 원리와 메모리 관점에서 이들이 어떻게 상호작용하는지 심도 있게 다룹니다.1. 용어의 본질적 차이: 위치와 시점가장 명확한 구분법은 '언제, 어디서 정의되는가'를 확인하는 것입니다. 이를 비유하자면, 매개변수는 커피 머신에 설계된 '캡슐 투입구'와 같고, 인자는 실제로 그 투입구에 넣는 '커피 캡슐' 그 자체라고 볼 수 있습니다.매개변수 (Parameter.. 2026. 2. 12.
[PYTHON] 대량 데이터 루프 성능 최적화 : 초당 백만 개 처리의 비밀 파이썬은 개발 생산성이 매우 높은 언어이지만, 대량의 데이터를 처리할 때는 '속도'라는 벽에 부딪히기 쉽습니다. 특히 수백만 행 이상의 데이터를 단순한 for 루프로 처리하려고 하면 프로그램이 응답하지 않거나 기하급수적으로 실행 시간이 늘어나는 경험을 하게 됩니다. 본 가이드에서는 파이썬의 내부 동작 원리를 기반으로, 루프 성능을 극적으로 향상시킬 수 있는 전문적인 최적화 기법을 심층적으로 다룹니다.1. 왜 파이썬의 루프는 느린가?최적화 방법을 알기 전에 원인을 파악해야 합니다. 파이썬은 동적 타이핑 언어이자 인터프리터 언어입니다. 루프가 한 번 돌 때마다 파이썬 가상 머신(PVM)은 다음과 같은 작업을 수행합니다.객체의 타입을 확인 (Type Checking)메모리 참조를 통한 데이터 조회루프 제어 변.. 2026. 2. 12.
[PYTHON] def로 함수를 정의하는 기본 구조 : 클린 코드를 위한 설계의 정석 파이썬 프로그래밍의 세계에서 함수(Function)는 코드의 재사용성을 높이고 복잡한 로직을 구조화하는 가장 강력한 도구입니다. 단순히 코드를 묶어두는 단위를 넘어, 프로그램의 가독성과 유지보수성을 결정짓는 핵심적인 요소죠. 본 가이드에서는 파이썬의 키워드인 def를 활용해 함수를 정의하는 기본 문법부터, 실무에서 사랑받는 'Pythonic'한 함수 설계 철학까지 심도 있게 다룹니다.1. 함수 정의의 본질: 왜 'def'인가?파이썬에서 함수를 만드는 과정은 def(Define의 약자) 예약어로 시작됩니다. 이는 인터프리터에게 "이제부터 특정 작업을 수행할 코드 블록을 이름 아래에 저장하겠다"고 선언하는 것과 같습니다. 좋은 함수 정의는 그 이름만으로도 어떤 일을 하는지 명확히 전달하며, 내부 구현을 몰라.. 2026. 2. 12.
728x90