[flutter] get_it과 SSL/TLS 연결

이번에는 SSL/TLS 프로토콜을 사용하여 안전한 통신을 구현하고, 의존성 주입을 위해 get_it 패키지를 사용하는 방법에 대해 알아보겠습니다. 이 포스트에서는 Flutter 애플리케이션에서 RESTful API와 통신할 때 SSL/TLS 연결을 설정하는 과정과 get_it 패키지를 활용하여 의존성 주입을 하는 방법을 다뤄보겠습니다.

SSL/TLS 연결 설정

안드로이드 애플리케이션의 경우, res\ 디렉토리에 network_security_config.xml 파일을 생성하여 SSL/TLS 연결을 설정합니다. 이 파일에는 신뢰할 수 있는 인증 기관의 인증서를 등록하고 네트워크 요청을 보낼 때 사용할 보안 정책을 정의할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">your-api-domain.com</domain>
        <trust-anchors>
            <certificates src="@raw/your_ca_cert"/>
        </trust-anchors>
     </domain-config>
</network-security-config>

위의 예시에서 your-api-domain.com은 요청을 보낼 API 도메인을 나타내며, your_ca_cert는 애플리케이션 내부 raw\ 디렉토리에 저장된 CA 인증서를 가리킵니다.

아이폰의 경우 Info.plist에 ATS(앱 전송 보안) 설정을 통해 SSL/TLS 연결을 구성할 수 있습니다. 자세한 내용은 공식 문서를 참고하세요.

get_it 패키지를 이용한 의존성 주입

의존성 주입은 애플리케이션 개발에서 핵심적인 부분 중 하나입니다. get_it 패키지는 service locator 디자인 패턴을 기반으로 한 의존성 주입을 간편하게 구현할 수 있도록 도와줍니다.

import 'package:get_it/get_it.dart';

GetIt getIt = GetIt.instance;

void setupLocator() {
  // Register your dependencies here
  getIt.registerSingleton<ApiService>(ApiService());
  getIt.registerFactory<AuthService>(() => AuthService());
}

위의 예시에서 ApiServiceAuthService를 get_it의 registerSingletonregisterFactory를 통해 등록하였습니다. 이후에는 애플리케이션 내에서 getIt을 통해 등록한 클래스의 인스턴스를 간편하게 얻을 수 있습니다.

결론

SSL/TLS 연결을 설정하여 안전한 통신을 구현하고, get_it 패키지를 활용하여 간단한 의존성 주입을 구현하는 방법에 대해 살펴보았습니다. 이러한 방법을 통해 애플리케이션의 보안성을 높이고, 유지보수성을 향상시킬 수 있습니다.

다음 포스트에서는 get_it을 이용한 Mock 테스트 및 디버깅에 대해 자세히 알아보겠습니다.

참고 문헌

이상이었습니다. 언제든 질문이 있으시면 부담 없이 물어봐주세요.