# Dart interview 예상 질문 100개
# 1. Dart의 주요 특징은 무엇인가요?
- Dart는 객체 지향 언어로, JIT(Just-In-Time) 및 AOT(Ahead-Of-Time) 컴파일을 지원합니다. 강력한 타입 시스템을 제공하며, Flutter에서 주로 사용됩니다.
# 2. Dart에서 var와 dynamic의 차이점은 무엇인가요?
var는 타입 추론을 통해 변수를 선언하며, 한번 지정된 타입을 변경할 수 없습니다.dynamic은 런타임에 타입을 결정하며, 타입 변경이 가능합니다.
# 3. Dart에서 final과 const의 차이점은 무엇인가요?
final은 변수에 한 번만 값을 할당할 수 있으며, 런타임에 값이 결정됩니다.const는 컴파일 타임에 값이 결정되며, 불변의 상수 값을 나타냅니다.
# 4. Dart에서 Future는 무엇이고 어떻게 사용하나요?
Future는 비동기 작업의 결과를 나타내는 객체로, 비동기 코드에서 값이 나중에 반환될 것을 나타냅니다.async/await키워드를 통해 비동기 작업을 처리할 수 있습니다.
# 5. Dart에서 Stream과 Future의 차이점은 무엇인가요?
Future는 하나의 값이 비동기적으로 반환되는 경우에 사용됩니다.Stream은 여러 개의 값이 비동기적으로 발생하는 경우에 사용됩니다.await for를 사용하여 스트림의 값을 처리할 수 있습니다.
# 6. Dart에서 async와 await의 역할은 무엇인가요?
async는 비동기 함수를 정의하며,await는 비동기 함수의 결과가 반환될 때까지 기다립니다. 이를 통해 비동기 작업을 동기처럼 작성할 수 있습니다.
# 7. Dart에서 null safety란 무엇인가요?
null safety는 변수에null값이 할당되지 않도록 보장하는 기능입니다. 이를 통해null로 인한 런타임 오류를 예방할 수 있습니다.
# 8. Dart에서 cascade notation을 설명해주세요.
- Cascade notation(
..)은 객체의 여러 속성이나 메서드를 체이닝하여 호출할 수 있는 기능입니다. 이를 통해 코드의 가독성과 간결성을 높일 수 있습니다.
# 9. Dart에서 mixin을 사용하는 이유와 예시를 보여주세요.
mixin은 클래스에 다른 기능을 추가할 수 있는 기능입니다. 다중 상속이 불가능한 Dart에서 재사용 가능한 코드를 클래스에 결합할 수 있도록 합니다.
# 10. Dart에서 is 연산자와 as 연산자의 차이점은 무엇인가요?
is는 객체가 특정 타입인지 확인하는 데 사용됩니다.as는 객체를 특정 타입으로 강제 형변환할 때 사용됩니다.
# 11. Dart에서 Set과 List의 차이점은 무엇인가요?
Set은 중복된 값을 허용하지 않는 컬렉션입니다.List는 순서가 있는 컬렉션으로, 중복된 값을 허용합니다.
# 12. Dart에서 factory constructor란 무엇인가요?
factory constructor는 클래스의 인스턴스를 반환하는 생성자로, 새로운 인스턴스를 생성하지 않고 기존 객체를 반환하거나 다른 생성자를 호출할 수 있습니다.
# 13. Dart에서 StreamController는 무엇인가요?
StreamController는Stream을 생성하고 이벤트를 추가하는 역할을 합니다. 이벤트를sink에 추가하여 스트림에 데이터를 전달할 수 있습니다.
# 14. Dart에서 late 키워드의 역할은 무엇인가요?
late는 변수가 나중에 초기화될 것임을 나타내는 키워드입니다.null safety와 함께 사용되어, 변수 초기화가 지연됨을 컴파일러에게 알립니다.
# 15. Dart에서 typedef의 용도는 무엇인가요?
typedef는 함수 타입을 별칭으로 정의할 때 사용됩니다. 이를 통해 함수 타입의 이름을 정의하고, 함수 타입을 간결하게 표현할 수 있습니다.
# 16. Dart에서 extension을 사용하여 클래스에 기능을 추가하는 방법은 무엇인가요?
extension을 사용하면 기존 클래스에 새로운 메서드를 추가할 수 있습니다. 이를 통해 클래스를 수정하지 않고도 새로운 기능을 확장할 수 있습니다.
# 17. Dart에서 null-aware operator는 어떻게 사용되나요?
null-aware operator(?.,??)는null값일 수 있는 객체를 안전하게 처리할 수 있도록 도와줍니다.?.는 객체가null이 아닌 경우에만 메서드를 호출하고,??는null일 경우 기본값을 제공할 수 있습니다.
# 18. Dart에서 int와 double의 차이점은 무엇인가요?
int는 정수 값을 나타내며, 소수점이 없는 숫자를 다룹니다.double은 실수 값을 나타내며, 소수점을 포함한 숫자를 다룹니다.
# 19. Dart에서 async*와 await*는 무엇인가요?
async*는 비동기 제너레이터로,Stream을 반환하는 비동기 함수를 정의합니다.await*는 비동기 제너레이터에서 값을 순차적으로 기다리며 처리할 때 사용됩니다.
# 20. Dart에서 assert는 무엇인가요?
assert는 디버깅 목적으로 조건이 참인지 확인하는 데 사용됩니다. 조건이 거짓일 경우AssertionError가 발생합니다.
# 21. Dart에서 num 타입은 무엇을 의미하나요?
num은int와double의 상위 타입으로, 숫자형 데이터를 다룰 때 사용됩니다.num은 정수와 실수를 모두 처리할 수 있습니다.
# 22. Dart에서 const와 final 객체의 차이점은 무엇인가요?
final객체는 런타임에 한 번만 값을 할당할 수 있으며, 값이 변경되지 않습니다.const객체는 컴파일 타임에 정의된 상수 값이어야 하며, 불변입니다.
# 23. Dart에서 async 함수 내에서 return을 사용하면 무엇이 반환되나요?
async함수 내에서return은Future를 반환합니다. 반환값은Future의 결과로 포장됩니다.
# 24. Dart에서 await와 yield의 차이점은 무엇인가요?
await는 비동기 함수에서 결과가 반환될 때까지 기다립니다.yield는 제너레이터 함수에서 값을 반환하며, 값을 반환하고 함수의 실행을 중지합니다.
# 25. Dart에서 Mixin과 Abstract Class의 차이점은 무엇인가요?
Mixin은 클래스에 기능을 재사용할 수 있게 해주는 방식으로, 다중 상속을 가능하게 합니다.Abstract Class는 클래스에서 상속해야 하는 메서드의 틀만 제공하고, 인스턴스를 생성할 수 없습니다.
# 26. Dart에서 super 키워드를 사용하는 방법은 무엇인가요?
super는 부모 클래스의 생성자나 메서드를 호출할 때 사용됩니다. 이를 통해 상속받은 클래스에서 부모 클래스의 기능을 활용할 수 있습니다.
# 27. Dart에서 await와 then의 차이점은 무엇인가요?
await는 비동기 코드에서 값을 기다리며 동기적인 코드처럼 작성할 수 있게 합니다.then은Future의 결과를 처리하는 콜백 함수를 등록하여 비동기적으로 처리합니다.
# 28. Dart에서 with 키워드를 사용하는 이유는 무엇인가요?
with는 믹스인(mixin)을 적용하여 클래스에 다른 기능을 추가할 때 사용됩니다. 이를 통해 다중 상속 없이 기능을 확장할 수 있습니다.
# 29. Dart에서 typedef를 사용하여 함수 타입을 정의하는 방법은 무엇인가요?
typedef를 사용하여 함수의 타입을 별칭으로 정의할 수 있습니다. 이를 통해 함수 타입을 좀 더 간결하게 표현할 수 있습니다.
# 30. Dart에서 rethrow와 throw의 차이점은 무엇인가요?
throw는 예외를 던지며, 예외를 명시적으로 발생시킬 때 사용됩니다.rethrow는 현재 처리 중인 예외를 다시 던지는 데 사용되며, 예외를 더 이상 처리하지 않고 호출한 곳으로 전달합니다.
# 31. Dart에서 is! 연산자의 용도는 무엇인가요?
is!는 객체가 특정 타입이 아닌지 확인하는 데 사용됩니다. 예를 들어,x is! String은x가String이 아닐 경우 참을 반환합니다.
# 32. Dart에서 @required와 required의 차이점은 무엇인가요?
@required는flutter에서 사용되며, 필수 매개변수를 표시하는 데 사용됩니다.required는 Dart 2.12 이상에서 null safety와 함께 사용되며, 함수 매개변수가 필수임을 나타냅니다.
# 33. Dart에서 final로 선언된 변수는 언제 값을 변경할 수 있나요?
final로 선언된 변수는 한 번만 값이 할당될 수 있습니다. 그러나 값이 초기화된 후, 변수에 다시 값을 할당하려면 오류가 발생합니다.
# 34. Dart에서 @override 어노테이션의 역할은 무엇인가요?
@override는 부모 클래스의 메서드를 재정의할 때 사용하는 어노테이션입니다. 컴파일러가 메서드가 부모 클래스를 올바르게 재정의하는지 확인하도록 돕습니다.
# 35. Dart에서 abstract 클래스는 무엇이며, 언제 사용하나요?
abstract클래스는 인스턴스를 생성할 수 없는 클래스입니다. 주로 자식 클래스에서 구현해야 하는 메서드를 정의할 때 사용됩니다.
# 36. Dart에서 factory constructor의 용도는 무엇인가요?
factory constructor는 객체를 생성하는 데 사용되는 특별한 생성자로, 새 인스턴스를 만들지 않고 기존 인스턴스를 반환할 수 있습니다.
# 37. Dart에서 assert와 debugger()의 차이점은 무엇인가요?
assert는 조건이false일 때AssertionError를 발생시킵니다. 주로 디버깅과 테스트 용도로 사용됩니다.debugger()는 코드 실행 중에 디버깅 세션을 시작하게 합니다.
# 38. Dart에서 Future와 Stream을 혼합해서 사용할 수 있나요? 예시를 들어 설명해주세요.
Future와Stream을 혼합할 수 있습니다. 예를 들어,Future로 결과를 기다린 후, 그 결과를Stream으로 전달하는 방식이 가능합니다.
# 39. Dart에서 spread operator는 무엇인가요?
spread operator(...)는 리스트나 맵을 다른 리스트나 맵에 확장하여 추가할 때 사용됩니다. 예를 들어,var newList = [...oldList];는oldList의 모든 요소를newList에 추가합니다.
# 40. Dart에서 null-aware spread operator는 어떻게 사용되나요?
null-aware spread operator(...?)는 리스트나 맵이null일 수 있는 경우,null이 아니면 해당 값을 확장합니다. 예를 들어,var newList = [...?oldList];는oldList가null이 아니면 확장하고,null이면 아무 것도 추가하지 않습니다.
# 41. Dart에서 const와 final을 객체에 적용할 때 차이점은 무엇인가요?
final은 객체가 한 번만 초기화될 수 있음을 보장하지만, 객체 내부의 상태는 변경할 수 있습니다. 반면,const는 객체 자체가 컴파일 타임에 완전히 고정되어 불변입니다.
# 42. Dart에서 late 변수의 용도는 무엇인가요?
late키워드는 변수의 초기화를 지연시킬 수 있게 해줍니다. 이 키워드를 사용하면null safety를 유지하면서도 변수의 초기화를 나중으로 미룰 수 있습니다.
# 43. Dart에서 @deprecated 어노테이션은 무엇을 의미하나요?
@deprecated는 해당 메서드나 클래스를 더 이상 사용하지 않도록 권장하는 어노테이션입니다. 주로 API 변경 시 사용됩니다.
# 44. Dart에서 super 키워드를 사용하여 부모 클래스의 생성자를 호출하는 방법은 무엇인가요?
super는 부모 클래스의 생성자를 호출할 때 사용됩니다. 예를 들어,super(param1, param2)와 같이 부모 클래스의 생성자를 호출할 수 있습니다.
# 45. Dart에서 extension을 활용하는 방법에 대해 설명해주세요.
extension은 기존 클래스에 새로운 기능을 추가할 수 있는 방법입니다. 예를 들어, 기존 클래스에 새로운 메서드를 추가하고 싶을 때 유용합니다. 예시extension StringReversal on String { String get reversed => this.split('').reversed.join(); }1
2
3
# 46. Dart에서 mixins와 extends의 차이점은 무엇인가요?
mixins는 클래스를 상속하지 않고 다른 클래스의 기능을 추가할 수 있게 해주는 방법입니다.extends는 클래스 상속을 통해 부모 클래스의 기능을 물려받는 방법입니다.
# 47. Dart에서 StreamController의 add와 addError의 차이점은 무엇인가요?
add는 스트림에 값을 추가합니다.addError는 스트림에 에러를 전달합니다.
# 48. Dart에서 sync*와 async* 제너레이터의 차이점은 무엇인가요?
sync*는 동기적으로 값을 생성하는 제너레이터로,Iterable을 반환합니다.async*는 비동기적으로 값을 생성하는 제너레이터로,Stream을 반환합니다.
# 49. Dart에서 Stream을 종료하는 방법은 무엇인가요?
Stream을 종료하려면StreamController의close()메서드를 호출합니다. 이를 통해 스트림의 수신을 중단하고 리소스를 해제할 수 있습니다.
# 50. Dart에서 Future.wait의 용도는 무엇인가요?
Future.wait는 여러 비동기 작업을 병렬로 실행하고, 모든 작업이 완료될 때까지 기다립니다. 이 메서드는 여러Future객체를 병렬로 처리할 때 유용합니다.
# 51. Dart에서 Function 타입을 사용할 때의 주의점은 무엇인가요?
Function타입은 모든 함수 타입을 나타내지만, 인자와 반환 타입을 명시적으로 정의하는 것이 좋습니다. 예를 들어,Function(int, int) => int와 같이 타입을 명확히 해주는 것이 좋습니다.
# 52. Dart에서 List와 Set의 주요 차이점은 무엇인가요?
List는 순서가 있는 컬렉션으로, 중복된 요소를 허용합니다.Set은 중복된 값을 허용하지 않으며, 순서가 없습니다.
# 53. Dart에서 rethrow와 throw의 차이점은 무엇인가요?
throw는 예외를 새로 던지는 데 사용되며, 사용자 정의 예외를 던질 수 있습니다.rethrow는 기존 예외를 다시 던져서 예외를 상위 호출 스택으로 전달합니다.
# 54. Dart에서 try-catch 블록에서 on과 catch의 차이점은 무엇인가요?
on은 특정 타입의 예외만을 처리할 때 사용됩니다.catch는 예외 타입에 관계없이 모든 예외를 처리할 때 사용됩니다.
# 55. Dart에서 num 타입은 무엇인가요?
num은int와double의 상위 타입으로, 숫자형 데이터를 처리할 수 있습니다.num타입은 정수와 실수를 모두 처리할 수 있습니다.
# 56. Dart에서 async 함수와 일반 함수의 차이점은 무엇인가요?
async함수는 비동기적으로 작업을 처리하며Future를 반환합니다. 일반 함수는 동기적으로 작업을 처리하고, 값을 즉시 반환합니다.
# 57. Dart에서 Future.delayed의 사용 사례를 설명해주세요.
Future.delayed는 지정된 시간 후에 실행되는 비동기 작업을 예약하는 데 사용됩니다. 예를 들어,Future.delayed(Duration(seconds 2))는 2초 후에 특정 작업을 실행합니다.
# 58. Dart에서 async와 await을 사용할 때의 유의사항은 무엇인가요?
async함수는 항상Future를 반환해야 하며,await은Future가 완료될 때까지 기다리기 위해 사용됩니다.await은 반드시async함수 내에서만 사용 가능합니다.
# 59. Dart에서 async 함수에서 return 값을 반환하면 무엇이 반환되나요?
async함수에서return은Future객체를 반환합니다. 반환된 값은Future로 감싸져 있으며, 비동기 작업이 완료될 때 결과를 받을 수 있습니다.
# 60. Dart에서 async와 await을 사용할 때의 유의사항은 무엇인가요?
async함수는 항상Future를 반환하고,await은 해당Future의 완료를 기다립니다.await는 반드시async함수 내에서만 사용 가능합니다.
# 61. Dart에서 const와 final의 차이점은 무엇인가요?
const는 컴파일 타임에 값이 결정되며, 변경 불가능한 상수를 정의할 때 사용됩니다.final은 런타임에 값이 결정되며, 한 번만 값을 할당할 수 있는 변수입니다.
# 62. Dart에서 static 키워드는 무엇을 의미하나요?
static키워드는 클래스의 인스턴스가 아니라 클래스 자체에 속하는 멤버를 정의하는 데 사용됩니다.static멤버는 객체 인스턴스를 생성하지 않고 접근할 수 있습니다.
# 63. Dart에서 typedef의 용도는 무엇인가요?
typedef는 함수 타입에 이름을 부여하는 데 사용됩니다. 이를 통해 함수 시그니처를 명확하게 정의할 수 있습니다.
# 64. Dart에서 Iterable과 List의 차이점은 무엇인가요?
Iterable은 순회할 수 있는 객체를 의미하며,List는 인덱스로 접근 가능한 배열입니다.List는Iterable의 서브타입입니다.
# 65. Dart에서 null safety란 무엇인가요?
nullsafety는 변수에null값을 할당할 수 없도록 하는 기능으로, 코드에서null로 인한 오류를 예방할 수 있습니다.late,?,required등을 사용하여null을 처리할 수 있습니다.
# 66. Dart에서 late 키워드는 무엇을 의미하나요?
late키워드는 변수의 값을 나중에 할당하겠다고 명시하는 키워드입니다. 변수는 선언 시 초기화되지 않지만, 실제로 사용될 때 값을 할당합니다.
# 67. Dart에서 nullable 타입과 non-nullable 타입의 차이점은 무엇인가요?
nullable타입은null을 허용하는 타입입니다.non-nullable타입은null을 허용하지 않는 타입입니다. Dart는nullsafety를 통해 이들을 구분합니다.
# 68. Dart에서 Future와 Stream의 차이점은 무엇인가요?
Future는 하나의 값을 비동기적으로 반환하는 객체입니다.Stream은 여러 값을 비동기적으로 반환하는 객체입니다.
# 69. Dart에서 await와 yield의 차이점은 무엇인가요?
await는 비동기 함수에서 비동기 작업이 완료될 때까지 기다리는 키워드입니다.yield는 제너레이터 함수에서 값을 반환하는 데 사용되며,Stream또는Iterable을 생성할 때 사용됩니다.
# 70. Dart에서 factory 키워드는 무엇인가요?
factory키워드는 클래스를 생성하는 팩토리 메서드를 정의하는 데 사용됩니다. 이를 통해 객체를 반환할 때 특별한 로직을 처리하거나 캐싱할 수 있습니다.
# 71. Dart에서 mixins를 사용하는 이유와 그 사용법은 무엇인가요?
mixins는 여러 클래스에서 공통된 기능을 재사용하는 방법입니다.with키워드를 사용하여 클래스에 여러mixin을 적용할 수 있습니다.
# 72. Dart에서 extension을 사용해 기존 클래스를 확장하는 방법은 무엇인가요?
extension을 사용하면 기존 클래스에 새로운 메서드나 프로퍼티를 추가할 수 있습니다. 이를 통해 클래스를 수정하지 않고도 기능을 확장할 수 있습니다.
# 73. Dart에서 deferred 키워드는 무엇을 의미하나요?
deferred키워드는 코드 분할 및 지연 로딩을 위한 키워드로, 특정 라이브러리를 필요할 때까지 로드하지 않도록 할 수 있습니다.
# 74. Dart에서 assert 키워드를 사용하는 용도는 무엇인가요?
assert는 디버깅 중에 조건이 참인지 검사하는 데 사용됩니다. 조건이 거짓일 경우AssertionError가 발생합니다.
# 75. Dart에서 const와 final 변수의 사용 예시를 설명해주세요.
const는 컴파일 타임에 결정되는 상수를 선언할 때 사용합니다.final은 런타임에 한 번만 값을 할당할 수 있는 변수를 선언할 때 사용합니다.
# 76. Dart에서 operator를 오버로딩하는 방법은 무엇인가요?
- Dart에서는
operator키워드를 사용하여 연산자 오버로딩을 할 수 있습니다. 예를 들어,+연산자를 오버로딩하려면operator +(other)형태로 정의할 수 있습니다.
# 77. Dart에서 bool 타입을 사용하는 예시를 들어보세요.
bool타입은 참(True)과 거짓(False) 값을 나타냅니다. 예를 들어,bool isActive = true;와 같이 사용됩니다.
# 78. Dart에서 async와 await를 사용할 때, 예외 처리는 어떻게 하나요?
async함수 내에서await을 사용하여 비동기 작업을 기다린 후 예외를try-catch블록으로 처리할 수 있습니다.await이 예외를 던지면, 이를catch블록에서 처리할 수 있습니다.
# 79. Dart에서 setState() 메서드를 사용하는 이유는 무엇인가요?
setState()는 Flutter의 상태 관리에서 사용되는 메서드로, 상태가 변경되었음을 Flutter에게 알리고 해당 위젯을 다시 렌더링합니다.
# 80. Dart에서 getter와 setter는 어떻게 사용하나요?
getter는 객체의 속성 값을 읽을 때 사용하고,setter는 객체의 속성 값을 설정할 때 사용됩니다. 예를 들어,String get name => _name;과set name(String name) => _name = name;과 같이 정의할 수 있습니다.
# 81. Dart에서 Future.value와 Stream.value의 차이점은 무엇인가요?
Future.value는 단일 값을 반환하는Future객체를 생성합니다.Stream.value는 단일 값을 반환하는Stream객체를 생성합니다.
# 82. Dart에서 Function.apply 메서드는 무엇인가요?
Function.apply는 주어진 함수에 인자를 배열 형태로 전달하여 실행하는 메서드입니다.
# 83. Dart에서 void 반환 타입의 함수는 무엇을 의미하나요?
void는 함수가 값을 반환하지 않음을 나타냅니다.void반환 타입을 가진 함수는 결과를 반환하지 않고 단지 작업을 수행합니다.
# 84. Dart에서 default 키워드는 무엇을 의미하나요?
- Dart에서
default는 선택적 매개변수에 기본값을 설정할 때 사용됩니다. 함수 매개변수가 제공되지 않으면 기본값을 사용합니다.
# 85. Dart에서 num 타입은 무엇인가요?
num은int와double타입의 상위 타입으로, 숫자 값을 처리하는 데 사용됩니다.
# 86. Dart에서 String의 substring 메서드는 어떻게 작동하나요?
substring은 주어진 범위 내에서 문자열을 잘라서 반환하는 메서드입니다. 예를 들어,str.substring(0, 5)는 문자열의 처음 5글자를 반환합니다.
# 87. Dart에서 is와 as 키워드의 차이점은 무엇인가요?
is는 객체가 특정 타입인지 확인하는 데 사용됩니다.as는 객체를 특정 타입으로 형변환하는 데 사용됩니다.
# 88. Dart에서 List의 map 메서드는 어떻게 사용되나요?
map메서드는 각 항목에 대해 주어진 함수를 적용하여 새로운 리스트를 반환합니다. 예List<int> numbers = [1, 2, 3]; var doubled = numbers.map((n) => n * 2);
# 89. Dart에서 Set과 Map의 차이점은 무엇인가요?
Set은 중복을 허용하지 않는 집합입니다.Map은 키-값 쌍을 저장하는 데이터 구조입니다.
# 90. Dart에서 for-in과 forEach의 차이점은 무엇인가요?
for-in은 컬렉션의 각 항목을 순차적으로 반복합니다.forEach는 컬렉션의 각 항목에 대해 제공된 콜백 함수를 실행합니다.
# 91. Dart에서 await을 사용하지 않고 Future를 반환하는 방법은 무엇인가요?
async함수에서await을 사용하지 않고Future를 반환하려면,Future.value()나Future.delayed()등을 사용할 수 있습니다.
# 92. Dart에서 rethrow와 throw의 차이점은 무엇인가요?
throw는 새로운 예외를 던질 때 사용되며,rethrow는 이미 발생한 예외를 다시 던질 때 사용됩니다.
# 93. Dart에서 Optional parameters와 Named parameters의 차이점은 무엇인가요?
Optional parameters는 함수의 매개변수를 선택적으로 받을 수 있게 해주는 방식입니다.Named parameters는 매개변수를 이름을 통해 전달할 수 있게 해줍니다.
# 94. Dart에서 this 키워드의 용도는 무엇인가요?
this키워드는 현재 객체의 인스턴스를 참조하는 데 사용됩니다. 클래스 내에서 다른 멤버 변수나 메서드에 접근할 때 사용됩니다.
# 95. Dart에서 const 생성자의 사용 이유는 무엇인가요?
const생성자는 객체를 컴파일 타임에 미리 생성할 수 있게 해줍니다. 이를 통해 효율적인 메모리 사용이 가능하고, 불변 객체를 생성하는 데 유용합니다.
# 96. Dart에서 throw와 throw()는 같은 의미인가요?
throw는 예외를 던지는 키워드이며,throw()는throw키워드 뒤에 예외를 던지는 방식으로, 문법적 차이만 있습니다.throw()는 올바르지 않으며,throw를 사용해야 합니다.
# 97. Dart에서 await을 사용할 때 중요한 점은 무엇인가요?
await은 비동기 작업이 완료될 때까지 기다리며, 비동기 함수 내에서만 사용 가능합니다.await은Future객체에만 사용할 수 있습니다.
# 98. Dart에서 Set에 중복된 값을 추가하려고 할 때 어떻게 되나요?
Set은 중복을 허용하지 않기 때문에 중복된 값을 추가하려고 하면 값이 추가되지 않습니다.
# 99. Dart에서 List의 addAll 메서드는 무엇을 하나요?
addAll은 다른 컬렉션의 모든 요소를 현재List에 추가하는 메서드입니다.
# 100. Dart에서 ! 연산자는 무엇을 의미하나요?
!는 null 안전성을 무시하고 해당 값이null이 아님을 보장하는 연산자입니다. 이를 사용하면null값을 허용하지 않는 변수에 대해 강제로 값을 처리할 수 있습니다.