Skip to content
Merged
Show file tree
Hide file tree
Changes from 64 commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
92fc0a0
feat: 클릭 스트림 providerType 지원 및 타입 보강
YermIm Jul 20, 2026
8f60414
feat: 단일 플랫폼 대시보드 실시간 트래픽 SSE 연동
YermIm Jul 22, 2026
e61cc26
feat: 전체 플랫폼 실시간 트래픽 SSE 연동 및 mock 제거
YermIm Jul 23, 2026
b91a858
fix: x축 범위 수정
YermIm Jul 23, 2026
9c8bbb5
feat: 빈 데이터 상태 안내 추가
YermIm Jul 23, 2026
16dd203
feat: 실시간 트래픽 재연결 실패 시 차트 유지
YermIm Jul 23, 2026
7d21bb1
refactor: useClickStream 옵션 타입 변경
YermIm Jul 23, 2026
64940d6
fix: providerType 변경 시 useClickStream 상태 초기화
YermIm Jul 23, 2026
f8e2342
Merge pull request #307 from WhereYouAd/feature/#305
YermIm Jul 24, 2026
322973b
fix: 타임라인 API값 AT_RISK가 아닌 UNDERPERFORM으로 수정, 추가 Pending 값 추가
jjjsun Jul 26, 2026
194a7c4
feat: 플랫폼 트래픽 차트 이상 클릭 탐지 UI 연동
YermIm Jul 26, 2026
dc32a74
style: 범례 디자인 깨지지 않도록 수정
jjjsun Jul 26, 2026
3abc65e
test: metricsToKpis · METRIC_REGISTRY 단위 테스트 추가
Seojegyeong Jul 26, 2026
d9219f2
Merge pull request #314 from WhereYouAd/bugfix/#313
jjjsun Jul 26, 2026
1e56d5f
Merge pull request #316 from WhereYouAd/feature/#269
Seojegyeong Jul 26, 2026
6c18bbf
setting: Lighthouse CI 파이프라인 구축 (#276)
Seojegyeong Jul 26, 2026
17118dc
fix: lighthouserc.js → lighthouserc.cjs 변경 (NO_FCP 오류 수정)
Seojegyeong Jul 26, 2026
85f7f47
fix: CI 빌드 시 VITE_API_BASE_URL 누락으로 앱 크래시 → NO_FCP 수정
Seojegyeong Jul 26, 2026
443a733
refactor: VITE_API_BASE_URL를 .env.production으로 이동
Seojegyeong Jul 26, 2026
0f75b71
fix: lighthouserc에서 preset 제거 — error 레벨 assertion 차단 해소
Seojegyeong Jul 26, 2026
a692a9c
fix: 이상 클릭 해제 시 잔존 마커/버블 제거
YermIm Jul 26, 2026
d1f924b
fix: 이상 클릭 버블을 버튼 aria-describedby로 연결
YermIm Jul 26, 2026
d2dba33
Merge pull request #317 from WhereYouAd/setting/#276
Seojegyeong Jul 27, 2026
8e93551
ci: Lighthouse CI 임계값 warn → error 상향 (#277)
Seojegyeong Jul 27, 2026
c9ad352
ci: LCP warn 유지, CLS·TBT error 상향 — CI /login 측정 환경 제약 (#277)
Seojegyeong Jul 27, 2026
5ac8560
feat: 모달 focus trap 및 키보드 네비게이션 구현 (#318)
Seojegyeong Jul 27, 2026
0096d43
feat: getFocusable 헬퍼로 focus trap 가시성 필터 강화 (#318)
Seojegyeong Jul 27, 2026
9b6dc9e
Merge pull request #320 from WhereYouAd/refactor/#277
Seojegyeong Jul 27, 2026
29c5bce
Merge pull request #321 from WhereYouAd/feature/#318
Seojegyeong Jul 27, 2026
34d3d21
feat: setting 페이지 내 클릭수/주간리포트 알림설정 UI
jjjsun Jul 27, 2026
127e21d
fix: 워크스페이스 로딩 상태 추가
jjjsun Jul 27, 2026
add68cb
feat: toast가 워크스페이스 알림 변경도 알도록 수정
jjjsun Jul 27, 2026
28a5802
refactor: 플랫폼별 비교 API 요청 기간을 2026-03-23 ~ 2026-07-07로 수정
Seojegyeong Jul 27, 2026
f553566
refactor: 랜딩 헤더 모바일 버전 추가 구현
Seojegyeong Jul 27, 2026
57d1325
refactor: 랜딩 Hero 섹션 모바일 텍스트 크기 조정
Seojegyeong Jul 27, 2026
feb98c0
refactor: 랜딩 이용가이드 섹션 모바일 텍스트·간격 조정
Seojegyeong Jul 27, 2026
3c21ceb
refactor: 이용가이드 모바일에서 설명→목업 순서로 변경
Seojegyeong Jul 27, 2026
056f91f
refactor: 이용가이드 목업 모바일 최대 너비 축소
Seojegyeong Jul 27, 2026
bfb5e46
refactor: 워크스페이스 목업 이메일 placeholder 모바일 축약
Seojegyeong Jul 27, 2026
0d6f7de
refactor: 캠페인 관리 목업 날짜 텍스트 모바일에서 제거
Seojegyeong Jul 27, 2026
af43625
refactor: 캠페인 관리 목업 모바일 네비게이션 영역 최적화
Seojegyeong Jul 27, 2026
3f30110
refactor: 랜딩 섹션 헤더 모바일 폰트 크기 축소
Seojegyeong Jul 27, 2026
6e5363a
refactor: 랜딩 섹션 헤더 모바일 폰트 heading3으로 축소
Seojegyeong Jul 27, 2026
6276430
refactor: 랜딩 섹션 헤더 모바일 폰트 heading4으로 축소
Seojegyeong Jul 27, 2026
3e5ca5f
refactor: 랜딩 섹션 헤더 모바일 폰트 원복
Seojegyeong Jul 27, 2026
ad7445b
refactor: 요금제 섹션 모바일 여백·카드 패딩 축소
Seojegyeong Jul 27, 2026
ee401aa
refactor: 요금제 섹션 모바일 여백·카드 패딩 원복
Seojegyeong Jul 27, 2026
aae994a
refactor: 자주 묻는 질문 아코디언으로 전환
Seojegyeong Jul 27, 2026
098747f
refactor: 캠페인 관리 목업 날짜 네비게이션 완전 제거
Seojegyeong Jul 27, 2026
f54ea40
refactor: 팀원 초대 목업 이메일 placeholder 텍스트 변경
Seojegyeong Jul 27, 2026
2f00f8c
refactor: 캠페인 관리 목업 브랜드 검색 캠페인 카드 제거
Seojegyeong Jul 27, 2026
47ea3af
refactor: 캠페인 관리 목업 카드 위치·크기 조정 및 스크롤 제거
Seojegyeong Jul 27, 2026
68aaa5a
refactor: 캠페인 관리 목업 컬럼 너비 원복 (55px)
Seojegyeong Jul 27, 2026
82a7af7
refactor: 랜딩 히어로 섹션 모바일 반응형 폰트 적용
Seojegyeong Jul 27, 2026
c4d3572
refactor: 랜딩 섹션 헤더 모바일 반응형 폰트 적용
Seojegyeong Jul 27, 2026
d174987
refactor: 로그인·회원가입·아이디·비밀번호 찾기 모바일 반응형 폰트 적용
Seojegyeong Jul 27, 2026
52f73e9
refactor: 대시보드 KPI 카드 모바일 1열 반응형 적용
Seojegyeong Jul 27, 2026
c613839
Merge pull request #315 from WhereYouAd/feature/#308
YermIm Jul 27, 2026
6c0747f
Merge pull request #322 from WhereYouAd/feature/#306
jjjsun Jul 27, 2026
786ac1d
Merge pull request #326 from WhereYouAd/refactor/#324
Seojegyeong Jul 27, 2026
970be65
Merge pull request #327 from WhereYouAd/refactor/#325
Seojegyeong Jul 27, 2026
b5a8f44
setting: CSP 보안 헤더 CloudFront Function 코드 추가 및 CI 배포 자동화 (#319)
Seojegyeong Jul 28, 2026
988ac16
fix: ESLint no-unused-vars 비활성화 및 prettier 따옴표 수정 (#319)
Seojegyeong Jul 28, 2026
ffd9333
Merge pull request #329 from WhereYouAd/setting/#319
Seojegyeong Jul 28, 2026
0808b24
feat: 알림관련 API 타입정리
jjjsun Jul 28, 2026
b99cf86
fix: import 경로 수정
jjjsun Jul 28, 2026
3eaf490
Merge pull request #331 from WhereYouAd/feature/#328
jjjsun Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env.production
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VITE_API_BASE_URL=/
8 changes: 8 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,13 @@ jobs:
- name: Run lint
run: pnpm lint

- name: Run unit tests
run: pnpm test

- name: Run build
run: pnpm build

- name: Run Lighthouse CI
run: pnpm exec lhci autorun
env:
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
18 changes: 18 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,24 @@ jobs:
run: |
aws s3 cp --recursive dist s3://${{ secrets.AWS_BUCKET_NAME }}

# CloudFront Function 업데이트 (CSP 보안 헤더)
- name: Update CloudFront CSP Function
run: |
ETAG=$(aws cloudfront describe-function \
--name add-csp-report-only \
--query 'ETag' --output text)
aws cloudfront update-function \
--name add-csp-report-only \
--if-match "$ETAG" \
--function-config Comment="CSP security headers",Runtime="cloudfront-js-2.0" \
--function-code fileb://scripts/cloudfront-functions/csp-headers.js
NEW_ETAG=$(aws cloudfront describe-function \
--name add-csp-report-only \
--query 'ETag' --output text)
aws cloudfront publish-function \
--name add-csp-report-only \
--if-match "$NEW_ETAG"

# CloudFront 캐시 무효화
- name: Invalidate CloudFront Cache
run: |
Expand Down
29 changes: 29 additions & 0 deletions lighthouserc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/** @type {import('@lhci/cli').LighthousercConfig} */
module.exports = {
ci: {
collect: {
// CI 환경에서 인증이 필요한 /dashboard는 /login으로 리다이렉트됨.
// /dashboard 실측은 #277(perf/no-skeleton 브랜치)에서 진행.
startServerCommand: "pnpm preview --port 3000",
startServerReadyPattern: "Local",
url: ["http://localhost:3000/login"],
numberOfRuns: 3,
settings: {
chromeFlags: "--no-sandbox --disable-dev-shm-usage",
},
},
assert: {
assertions: {
// LCP: CI는 /login을 lazy load 환경에서 측정해 ~15s가 나옴 — 로컬 /dashboard 실측값(1048ms)과
// 측정 대상이 달라 error 임계값 적용 불가. 회귀 추세 감지용 warn으로 유지.
"largest-contentful-paint": ["warn", { maxNumericValue: 4000 }],
// CLS, TBT: CI 환경 무관하게 안정적으로 낮은 값 → error 수준 적용
"cumulative-layout-shift": ["error", { maxNumericValue: 0.1 }],
"total-blocking-time": ["error", { maxNumericValue: 200 }],
},
},
upload: {
target: "temporary-public-storage",
},
},
};
8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"chromatic": "npx chromatic --project-token=$CHROMATIC_PROJECT_TOKEN",
"test:e2e": "playwright test"
"test:e2e": "playwright test",
"test": "vitest run",
"test:watch": "vitest"
},
"dependencies": {
"@hookform/resolvers": "^5.2.2",
Expand Down Expand Up @@ -41,6 +43,7 @@
"@commitlint/cli": "^20.3.1",
"@commitlint/config-conventional": "^20.3.1",
"@eslint/js": "^9.39.2",
"@lhci/cli": "^0.15.1",
"@playwright/test": "^1.60.0",
"@storybook/addon-essentials": "8.6.17",
"@storybook/react": "8.6.17",
Expand Down Expand Up @@ -74,7 +77,8 @@
"typescript": "~5.9.3",
"typescript-eslint": "^8.53.0",
"vite": "^6.4.1",
"vite-plugin-svgr": "^4.5.0"
"vite-plugin-svgr": "^4.5.0",
"vitest": "^4.1.10"
},
"lint-staged": {
"*.{ts,tsx}": [
Expand Down
Loading
Loading