From 7ac2b99234d1ba2300a47310b8063c0755be2af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Mon, 23 Feb 2026 12:42:13 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[academy]=20=ED=99=98=EA=B2=BD=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EA=B4=80=EB=A6=AC=20=EB=B0=B1=EA=B3=BC=EC=82=AC?= =?UTF-8?q?=EC=A0=84=20SVG=20=EC=9D=BC=EB=9F=AC=EC=8A=A4=ED=8A=B8=205?= =?UTF-8?q?=EC=A2=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 1.svg: 열쇠 고리 비유 Hero 이미지 - 2.svg: .env 역할 개념도 (App → Services 흐름) - 3.svg: 프로젝트별 .env 구조 (MNG/API/React) - 4.svg: Docker Override 우선순위 다이어그램 - 5.svg: MNG ↔ API 동기화 필수 변수 맵 --- public/images/academy/env-management/1.svg | 79 ++++++++++ public/images/academy/env-management/2.svg | 113 ++++++++++++++ public/images/academy/env-management/3.svg | 111 ++++++++++++++ public/images/academy/env-management/4.svg | 88 +++++++++++ public/images/academy/env-management/5.svg | 165 +++++++++++++++++++++ 5 files changed, 556 insertions(+) create mode 100644 public/images/academy/env-management/1.svg create mode 100644 public/images/academy/env-management/2.svg create mode 100644 public/images/academy/env-management/3.svg create mode 100644 public/images/academy/env-management/4.svg create mode 100644 public/images/academy/env-management/5.svg 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