diff --git a/frontend/src/components/Layout.tsx b/frontend/src/components/Layout.tsx
index 9d8b837..7ad7c47 100644
--- a/frontend/src/components/Layout.tsx
+++ b/frontend/src/components/Layout.tsx
@@ -8,7 +8,7 @@
*
* 구조:
* [Header] — sticky 상단 바 (z-50)
- * - 브랜드 로고 (AutoStock GEN 3 ALGO)
+ * - 브랜드 로고 (AutoStock)
* - 네비게이션 링크 (대시보드, 성과분석, 전략설정, 백테스트, 매매로그, MCP상태)
* - 연결 상태 표시 (Backend LIVE/OFFLINE, MCP connected/unknown)
* [Main] — 페이지 컨텐츠 영역
@@ -78,12 +78,7 @@ const Layout = ({ children }: LayoutProps) => {
-
-
- AutoStock
-
-
GEN 3 ALGO
-
+ AutoStock
{/* Navigation */}
diff --git a/frontend/src/pages/Login.tsx b/frontend/src/pages/Login.tsx
index ea1070f..cd01509 100644
--- a/frontend/src/pages/Login.tsx
+++ b/frontend/src/pages/Login.tsx
@@ -10,7 +10,7 @@
* - onLogin: 인증 성공 시 API 키를 전달받는 콜백 (App에서 localStorage 저장)
*/
import { useState, FormEvent } from 'react'
-import { Activity } from 'lucide-react'
+import { Activity, Eye, EyeOff, KeyRound, Loader2 } from 'lucide-react'
/** Login 컴포넌트 Props 정의 */
interface LoginProps {
@@ -30,6 +30,7 @@ const Login = ({ onLogin }: LoginProps) => {
const [apiKey, setApiKey] = useState('')
const [error, setError] = useState('')
const [loading, setLoading] = useState(false)
+ const [showKey, setShowKey] = useState(false)
/**
* 폼 제출 핸들러 — API 키 유효성 검증
@@ -77,48 +78,80 @@ const Login = ({ onLogin }: LoginProps) => {
}
return (
-
-
-
-
-
-
- AutoStock
-
-
GEN 3 ALGO
+
+
+ {/* 브랜드 */}
+
+
+
AutoStock
+
자동매매 대시보드
-
-
-
- .env 파일의 SECRET_KEY 값을 입력하세요
+
+ 백엔드 .env의{' '}
+ SECRET_KEY 값으로 로그인합니다.