패스잇
모바일 개발 · 심화

Flutter 앱에서 Android/iOS 네이티브 기능 중 Dart에서 직접 지원하지 않는 하드웨어 접근이나 고성능 라이브러리 연동이 필요한 경우, Platform Channels와 Dart:ffi 중 어떤 기술을 선택할 것이며, 그 선택의 기준과 각각의 장단점을 비교 설명하십시오. 특히, Dart:ffi 사용 시 메모리 관리 및 타입 매핑에 대한 고려사항은 무엇입니까?

힌트 · Platform Channels는 비동기 메시지 기반 통신이며, Dart:ffi는 C/C++ 라이브러리에 직접 접근합니다. 성능, 복잡성, 지원 플랫폼, 그리고 메모리 관리가 주요 선택 기준이 됩니다.

Platform ChannelsDart:ffi성능메모리 관리타입 안전성

모범답안

음, Flutter 앱에서 네이티브 기능을 사용해야 할 때 Platform Channels와 Dart:ffi 중 선택은 상황에 따라 달라집니다.

Platform Channels는 비교적 구현이 간단하고, Android/iOS 네이티브 코드와 비동기 메시지 방식으로 통신합니다. 따라서 복잡하지 않은 기능이나 UI 관련 작업에 적합합니다. 하지만 데이터 직렬화/역직렬화 과정 때문에 성능 오버헤드가 발생할 수 있습니다.

Dart:ffi는 C/C++ 라이브러리를 직접 호출하여 성능이 중요한 작업에 유리합니다. 예를 들어, 이미지 처리나 복잡한 계산에 적합하죠. 하지만 메모리 관리를 직접 해야 하고, 타입 매핑에 신경 써야 합니다. 특히 Dart의 Garbage Collector가 관리하지 않는 메모리를 직접 해제해야 메모리 누수를 방지할 수 있습니다. 또한, C/C++ 타입과 Dart 타입을 정확히 매핑하지 않으면 예상치 못한 오류가 발생할 수 있습니다.

결론적으로, 간단한 기능은 Platform Channels, 고성능이 필요한 복잡한 기능은 Dart:ffi를 선택하는 것이 좋습니다. Dart:ffi를 사용할 때는 메모리 관리와 타입 안전성에 특히 주의해야 합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Flutter / Dart 면접 질문

← Flutter / Dart 면접 질문 전체 보기