본문 바로가기
CODE/Flutter

[Flutter] env(환경 변수) 설정하기

by Nuridal_class 2023. 12. 20.
728x90
728x90

 env를 왜 설정할까?

개발하다 보면 api key를 그냥 복붙으로 쓰다가 github에 그대로 올려서 난감한 상황을 경험을 해봤을 수도 있다!
(필자는 경험을 해봤기 때문에 ㅎㅎ😂)
이런 상황을 겪지 않았으면 하는 마음으로 이번 포스팅을 하게 되었다

 

 env 란?

env란 환경변수 파일을 의미한다
개발을 하고 나서 github에 공개적으로 올릴때나 또는 배포할 때 DB 비밀번호, 서버 URL, API Key 등
외부로 알려지면 큰일나는 정보들을 모아둘 때 주로 사용하게 된다

 

 env 파일 만들기

간단하게 프로젝트 루트 상에서 .env 파일을 만들면 된다
vscode에서 만들면 아래와 같이 보일 것이다

.env file create

 

다음은 flutter에서 env 파일을 쉽게 사용하라고 패키지가 하나 있으니 사용하자!
명령어는 flutter pub add flutter_dotenv
 

flutter_dotenv | Flutter Package

Easily configure any flutter application with global variables using a `.env` file.

pub.dev

 

설치를 했으면 pubspec.yaml 파일에. env 파일을 프로젝트에서 읽을 수 있도록 설정해 줍니다
아래의 사진과 같이 설정해 주면 됩니다
그러고 나면 이제 . env 파일에 입력한 값을 사용할 준비가 되었습니다

 

 env 파일 설정

.env 파일 안에 입력을 하는데
키=값 쌍으로 입력을 해야 합니다
Map <String, String>이며 간단하게는 ["KEY"]="value" 이렇게 반환을 합니다
//📲 실제 값을 적어서 넣어주시면 됩니다
PROJECT_URL='---  input your project url ---'
PROJECT_API_KEY='---  input your project api key ---'​

 

 

dotenv 사용하기

파일설정을 해주었으면 dotenv.get을 사용해 키로 값을 가져오는 방식입니다
 String url = dotenv.get("PROJECT_URL"),
 String key = dotenv.get("PROJECT_API_KEY"),
💡 이렇게 사용하면 되는가? 위에 코드대로 사용한다면
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Instance of 'NotInitializedError'
이러한 오류를 맞이할 것이다
이유는 초기화를 안 해주었기 때문인데 해결방법은 코드 한 줄만 추가해 주면 된다
그 코드 한 줄은 dotenv.load()입니다
 void getEnv() async{
 	//📲 dotenv을 가져와주는 코드 한줄이 필요하다
 	await dotenv.load();
    	String url = dotenv.get("PROJECT_URL"),
 	String key = dotenv.get("PROJECT_API_KEY"),
 }

 

 . gitgnore에. env 등록

이렇게 했으니 보안이 되었구나 하고 git push를 하면 큰일 납니다
. env 파일도 같이 올라가게 되면 지금까지 한 것이 헛수고가 되기 때문에 
꼭 꼭!. gitgnore에. env 파일을 등록해 줍니다!!

.env file .gitgnore register

 

다음에 git push를 해주면 github에. env 파일은 빼고 등록이 된 것을 볼 수 있습니다

git push .gitgnore


 

이렇게 보안에 민감한 정보를 Flutter에서는 어떻게 저장하고
github에 올릴 때 어떻게 해야 하는지 까지 알아보았습니다
우리 개발 초보분들! 꼭 실수하지 말고 행복한 개발 합시다!!
그럼 코딩이 쉬워지는 날까지!!!

728x90
300x250