다른 언어에선 변수,함수,클래스와 같은 구성 요소를 선언할 때 public.private 등의 접근 제한자 access modifier를 추가해 어느 범위까지 접근할 수 있는지 지정할 수 있는데, 다트는 이러한 접근 제한자를 제공하지 않는다.

즉, public 상태다.

 

하지만 다른 다트 파일에서 사용 못하게 하는 방법이 있는데 밑줄을 사용하는 것이다.

 

아래는 'my_class.dart'라는 Dart파일 내에 있는 코드다. '_privateVariable'와 '_privateMethod()는 언더스코어로 시작하기에 외부에서 접근할 수 없다.

// my_class.dart
class MyClass {
String publicVariable = 'I am public!';
String _privateVariable = 'I am private.';

void publicMethod() {
print('This is a public method.');
}

void _privateMethod() {
print('This is a private method.');
}
}

이제 'main.dart'라는 다른 Dart 파일에서 위의 MyClass를 사용하려고 한다.

// main.dart
import 'my_class.dart';

void main() {
  var myObject = MyClass();
  
  print(myObject.publicVariable); // 출력: I am public!
  myObject.publicMethod(); // 출력: This is a public method.

  // 아래의 코드는 컴파일 에러를 발생
  // print(myObject._privateVariable); // 에러
  // myObject._privateMethod(); // 에러
}

myObject._privateVariable나 myObject._privateMethod()에 접근하려고 하면 Dart 컴파일러는 에러를 발생시킨다. 이들은 my_class.dart 파일 내에서만 접근 가능하기 때문이다.

'Flutter & Dart' 카테고리의 다른 글

Flutter 특징 살펴보기  (0) 2023.09.07

다른 크로스 플랫폼 프레임워크보다 늦게 나왔음에도 불구하고, 플러터가 개발자들에게 인기를 끈 이유는 무엇이었을까? 

< 크로스 플랫폼 프레임워크 >

플러터의 프레임워크와 엔진이 여러 플랫폼에 똑같이 적용되므로 플러터로 만든 애플리케이션은 여러 가지 플랫폼에서 동작할 수 있다.

 

< 다트 언어로 개발 > 

플러터 앱은 다트 라는 소프트웨어 언어로 작성한다. Dart는 크로스 플랫폼을 목적으로 만든 언어라서 자연스럽게 플러터 앱 개발 언어로 채택되었다. 

 

< 뛰어난 성능, 강력한 애니메이션 기법 > 

플러터로 개발한 앱은 네이티브 앱의 성능만큼 뛰어나다. 크로스 플랫폼 프레임워크의 사상은 멋지지만 항상 성능 문제 때문에 개발자를 주저하게 만들었다. 프런트엔드 애플리케이션의 성능은 화면 렌더링(출력) 속도가 대부분을 차지하며 여기에는 앱을 이용하는 사용자가 이벤트에 반응하는 속도도 포함이다. 앱이 아무리 멋진 화면에 좋은 콘텐츠를 제공해도 화면 출력이 느리면 외면받을 수 밖에 없다.

 

 

'Flutter & Dart' 카테고리의 다른 글

외부 사용 제한하기  (0) 2023.09.07

+ Recent posts