[Flutter] flutter_dotenv 로 .env 파일 적용해보자

향신료·2023년 11월 1일
0

🤔 .env 파일이 뭐죠?


앱의 각종 설정 정보를 저장할 때 사용되는 텍스트 파일로, 서버 환경 옵션이나 API KEY와 같이 민감하거나 노출되어서는 안되는 설정을 저장하여 사용하는 데 도움이 됩니다.


일반적으로 파일명은 ‘ .env ’ 로 설정하며 내부 값은 키 - 값으로 구성되어 있음과 동시에 해당 파일은 숨김 파일로 처리되기에 탐색기에서 보이지 않습니다.



내부 값 예시

API_KEY='api_key'
SERVER_MODE='product'




패키지 가져오기


dependencies:
  flutter:
    sdk: flutter
  flutter_dotenv: ^x.x.x  # x.x.x는 패키지 버전입니다.

pubspec.yaml 파일에 flutter_dotenv 패키지를 추가한 후 flutter pub get 명령를 통해 패키지를 가져옵니다.







패키지 설정하기



.env 파일 제작하기

API_KEY='api_key'
SERVER_MODE='product'

원하는 프로젝트 파일 속에 .env 파일을 생성하고 내부에 필요한 변수를 작성합니다.

해당 변수명과 값은 이후 Map<String, String>의 형식으로 사용됩니다.



.env 파일 로드 하기

import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

Future<void> main() async {
  await dotenv.load(fileName: '자신의 .env 파일 위치');
	// ex) dotenv.load(fileName: 'assets/config/.env')
  runApp(MyApp());
}

.env 파일을 사용하기 위해서는 패키지를 통해 해당 파일을 먼저 가져와야만 합니다.

해당 작업을 진행하지 않는다면 오류가 발생하므로, 위와 같이 앱 시작 시 main.dart 파일에서 로드를 설정해 줍니다.




⚠️  아래와 같이 `pubspec.yaml` 파일에서 assets을 설정해줘야만 합니다.
assets:
    - assets/config/.env






.env 설정 사용하기


import 'package:flutter_dotenv/flutter_dotenv.dart';

void getServerMode(){
	String serverMode = dotenv.env['SERVER_MODE'];
	
	print("now server mode is $serverMode");
}


위의 과정을 전부 거쳤다면 이후에는 dotenv.env[’원하는 설정 KEY 값’] 을 통해 .env 값을 불러와 사용 가능합니다.









해당 패키지 깃허브 README.md 문서에 test 혹은 Null safety 등 더욱 정교한 사용 정보들이 있으니 필요에 따라 아래 문서를 읽으시는 것도 추천드립니다.

https://github.com/java-james/flutter_dotenv

profile
드문드문 기초 정보를 올리는 블로그

1개의 댓글

comment-user-thumbnail
2024년 1월 16일

크롬 네트워크 탭에서 {도메인}/assets/assets/config/.env 파일이 다 노출되는거 같은데요? ㅠㅠ 이럴땐 어떻게 해결할까요 아시는 분 댓글 부탁드립니다..

답글 달기