Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- riverpod
- UI/UX
- Clean Architecture
- JS
- java 콘솔 출력 차이
- 엡
- 자바 포맷 출력
- npm
- println
- develop
- firebase
- react
- DART
- 단축키
- lifecycle
- 앱심사
- printf
- Flutter
- 배포
- ListView
- nodejs
- scss
- unity
- 자바 출력 방식
- java 출력
- java
- JQ
- LLM
- 자바스크립트
- abap
Archives
- Today
- Total
guricode
[영화정보앱 만들기] 의존성 설정,dotenv 본문
플러터 심화 과제를 위해 영화정보 앱을 만들기로 했다.
과제에 필요한 의존성 설정부터 진행한다
의존성 추가
dependencies:
flutter:
sdk: flutter
flutter_riverpod: ^2.5.1 # 상태 관리. (ViewModel → UI 연결)
dio: ^5.5.0+1 # HTTP 요청. (TMDB API 통신)
freezed_annotation: ^2.4.1 # 불변 클래스 선언용 어노테이션
json_annotation: ^4.9.0 # JSON 직렬화 지원
flutter_dotenv: ^5.1.0 # .env 파일 읽기 (API 토큰 관리)
cached_network_image: ^3.3.1 # 이미지 캐싱 (포스터 성능 개선)
intl: ^0.19.0 # 날짜, 숫자 포맷 (개봉일 표시 등)
dev_dependencies:
build_runner: ^2.4.11 # 코드 자동 생성기 (freezed, json_serializable 실행용)
freezed: ^2.5.2 # 불변 클래스 생성
json_serializable: ^6.8.0 # JSON 직렬화 생성
flutter:
assets:
- .env # 환경변수 파일 포함
필요한 라이브러리들을 추가 후 flutter pub get을 실행하여 pubspec.lock에 고정해준다.
그 다음 TMDB에 회원가입하여 API키를 받아야하는데...

403 에러가 뜨며 가입이 안되고있다...
로컬회선문제인지 서버문제인지는 모르겠지만...이 부분은 내일 다시 확인하도록 하자..
api키를 받았다면 해야할 것들
프로젝트 루트에 .env 파일 작성
TMDB_TOKEN=eyJhbGciOi... # TMDB v4 Read Access Token
env.dart
- .env에서 값 읽기 전용 클래스.
class Env {
static String get tmdbToken {
final v = dotenv.env['TMDB_TOKEN'];
if (v == null || v.isEmpty) {
throw StateError('TMDB_TOKEN is missing. Set it in .env');
}
return v;
}
}
의존성 추가하고 flutter pub get을 했을때 riverpod 2.4.1 버전만 빼놓고 추가가되는 상황이 있었는데
pubspec에서 제거 후 flutter pub add flutter_riverpod을 실행하여 해결하였다.
왜 이것만 빼놓고 추가가됐는지..?
아무튼 api키를 관리하기위해 dotenv를 사용했다.
dotenv는 이런 민감정보들을 .env파일에 저장하고 실행시 해당값을 프로그램 내부에서 사용할수 있게 하는 역할을 한다.
dotenv.env는 Map 같은 역할을 한다.
.env → dotenv가 로드 → Map 형태 메모리에 저장 → 코드에서 dotenv.env['KEY']로 접근
main.dart에서 비동기로 아래 코드를 넣어 API가 파일을 잘 불러올수있는 상태인지 확인했다.
dotenv.load(fileName: ".env");

'앱 > Flutter&Dart' 카테고리의 다른 글
| CICD 관련 메모 (0) | 2025.08.29 |
|---|---|
| [영화정보앱 만들기-2] [트러블 슈팅] Dio 인터셉터 handler.next 누락으로 요청 영구 대기 (4) | 2025.08.27 |
| MVVM 패턴 연습 (3) | 2025.08.25 |
| [TIL] 20250819 - GoRouter,Responsive UI (0) | 2025.08.19 |
| Flutter ThemeExtension (2) | 2025.08.18 |