플러터 변수 범위: 심층 가이드 - 로컬 vs 글로벌 변수

2024. 6. 19. 23:33Flutter/Flutter Programming

반응형

플러터는 Google에서 개발한 오픈 소스 모바일 UI 프레임워크로, 다양한 기능과 강력한 성능을 제공하며 빠르게 인기를 얻고 있습니다.

플러터 앱 개발에서 변수는 데이터를 저장하고 관리하는 데 중요한 역할을 합니다.

플러터에는 두 가지 기본적인 변수 범위 유형인 로컬 변수글로벌 변수가 있으며, 각각 다르게 사용됩니다.

1. 변수 범위 개요

변수 범위는 변수를 어디에서 선언하고 어디까지 접근할 수 있는지를 정의합니다. 플러터에서 변수 범위는 다음과 같이 두 가지로 나뉩니다.

  • 로컬 변수: 함수나 블록 내에서만 유효한 변수입니다. 함수나 블록을 벗어나면 해당 변수에 접근할 수 없습니다.
  • 글로벌 변수: 앱 전체에서 어디서든 접근 가능한 변수입니다.

2. 로컬 변수

로컬 변수는 함수나 블록 내에서만 유효한 변수입니다. 즉, 함수나 블록을 벗어나면 해당 변수에 접근할 수 없습니다. 로컬 변수는 일반적으로 다음과 같은 경우에 사용됩니다.

  • 함수 매개변수: 함수에 전달되는 값을 저장하는 데 사용됩니다.
  • 지역 변수: 함수 내에서만 사용되는 변수를 저장하는 데 사용됩니다.
  • for 루프 반복 변수: 루프 반복 횟수를 제어하는 데 사용됩니다.

장점:

  • 코드 가독성 향상: 변수 범위가 명확하여 코드를 이해하기 쉽습니다.
  • 메모리 관리 효율성 향상: 사용하지 않는 변수가 메모리에 남아 있지 않아 메모리 사용량을 줄일 수 있습니다.
  • 이름 충돌 방지: 동일한 이름의 변수가 서로 다른 함수나 블록에서 사용될 수 있어 이름 충돌을 방지할 수 있습니다.

단점:

  • 함수나 블록 외부에서 접근 불가: 다른 함수나 블록에서 로컬 변수를 사용하려면 매개변수로 전달하거나 전역 변수를 사용해야 합니다.

사용 예시

void main() {
  // 함수 내 로컬 변수
  void showMessage() {
    String message = "Hello, World!";
    print(message);
  }

  showMessage();

  // 블록 내 로컬 변수
  for (int i = 0; i < 10; i++) {
    print(i);
  }
}

3. 글로벌 변수

글로벌 변수는 앱 전체에서 어디서든 접근 가능한 변수입니다. 즉, 함수나 블록 선언 위치와 관계없이 어디에서든 해당 변수를 사용하고 변경할 수 있습니다. 글로벌 변수는 일반적으로 다음과 같은 경우에 사용됩니다.

  • 앱 전체에서 공유되는 데이터 저장: 앱 설정 정보, 사용자 정보 등 앱 전체에서 공유되는 데이터를 저장하는 데 사용됩니다.
  • 상수 선언: 변경되지 않는 값을 저장하는 데 사용됩니다.

장점:

  • 편리한 접근성: 앱 어디서든 변수에 쉽게 접근하고 변경할 수 있습니다.

단점:

  • 코드 가독성 저하: 변수 범위가 명확하지 않아 코드를 이해하기 어려울 수 있습니다.
  • 메모리 관리 어려움: 사용하지 않는 변수가 메모리에 남아 있을 수 있어 메모리 사용량이 증가할 수 있습니다.
  • 이름 충돌 가능성 증가: 동일한 이름의 변수가 서로 다른 파일에 선언될 수 있어 이름 충돌을 일으킬 수 있습니다.

사용 예시

// 전역 변수 선언
int globalCount = 0;

void main() {
  // 전역 변수 사용
  print(globalCount);

  // 전역 변수 변경
  globalCount++;

  // 다른 함수에서 전역 변수 사용
  showGlobalCount();
}

void showGlobalCount() {
  print(globalCount);
}
 

위 예시에서

  • globalCount 변수는 전역 변수입니다.
  • main 함수와 showGlobalCount 함수 모두 globalCount 변수에 접근하고 변경할 수 있습니다.
  • globalCount 변수는 앱 전체에서 유지되므로, showGlobalCount 함수가 호출될 때마다 변경된 값을 출력합니다.

4.  글로벌 변수 사용 가이드라인

  • 기본적으로 로컬 변수 사용: 변수는 가능한 한 로컬 변수로 선언하고 사용해야 합니다.
  • 글로벌 변수는 신중하게 사용: 꼭 필요한 경우에만 글로벌 변수를 사용하고, 사용하지 않는 변수는 제거해야 합니다.
  • 변수 이름 명확하게 설정: 변수 이름을 명확하고 의미 있게 설정하여 코드 가독성을 높여야 합니다.
  • 상수 사용: 변경되지 않는 값은 상수로 선언해야 합니다.

5. 로컬 변수 vs 글로벌 변수 사용 가이드라인

  • 기본적으로 로컬 변수 사용: 변수는 가능한 한 로컬 변수로 선언하고 사용해야 합니다.
  • 글로벌 변수는 신중하게 사용: 꼭 필요한 경우에만 글로벌 변수를 사용하고, 사용하지 않는 변수는 제거해야 합니다.
  • 변수 이름 명확하게 설정: 변수 이름을 명확하고 의미 있게 설정하여 코드 가독성을 높여야 합니다.
  • 상수 사용: 변경되지 않는 값은 상수로 선언해야 합니다.

6. 추가 고려 사항

  • 상태 관리: 앱 상태를 관리하기 위해서는 BLoC, Provider, Redux와 같은 상태 관리 라이브러리를 사용하는 것이 좋습니다.
  • 테스트: 코드 작성 후에는 단위 테스트를 통해 변수 사용 및 변경 방식을 검증해야 합니다.

7. 결론

플러터에서 로컬 변수와 글로벌 변수를 적절하게 사용하는 것은 코드 가독성, 메모리 관리, 이름 충돌 방지를 위해 중요합니다.

변수 사용 가이드라인을 따라 앱 개발 효율성을 높이고, 유지 관리 가능한 코드를 작성하시기 바랍니다.

6. 마무리

이 블로그 게시물에서는 플러터에서 로컬 변수와 글로벌 변수에 대해 자세히 살펴보았습니다.

변수 범위의 개념, 각 변수 유형의 장단점, 사용 가이드라인 등을 다루었습니다.

플러터 변수 범위에 대한 이해를 바탕으로 더욱 효율적이고 유지 관리 가능한 플러터 앱을 개발할 수 있기를 바랍니다.

 

* 전 페이지에서 넘어온 파라미터는 로컬 변수와 비슷한 특성을 가지고 있습니다.

 

 

수발가족을 위한 일기장 “나비일기장

 

https://play.google.com/store/apps/details?id=com.maccrey.navi_diary_release

 

구글플레이 앱 배포의 시작! 비공개테스트 20명의 테스터모집을 위한 앱 "테스터 쉐어"

 

https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

카카오톡 오픈 채팅방

https://open.kakao.com/o/gsS8Jbzg

 

 

 

반응형