파이썬

파이썬 전역변수 완벽 가이드: global 키워드 사용법과 주의사항

파이썬 전역변수 global

파이썬에서 전역변수(global variable)는 프로그램 전체에서 접근 가능한 변수입니다. 전역변수 과다 사용은 프로그램 복잡성을 높일 수 있지만, 디버깅이나 특정 상황에서는 매우 유용하게 활용될 수 있습니다.

이 포스팅에서는 전역변수의 개념부터 실제 활용 방법까지 상세히 알아봤습니다.


전역변수와 지역변수의 이해

프로그래밍에서 변수의 스코프(scope)는 매우 중요한 개념입니다. 지역변수와 전역변수는 아래와 같이 사용 범위에 차이가 있습니다.

  • 지역변수: 특정 함수나 블록 내에서만 사용 가능한 변수
  • 전역변수: 프로그램 전체에서 접근 가능한 변수

파이썬에서는 함수 내부에서 변수를 선언하면, 지역변수로 취급됩니다. 함수 내부에서 전역변수를 사용하거나 수정하려면 global 키워드를 활용해야 합니다.


전역변수 선언과 사용법

파이썬에서 전역변수를 선언하고 사용하는 방법은 크게 두 가지가 있습니다.

  • 함수 내부에서 global 키워드 사용: 함수 내부에서 전역변수를 수정하려면, global 키워드를 통해 변수를 선언해야 합니다.
  • 함수 외부에서 전역변수 선언: 함수 외부에 선언된 변수를 함수 내부에서 읽는 것은 문제가 없으나, 수정하려면 함수 내에서 global 키워드를 사용해야 합니다.

전역변수의 실제 활용 사례

전역변수는 다음과 같은 상황에서 유용하게 활용됩니다.

  • 디버깅 목적: 프로그램 실행 중 특정 값의 변화를 추적할 때
  • 상태 관리: 프로그램 전체에서 공유해야 하는 상태 정보를 관리할 때
  • 설정 값 관리: 프로그램의 전역 설정을 저장하고 관리할 때
  • 카운터 구현: 여러 함수에서 공유해야 하는 카운팅 값을 관리할 때

전역변수 사용 시 주의사항

전역변수는 편리하지만 신중하게 사용해야 합니다. 과도한 전역변수 사용은 코드의 가독성을 떨어뜨리고 유지보수를 어렵게 만듭니다. 이에 다음 사항을 고려하세요.

  • 필요한 경우에만 사용: 전역변수는 정말 필요한 경우에 한정하여 사용합니다.
  • 명확한 변수 이름: 전역변수의 이름을 명확하게 지정하여 용도를 알기 쉽게 합니다.
  • 변수 최소화: 가능한 한 적은 수의 전역변수를 사용합니다.
  • 대안 검토: 전역변수 대신 클래스 변수나 함수 매개변수를 사용할 수 있는지 검토합니다.

코드 예제

아래는 전역변수와 global 키워드를 활용하는 간단한 예제입니다.

# 함수 외부에서 전역변수 선언
counter = 0

def increment():
    global counter  # 전역변수를 수정하기 위해 선언
    counter += 1
    print("현재 카운터 값:", counter)

def display():
    print("최종 카운터 값:", counter)

increment()  # 출력: 현재 카운터 값: 1
increment()  # 출력: 현재 카운터 값: 2
display()    # 출력: 최종 카운터 값: 2

이 예제는 counter 변수를 전역변수로 선언하고, 함수 내에서 global 키워드를 통해 수정하는 과정을 보여줍니다.

global 키워드를 사용하지 않아도 함수 안에서 읽기는 가능합니다. 하지만 이렇게 사용하면 디버깅이 어려워집니다. 그래서 함수 안에서 읽을 때도 global 키워드 사용을 추천합니다.


FAQ

Q1: 전역변수를 사용하지 않고도 데이터를 공유할 수 있나요?

A1: 네, 클래스 변수나 함수 매개변수를 사용하여 데이터를 공유할 수 있으며, 필요에 따라 디자인 패턴(예: 싱글톤)을 적용할 수도 있습니다.


Q2: global 키워드 없이 전역변수를 수정할 수 있나요?

A2: 아닙니다. 함수 내부에서 전역변수를 수정하려면 반드시 global 키워드를 사용해야 합니다. 그렇지 않으면 새로운 지역변수가 생성됩니다.


Q3: 전역변수를 남용하면 어떤 문제가 발생할 수 있나요?

A3: 코드의 가독성이 떨어지고, 디버깅 및 유지보수가 어려워질 수 있으며, 변수 값의 예측이 어려워지는 문제가 있습니다.


테리엇

Share
Published by
테리엇

Recent Posts

도쿄 헬기투어 가격과 코스, 후지산까지 90분이면 보입니다

도쿄에 또 가나요? 도쿄타워 전망대도, 시부야 스크램블 교차로도, 아사쿠사 센소지도 이미 본 분들이라면 다음 카드로…

1주 ago

김세의 프로필, 가로세로연구소 대표 구속까지 전말 정리

1. 김세의, 2026년 5월 26일 구속이라는 분기점 김세의 가로세로연구소 대표가 2026년 5월 26일 서울중앙지법에서 구속됐습니다.…

1주 ago

군체 정보 | 개봉 5일 만에 200만, 연상호가 만든 새 좀비의 정체

연상호 감독의 신작 영화 '군체'가 2026년 5월 21일 개봉 후 단 5일 만에 누적 관객…

2주 ago

에리카 윤 스미스 프로필, 서울 출생 25세 KLPGA 교포 신예

2026 KLPGA 투어 개막전인 리쥬란 챔피언십 미디어데이 사진을 본 분이라면 한 가지 의문이 드셨을 겁니다.…

2주 ago

정지원 아나운서 프로필, 남편·학력·발음 논란 한눈에

1. KBS 정지원 아나운서, 요즘 어디서 만나볼 수 있을까요 아침마다 KBS 2TV를 켜면 익숙한 얼굴이…

2주 ago

김아현(해초) 활동가 프로필, 이스라엘 2번 나포된 27세 여성의 정체

2026년 5월 22일 새벽, 인천국제공항 1터미널 입국장에 검은 티셔츠와 청바지 차림의 한 청년이 모습을 드러냈습니다.…

2주 ago