diff --git a/public/images/academy/env-management/1.svg b/public/images/academy/env-management/1.svg new file mode 100644 index 00000000..0be24659 --- /dev/null +++ b/public/images/academy/env-management/1.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + .env + + + + + + + + + + + + + + + + + + + + + + + + + + MNG + + + + + + + + + + + + API + + + + + + + + + + + React + + + + 환경 변수 — 서비스를 여는 열쇠 + \ No newline at end of file diff --git a/public/images/academy/env-management/2.svg b/public/images/academy/env-management/2.svg new file mode 100644 index 00000000..2bafb1d6 --- /dev/null +++ b/public/images/academy/env-management/2.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + .env 파일 + + DB_HOST=mysql + DB_PORT=3306 + MAIL_HOST=smtp + GEMINI_API_KEY=xxx + FCM_KEY=yyy + APP_DEBUG=true + APP_URL=... + + + + + + + + + + + + + + + + + + Laravel App + + config('database') + config('mail') + config('services') + env('FCM_KEY') + + + + + + + + + + + + + + + + + + + + + DB + MySQL 8.0 + + + + + + + + + Mail + SMTP + + + + + + + + + + + AI + Gemini / Claude + + + + + + + + + + FCM + Push 알림 + + + + + 설정 파일이 앱과 외부 서비스를 연결한다 + \ No newline at end of file diff --git a/public/images/academy/env-management/3.svg b/public/images/academy/env-management/3.svg new file mode 100644 index 00000000..ceac3ba2 --- /dev/null +++ b/public/images/academy/env-management/3.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + 프로젝트별 .env 구조 + + + + + + + + MNG + + APP + + DB + + Session + + Mail + + SAM API 연동 + + Google AI + + Claude AI + + FCM + + Notion + + 기상청 API + + + + 공통 + + MNG 전용 + + + + + + + + + API + + APP + + DB + + Slack 로깅 + + Swagger + + Sanctum + + Legacy DB + + 바로빌 + + Google AI + + Claude AI + + FCM + + + + 공통 + + API 전용 + + + + + + + + + React + + NEXT_PUBLIC_API_URL + + NEXT_PUBLIC_API_KEY + + NODE_ENV + + + Next.js 환경 변수는 + NEXT_PUBLIC_ 접두사로 + 클라이언트 노출 여부 결정 + + + React 전용 + + + + + 각 프로젝트는 독립된 .env 파일을 보유 + \ No newline at end of file diff --git a/public/images/academy/env-management/4.svg b/public/images/academy/env-management/4.svg new file mode 100644 index 00000000..4241373d --- /dev/null +++ b/public/images/academy/env-management/4.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + Docker Override 우선순위 + + + + + + 1순위 (최우선) + docker-compose environment: + + + + + + 덮어쓴다 + + + + 2순위 + .env 파일 + + + + 덮어쓴다 + + + + 3순위 (기본값) + .env.example + + + + + + + + + + 실제 예시: DB_HOST + + + + API .env 파일 + DB_HOST=127.0.0.1 + + + + + + + + + + docker-compose.yml + DB_HOST=sam-mysql-1 + 이것이 실제 적용됨 + + + + + + + + + 컨테이너 내부 실제 값 + DB_HOST = sam-mysql-1 + + + + + + + Docker 환경 변수가 .env보다 우선한다 + \ No newline at end of file diff --git a/public/images/academy/env-management/5.svg b/public/images/academy/env-management/5.svg new file mode 100644 index 00000000..9bc1a718 --- /dev/null +++ b/public/images/academy/env-management/5.svg @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + 양쪽이 같아야 하는 변수 + + + + + + + + + + + + + + + + + MNG .env + + + + + INTERNAL_EXCHANGE_SECRET + + + 필수 + + + + GEMINI_API_KEY + + + + GEMINI_MODEL + + + + VERTEX_AI_PROJECT_ID + + + + GOOGLE_STORAGE_BUCKET + + + + DB_HOST + + + + DB_DATABASE + + + + + + API .env + + + + + INTERNAL_EXCHANGE_SECRET + + 필수 + + + + GEMINI_API_KEY + + + + GEMINI_MODEL + + + + VERTEX_AI_PROJECT_ID + + + + GOOGLE_STORAGE_BUCKET + + + + DB_HOST + + + + DB_DATABASE + + + + + + SYNC + + + + + + + + + + + + + + + + + + + + + + + + = + + + + = + + + + = + + + + = + + + + = + + + + = + + + + + + 보안 필수 + + AI / 스토리지 + + 데이터베이스 + + \ No newline at end of file