@wondev/dotenv-example 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/.claude/README.md +60 -0
  2. package/.claude/commands/business_logic.md +143 -0
  3. package/.claude/commands/generate-prd.md +175 -0
  4. package/.claude/commands/gotobackend.md +569 -0
  5. package/.claude/commands/playwrightMCP_install.md +113 -0
  6. package/.claude/commands/setting_dev.md +731 -0
  7. package/.claude/commands/tech-lead.md +404 -0
  8. package/.claude/commands/user-flow.md +839 -0
  9. package/.claude/settings.local.json +9 -0
  10. package/.cursor/README.md +10 -0
  11. package/.cursor/mcp.json +31 -0
  12. package/.cursor/rules/common/cursor-rules.mdc +53 -0
  13. package/.cursor/rules/common/git-convention.mdc +86 -0
  14. package/.cursor/rules/common/self-improve.mdc +72 -0
  15. package/.cursor/rules/common/tdd.mdc +81 -0
  16. package/.cursor/rules/common/vibe-coding.mdc +114 -0
  17. package/.cursor/rules/supabase/supabase-bootstrap-auth.mdc +236 -0
  18. package/.cursor/rules/supabase/supabase-create-db-functions.mdc +136 -0
  19. package/.cursor/rules/supabase/supabase-create-migration.mdc +50 -0
  20. package/.cursor/rules/supabase/supabase-create-rls-policies.mdc +248 -0
  21. package/.cursor/rules/supabase/supabase-declarative-database-schema.mdc +78 -0
  22. package/.cursor/rules/supabase/supabase-postgres-sql-style-guide.mdc +133 -0
  23. package/.cursor/rules/supabase/supabase-writing-edge-functions.mdc +105 -0
  24. package/.cursor/rules/web/design-rules.mdc +381 -0
  25. package/.cursor/rules/web/nextjs-convention.mdc +237 -0
  26. package/.cursor/rules/web/playwright-test-guide.mdc +176 -0
  27. package/.cursor/rules/web/toss-frontend.mdc +695 -0
  28. package/.env +4 -0
  29. package/CLAUDE.md +40 -0
  30. package/README.md +7 -0
  31. package/bin/index.js +66 -0
  32. package/package.json +32 -0
  33. package/prompts/20250926_175606.md +3 -0
  34. package/prompts/20250926_180205.md +148 -0
@@ -0,0 +1,78 @@
1
+ ---
2
+ # Specify the following for Cursor rules
3
+ description: For when modifying the Supabase database schema.
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Database: Declarative Database Schema
8
+
9
+ Mandatory Instructions for Supabase Declarative Schema Management
10
+
11
+ ## 1. **Exclusive Use of Declarative Schema**
12
+
13
+ -**All database schema modifications must be defined within `.sql` files located in the `supabase/schemas/` directory. -**Do not\*\* create or modify files directly in the `supabase/migrations/` directory unless the modification is about the known caveats below. Migration files are to be generated automatically through the CLI.
14
+
15
+ ## 2. **Schema Declaration**
16
+
17
+ -For each database entity (e.g., tables, views, functions), create or update a corresponding `.sql` file in the `supabase/schemas/` directory
18
+ -Ensure that each `.sql` file accurately represents the desired final state of the entity
19
+
20
+ ## 3. **Migration Generation**
21
+
22
+ - Before generating migrations, **stop the local Supabase development environment**
23
+ ```bash
24
+ supabase stop
25
+ ```
26
+ - Generate migration files by diffing the declared schema against the current database state
27
+ ```bash
28
+ supabase db diff -f <migration_name>
29
+ ```
30
+ Replace `<migration_name>` with a descriptive name for the migration
31
+
32
+ ## 4. **Schema File Organization**
33
+
34
+ - Schema files are executed in lexicographic order. To manage dependencies (e.g., foreign keys), name files to ensure correct execution order
35
+ - When adding new columns, append them to the end of the table definition to prevent unnecessary diffs
36
+
37
+ ## 5. **Rollback Procedures**
38
+
39
+ - To revert changes
40
+ - Manually update the relevant `.sql` files in `supabase/schemas/` to reflect the desired state
41
+ - Generate a new migration file capturing the rollback
42
+ ```bash
43
+ supabase db diff -f <rollback_migration_name>
44
+ ```
45
+ - Review the generated migration file carefully to avoid unintentional data loss
46
+
47
+ ## 6. **Known caveats**
48
+
49
+ The migra diff tool used for generating schema diff is capable of tracking most database changes. However, there are edge cases where it can fail.
50
+
51
+ If you need to use any of the entities below, remember to add them through versioned migrations instead.
52
+
53
+ ### Data manipulation language
54
+
55
+ - DML statements such as insert, update, delete, etc., are not captured by schema diff
56
+
57
+ ### View ownership
58
+
59
+ - view owner and grants
60
+ - security invoker on views
61
+ - materialized views
62
+ - doesn’t recreate views when altering column type
63
+
64
+ ### RLS policies
65
+
66
+ - alter policy statements
67
+ - column privileges
68
+ - Other entities#
69
+ - schema privileges are not tracked because each schema is diffed separately
70
+ - comments are not tracked
71
+ - partitions are not tracked
72
+ - alter publication ... add table ...
73
+ - create domain statements are ignored
74
+ - grant statements are duplicated from default privileges
75
+
76
+ ---
77
+
78
+ **Non-compliance with these instructions may lead to inconsistent database states and is strictly prohibited.**
@@ -0,0 +1,133 @@
1
+ ---
2
+ # Specify the following for Cursor rules
3
+ description: Guidelines for writing Postgres SQL
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Postgres SQL Style Guide
8
+
9
+ ## General
10
+
11
+ - Use lowercase for SQL reserved words to maintain consistency and readability.
12
+ - Employ consistent, descriptive identifiers for tables, columns, and other database objects.
13
+ - Use white space and indentation to enhance the readability of your code.
14
+ - Store dates in ISO 8601 format (`yyyy-mm-ddThh:mm:ss.sssss`).
15
+ - Include comments for complex logic, using '/_ ... _/' for block comments and '--' for line comments.
16
+
17
+ ## Naming Conventions
18
+
19
+ - Avoid SQL reserved words and ensure names are unique and under 63 characters.
20
+ - Use snake_case for tables and columns.
21
+ - Prefer plurals for table names
22
+ - Prefer singular names for columns.
23
+
24
+ ## Tables
25
+
26
+ - Avoid prefixes like 'tbl\_' and ensure no table name matches any of its column names.
27
+ - Always add an `id` column of type `identity generated always` unless otherwise specified.
28
+ - Create all tables in the `public` schema unless otherwise specified.
29
+ - Always add the schema to SQL queries for clarity.
30
+ - Always add a comment to describe what the table does. The comment can be up to 1024 characters.
31
+
32
+ ## Columns
33
+
34
+ - Use singular names and avoid generic names like 'id'.
35
+ - For references to foreign tables, use the singular of the table name with the `_id` suffix. For example `user_id` to reference the `users` table
36
+ - Always use lowercase except in cases involving acronyms or when readability would be enhanced by an exception.
37
+
38
+ #### Examples:
39
+
40
+ ```sql
41
+ create table books (
42
+ id bigint generated always as identity primary key,
43
+ title text not null,
44
+ author_id bigint references authors (id)
45
+ );
46
+ comment on table books is 'A list of all the books in the library.';
47
+ ```
48
+
49
+ ## Queries
50
+
51
+ - When the query is shorter keep it on just a few lines. As it gets larger start adding newlines for readability
52
+ - Add spaces for readability.
53
+
54
+ Smaller queries:
55
+
56
+ ```sql
57
+ select *
58
+ from employees
59
+ where end_date is null;
60
+
61
+ update employees
62
+ set end_date = '2023-12-31'
63
+ where employee_id = 1001;
64
+ ```
65
+
66
+ Larger queries:
67
+
68
+ ```sql
69
+ select
70
+ first_name,
71
+ last_name
72
+ from employees
73
+ where start_date between '2021-01-01' and '2021-12-31' and status = 'employed';
74
+ ```
75
+
76
+ ### Joins and Subqueries
77
+
78
+ - Format joins and subqueries for clarity, aligning them with related SQL clauses.
79
+ - Prefer full table names when referencing tables. This helps for readability.
80
+
81
+ ```sql
82
+ select
83
+ employees.employee_name,
84
+ departments.department_name
85
+ from
86
+ employees
87
+ join departments on employees.department_id = departments.department_id
88
+ where employees.start_date > '2022-01-01';
89
+ ```
90
+
91
+ ## Aliases
92
+
93
+ - Use meaningful aliases that reflect the data or transformation applied, and always include the 'as' keyword for clarity.
94
+
95
+ ```sql
96
+ select count(*) as total_employees
97
+ from employees
98
+ where end_date is null;
99
+ ```
100
+
101
+ ## Complex queries and CTEs
102
+
103
+ - If a query is extremely complex, prefer a CTE.
104
+ - Make sure the CTE is clear and linear. Prefer readability over performance.
105
+ - Add comments to each block.
106
+
107
+ ```sql
108
+ with
109
+ department_employees as (
110
+ -- Get all employees and their departments
111
+ select
112
+ employees.department_id,
113
+ employees.first_name,
114
+ employees.last_name,
115
+ departments.department_name
116
+ from
117
+ employees
118
+ join departments on employees.department_id = departments.department_id
119
+ ),
120
+ employee_counts as (
121
+ -- Count how many employees in each department
122
+ select
123
+ department_name,
124
+ count(*) as num_employees
125
+ from department_employees
126
+ group by department_name
127
+ )
128
+ select
129
+ department_name,
130
+ num_employees
131
+ from employee_counts
132
+ order by department_name;
133
+ ```
@@ -0,0 +1,105 @@
1
+ ---
2
+ description: Coding rules for Supabase Edge Functions
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Writing Supabase Edge Functions
7
+
8
+ You're an expert in writing TypeScript and Deno JavaScript runtime. Generate **high-quality Supabase Edge Functions** that adhere to the following best practices:
9
+
10
+ ## Guidelines
11
+
12
+ 1. Try to use Web APIs and Deno’s core APIs instead of external dependencies (eg: use fetch instead of Axios, use WebSockets API instead of node-ws)
13
+ 2. If you are reusing utility methods between Edge Functions, add them to `supabase/functions/_shared` and import using a relative path. Do NOT have cross dependencies between Edge Functions.
14
+ 3. Do NOT use bare specifiers when importing dependecnies. If you need to use an external dependency, make sure it's prefixed with either `npm:` or `jsr:`. For example, `@supabase/supabase-js` should be written as `npm:@supabase/supabase-js`.
15
+ 4. For external imports, always define a version. For example, `npm:@express` should be written as `npm:express@4.18.2`.
16
+ 5. For external dependencies, importing via `npm:` and `jsr:` is preferred. Minimize the use of imports from @`deno.land/x` , `esm.sh` and @`unpkg.com` . If you have a package from one of those CDNs, you can replace the CDN hostname with `npm:` specifier.
17
+ 6. You can also use Node built-in APIs. You will need to import them using `node:` specifier. For example, to import Node process: `import process from "node:process". Use Node APIs when you find gaps in Deno APIs.
18
+ 7. Do NOT use `import { serve } from "https://deno.land/std@0.168.0/http/server.ts"`. Instead use the built-in `Deno.serve`.
19
+ 8. Following environment variables (ie. secrets) are pre-populated in both local and hosted Supabase environments. Users don't need to manually set them:
20
+ - SUPABASE_URL
21
+ - SUPABASE_ANON_KEY
22
+ - SUPABASE_SERVICE_ROLE_KEY
23
+ - SUPABASE_DB_URL
24
+ 9. To set other environment variables (ie. secrets) users can put them in a env file and run the `supabase secrets set --env-file path/to/env-file`
25
+ 10. A single Edge Function can handle multiple routes. It is recommended to use a library like Express or Hono to handle the routes as it's easier for developer to understand and maintain. Each route must be prefixed with `/function-name` so they are routed correctly.
26
+ 11. File write operations are ONLY permitted on `/tmp` directory. You can use either Deno or Node File APIs.
27
+ 12. Use `EdgeRuntime.waitUntil(promise)` static method to run long-running tasks in the background without blocking response to a request. Do NOT assume it is available in the request / execution context.
28
+
29
+ ## Example Templates
30
+
31
+ ### Simple Hello World Function
32
+
33
+ ```tsx
34
+ interface reqPayload {
35
+ name: string
36
+ }
37
+
38
+ console.info('server started')
39
+
40
+ Deno.serve(async (req: Request) => {
41
+ const { name }: reqPayload = await req.json()
42
+ const data = {
43
+ message: `Hello ${name} from foo!`,
44
+ }
45
+
46
+ return new Response(JSON.stringify(data), {
47
+ headers: { 'Content-Type': 'application/json', Connection: 'keep-alive' },
48
+ })
49
+ })
50
+ ```
51
+
52
+ ### Example Function using Node built-in API
53
+
54
+ ```tsx
55
+ import { randomBytes } from 'node:crypto'
56
+ import { createServer } from 'node:http'
57
+ import process from 'node:process'
58
+
59
+ const generateRandomString = (length) => {
60
+ const buffer = randomBytes(length)
61
+ return buffer.toString('hex')
62
+ }
63
+
64
+ const randomString = generateRandomString(10)
65
+ console.log(randomString)
66
+
67
+ const server = createServer((req, res) => {
68
+ const message = `Hello`
69
+ res.end(message)
70
+ })
71
+
72
+ server.listen(9999)
73
+ ```
74
+
75
+ ### Using npm packages in Functions
76
+
77
+ ```tsx
78
+ import express from 'npm:express@4.18.2'
79
+
80
+ const app = express()
81
+
82
+ app.get(/(.*)/, (req, res) => {
83
+ res.send('Welcome to Supabase')
84
+ })
85
+
86
+ app.listen(8000)
87
+ ```
88
+
89
+ ### Generate embeddings using built-in @Supabase.ai API
90
+
91
+ ```tsx
92
+ const model = new Supabase.ai.Session('gte-small')
93
+
94
+ Deno.serve(async (req: Request) => {
95
+ const params = new URL(req.url).searchParams
96
+ const input = params.get('text')
97
+ const output = await model.run(input, { mean_pool: true, normalize: true })
98
+ return new Response(JSON.stringify(output), {
99
+ headers: {
100
+ 'Content-Type': 'application/json',
101
+ Connection: 'keep-alive',
102
+ },
103
+ })
104
+ })
105
+ ```
@@ -0,0 +1,381 @@
1
+
2
+ **기본 구조:**
3
+ ```
4
+ 역할: [프레임워크] 전문가이며 [UI 라이브러리] 특화
5
+ 상황: [애플리케이션 유형]을 개발 중이며 [특정 요구사항] 필요
6
+ 작업: [컴포넌트 타입]을 생성하되 [구체적 기능] 포함
7
+ 제약: [스타일링 방식], [접근성/반응형 요구사항] 준수
8
+ 출력: [코드 형식]과 [문서화 수준] 제공
9
+ ```
10
+
11
+ **고급 컨텍스트 레이어링:**
12
+ - **프로젝트 컨텍스트**: 업계, 대상 사용자, 목표
13
+ - **기술적 컨텍스트**: 플랫폼, 제약사항, 통합 요소
14
+ - **디자인 컨텍스트**: 브랜드, 스타일, 패턴
15
+ - **사용자 컨텍스트**: 페르소나, 시나리오, 행동 패턴
16
+ - **비즈니스 컨텍스트**: KPI, 성공 지표, 일정
17
+
18
+ ### UI/UX 특화 프롬프트 패턴
19
+
20
+ **컴포넌트 생성 패턴:**
21
+ ```
22
+ TypeScript React 버튼 컴포넌트를 생성하세요:
23
+ - 변형: primary/secondary/outline 상태 지원
24
+ - 크기: small/medium/large 옵션
25
+ - 상태: disabled, loading 상태 처리
26
+ - 접근성: ARIA 속성과 키보드 네비게이션
27
+ - 스타일링: Tailwind CSS와 디자인 토큰 활용
28
+ - 테스트: Jest와 React Testing Library 포함
29
+ ```
30
+
31
+ **레이아웃 설계 패턴:**
32
+ ```
33
+ 모바일 우선 반응형 그리드 레이아웃 구현:
34
+ - 데스크톱: 3열, 태블릿: 2열, 모바일: 1열
35
+ - CSS Grid와 Tailwind 브레이크포인트 사용
36
+ - 간격: 일관된 스페이싱 시스템 적용
37
+ - 성능: 이미지 지연 로딩과 최적화
38
+ - 접근성: 스크린 리더 호환성
39
+ ```
40
+
41
+ ## 컴포넌트 설계와 디자인 시스템 전략
42
+
43
+ ### Atomic Design 기반 프롬프트
44
+
45
+ **원자(Atoms) 생성:**
46
+ ```
47
+ 기본 인풋 필드 원자 컴포넌트 생성:
48
+ - 의미적 HTML 요소 사용
49
+ - 타입별 변형: text, email, password, number
50
+ - 상태: default, focused, error, disabled
51
+ - 접근성: 레이블 연결, ARIA 속성
52
+ - 스타일링: 디자인 토큰 기반
53
+ ```
54
+
55
+ **분자(Molecules) 구성:**
56
+ ```
57
+ 검색 박스 분자 컴포넌트 설계:
58
+ - 구성 요소: 입력 필드 + 검색 버튼 + 아이콘
59
+ - 기능: 자동완성, 실시간 검색, 키보드 단축키
60
+ - 상태 관리: 검색어, 결과, 로딩 상태
61
+ - 최적화: 디바운싱, 캐싱, 성능 고려
62
+ ```
63
+
64
+ ### 디자인 토큰 기반 시스템
65
+
66
+ **토큰 체계 구축:**
67
+ ```json
68
+ {
69
+ "color": {
70
+ "primary": {
71
+ "50": "#f0f9ff",
72
+ "500": "#3b82f6",
73
+ "900": "#1e3a8a"
74
+ }
75
+ },
76
+ "spacing": {
77
+ "xs": "0.25rem",
78
+ "sm": "0.5rem",
79
+ "md": "1rem"
80
+ },
81
+ "typography": {
82
+ "heading": {
83
+ "fontSize": "1.875rem",
84
+ "lineHeight": "2.25rem"
85
+ }
86
+ }
87
+ }
88
+ ```
89
+
90
+ **토큰 활용 프롬프트:**
91
+ ```
92
+ 디자인 토큰 기반 카드 컴포넌트 생성:
93
+ - 배경색: semantic token의 surface 색상 사용
94
+ - 패딩: spacing token의 md, lg 값 적용
95
+ - 텍스트: typography token의 body, heading 스타일
96
+ - 테마 지원: 다크/라이트 모드 자동 대응
97
+ - 일관성: 전역 토큰 시스템과 연동
98
+ ```
99
+
100
+ ## 반응형 디자인과 접근성 고려사항
101
+
102
+ ### 모바일 우선 반응형 전략
103
+
104
+ **브레이크포인트 시스템:**
105
+ ```
106
+ 반응형 내비게이션 메뉴 구현:
107
+ - 모바일 (320px+): 햄버거 메뉴, 풀스크린 오버레이
108
+ - 태블릿 (768px+): 축약된 메뉴, 드롭다운 지원
109
+ - 데스크톱 (1024px+): 풀 메뉴, 메가 메뉴 옵션
110
+ - 터치 친화적: 44px 최소 터치 영역
111
+ - 성능: 뷰포트별 최적화된 자원 로딩
112
+ ```
113
+
114
+ **플렉시블 레이아웃:**
115
+ ```
116
+ CSS Grid와 Flexbox 조합 레이아웃:
117
+ - 주요 구조: CSS Grid로 2차원 배치
118
+ - 컴포넌트 정렬: Flexbox로 1차원 조정
119
+ - 컨테이너 쿼리: 컴포넌트 레벨 반응형
120
+ - 유동 타이포그래피: clamp()와 뷰포트 단위
121
+ - 종횡비 유지: aspect-ratio 속성 활용
122
+ ```
123
+
124
+ ### WCAG 2.1 AA 준수 접근성
125
+
126
+ **접근성 체크리스트 프롬프트:**
127
+ ```
128
+ 접근성 준수 폼 컴포넌트 생성:
129
+ - 의미적 HTML: fieldset, legend, label 요소
130
+ - ARIA 속성: aria-required, aria-invalid, aria-describedby
131
+ - 색상 대비: 4.5:1 최소 비율 준수
132
+ - 키보드 내비게이션: Tab, Enter, Space 키 지원
133
+ - 스크린 리더: 명확한 읽기 순서와 안내
134
+ - 에러 처리: 구체적이고 도움이 되는 메시지
135
+ - 포커스 관리: 명확한 시각적 표시
136
+ ```
137
+
138
+ **키보드 내비게이션 패턴:**
139
+ ```
140
+ 모달 다이얼로그 접근성 구현:
141
+ - 포커스 트래핑: 모달 내부로 포커스 제한
142
+ - ESC 키: 모달 닫기 기능
143
+ - 초기 포커스: 첫 번째 상호작용 요소로 이동
144
+ - 배경 스크롤: 모달 열림 시 방지
145
+ - ARIA 속성: role="dialog", aria-modal="true"
146
+ - 스크린 리더 알림: 모달 열림/닫힘 상태 전달
147
+ ```
148
+
149
+ ## 실제 개발 시나리오별 프롬프트 예시
150
+
151
+ ### 랜딩페이지 개발
152
+
153
+ **기본 랜딩페이지:**
154
+ ```
155
+ SaaS 제품 랜딩페이지 생성:
156
+ - 히어로 섹션: 강력한 헤드라인, 서브헤딩, CTA 버튼
157
+ - 가치 제안: 3개 핵심 혜택, 아이콘과 설명
158
+ - 사회적 증명: 고객 로고, 평점, 사용자 수
159
+ - 기능 하이라이트: 스크린샷과 설명, 호버 효과
160
+ - 가격 테이블: 3단계 요금제, 추천 플랜 강조
161
+ - CTA 섹션: 무료 체험 유도, 연락처 정보
162
+ - 스타일: 미니멀, 전문적, 모바일 최적화
163
+ ```
164
+
165
+ **한국 시장 특화 랜딩페이지:**
166
+ ```
167
+ 한국 B2B SaaS 랜딩페이지 설계:
168
+ - 문화적 고려: 신뢰 구축 요소, 정중한 표현
169
+ - 소셜 증명: 한국 기업 로고, 상세한 후기
170
+ - 결제 방식: 카카오페이, 네이버페이 통합
171
+ - 고객 지원: 라이브 챗, 한국어 지원 명시
172
+ - 인증: 국내 보안 인증, 개인정보보호 표시
173
+ - 모바일 우선: 세로 스크롤링, 터치 최적화
174
+ ```
175
+
176
+ ### 대시보드 인터페이스
177
+
178
+ **분석 대시보드:**
179
+ ```
180
+ 데이터 분석 대시보드 구현:
181
+ - 정보 구조: 계층적 데이터 표시, 맞춤형 뷰
182
+ - 시각화 전략: 차트 유형별 데이터 매칭, 상호작용
183
+ - 필터링 시스템: 날짜 범위, 카테고리, 사용자 정의
184
+ - 성능 고려: 지연 로딩, 점진적 공개
185
+ - 개인화: 위젯 배치, 개인 설정
186
+ - 내보내기: PDF 보고서, 공유 링크, 예약 발송
187
+ ```
188
+
189
+ ### 폼 디자인과 검증
190
+
191
+ **복합 단계별 폼:**
192
+ ```
193
+ 사용자 등록 다단계 폼 설계:
194
+ - 사용자 플로우: 단계별 분해, 저장/재개 기능
195
+ - 검증 전략: 인라인, 요약, 점진적 검증
196
+ - 에러 처리: 구체적 에러 상태, 복구 제안
197
+ - 데이터 지속성: 자동 저장, 세션 관리
198
+ - 조건부 로직: 이전 답변에 따른 필드 표시/숨김
199
+ - 전환 최적화: 필드 최소화, 스마트 기본값, 사회적 증명
200
+ ```
201
+
202
+ ### 네비게이션 시스템
203
+
204
+ **이커머스 내비게이션:**
205
+ ```
206
+ 온라인 쇼핑몰 내비게이션 시스템:
207
+ - 카테고리 구조: 계층적 조직, 패싯 내비게이션
208
+ - 검색 경험: 자동완성, 오타 허용, 비주얼 검색
209
+ - 사용자 계정: 위시리스트, 주문 내역, 계정 설정
210
+ - 쇼핑 도구: 장바구니 미리보기, 비교, 최근 본 상품
211
+ - 신뢰 신호: 보안 배지, 고객 서비스 접근
212
+ - 개인화: 추천 카테고리, 브라우징 히스토리
213
+ ```
214
+
215
+ ## 프롬프트 최적화 팁과 주의사항
216
+
217
+ ### 효과적인 프롬프트 구조
218
+
219
+ **구체성 계층:**
220
+ 1. **일반적**: "폼 만들어줘"
221
+ 2. **기본적**: "React 폼을 검증과 함께 만들어줘"
222
+ 3. **구체적**: "react-hook-form과 Zod 검증을 사용한 TypeScript 폼 컴포넌트를 만들어줘"
223
+ 4. **최적화**: 위 내용 + 접근성 요구사항, 스타일링 프레임워크, 에러 처리 패턴, 통합 요구사항
224
+
225
+ ### 반복적 개선 전략
226
+
227
+ **OODA 루프 적용:**
228
+ 1. **관찰(Observe)**: 현재 출력 품질과 gaps 분석
229
+ 2. **방향설정(Orient)**: 결과에 기반한 이해 조정
230
+ 3. **결정(Decide)**: 구체적인 프롬프트 수정 선택
231
+ 4. **실행(Act)**: 개선된 프롬프트 구현
232
+
233
+ **피드백 기반 반복:**
234
+ ```
235
+ 이전 컴포넌트에서 [구체적 개선사항]이 필요합니다.
236
+ [정확한 요구사항]에 맞게 수정해주세요:
237
+ - 문제점: [specific issue]
238
+ - 기대 결과: [exact requirements]
239
+ - 제약사항: [what cannot be changed]
240
+ - 성공 기준: [measurable criteria]
241
+ ```
242
+
243
+ ### 컨텍스트 보존 기법
244
+
245
+ **세션 상태 관리:**
246
+ ```
247
+ 프로젝트 컨텍스트 유지:
248
+ - 이전 대화 참조: "앞서 만든 디자인 시스템에 기반하여"
249
+ - 일관된 명명: 프로젝트 전반에 걸친 용어 통일
250
+ - 진행 상황 추적: 완료된 작업과 남은 작업 명시
251
+ - 결정 문서화: 중요한 설계 결정과 근거 기록
252
+ ```
253
+
254
+ ## 초보자 실수와 개선 방안
255
+
256
+ ### 자주 발생하는 실수들
257
+
258
+ **❌ 모호한 프롬프트:**
259
+ "깔끔한 웹사이트 만들어줘"
260
+
261
+ **✅ 개선된 버전:**
262
+ ```
263
+ [구체적 업종] 비즈니스를 위한 반응형 웹사이트 생성:
264
+ - 주요 목표: [리드 생성/판매/정보 제공]
265
+ - 핵심 섹션: [소개, 서비스, 후기, 연락처]
266
+ - 브랜드 성격: [전문적/친근함/혁신적]
267
+ - 기술 요구사항: [CMS, SEO 친화적, 모바일 최적화]
268
+ - 성공 지표: [전환 목표, 사용자 행동]
269
+ ```
270
+
271
+ **❌ 컨텍스트 누락:**
272
+ "대시보드 디자인해줘"
273
+
274
+ **✅ 개선된 버전:**
275
+ ```
276
+ 원격 팀을 위한 프로젝트 관리 대시보드 설계:
277
+ - 사용자 컨텍스트: [팀 규모, 기술 수준, 일일 워크플로우]
278
+ - 데이터 유형: [프로젝트 진행률, 팀 성과, 마감일, 리소스]
279
+ - 사용자 목표: [빠른 상태 확인, 상세 분석, 팀 협업]
280
+ - 디바이스 사용: [주로 데스크톱, 모바일 체크인, 태블릿 발표]
281
+ - 통합 요구: [기존 도구, API, 내보내기 요구사항]
282
+ ```
283
+
284
+ ### 디버깅과 문제 해결
285
+
286
+ **체계적 디버깅 프레임워크:**
287
+ ```
288
+ 에러 분석 요청:
289
+ - 에러: [정확한 에러 메시지]
290
+ - 컨텍스트: [관련 코드와 환경 정보]
291
+ - 기대 동작: [일어나야 할 일]
292
+ - 실제 동작: [실제로 일어나는 일]
293
+ - 해결 제약: [변경할 수 없는 것]
294
+ - 해결 요구: [솔루션 기준]
295
+ ```
296
+
297
+ ## 2025년 최신 UI/UX 트렌드 반영
298
+
299
+ ### 현재 주요 디자인 트렌드
300
+
301
+ **글래스모피즘과 뉴모피즘:**
302
+ ```
303
+ 모던 카드 컴포넌트 생성:
304
+ - 글래스모피즘: backdrop-filter blur 효과, 투명도
305
+ - 뉴모피즘: 부드러운 3D 효과, 미묘한 그림자
306
+ - 다크 모드: 시스템 설정 감지, 매끄러운 전환
307
+ - 마이크로 인터랙션: CSS 애니메이션 활용
308
+ - 벤토 그리드: CSS Grid로 모듈형 콘텐츠 블록
309
+ ```
310
+
311
+ ### AI 기반 개인화
312
+
313
+ **적응형 UI 구현:**
314
+ ```
315
+ 사용자 행동 기반 개인화 인터페이스:
316
+ - 행동 추적: 사용자 상호작용 패턴 분석
317
+ - 콘텐츠 추천: 개인화된 콘텐츠 표시
318
+ - 적응형 레이아웃: 사용 패턴에 따른 UI 조정
319
+ - 예측적 UI: 사용자 의도 예측 인터페이스
320
+ - 동적 콘텐츠: 실시간 개인화 로딩
321
+ ```
322
+
323
+ ## 한국어 사용자를 위한 특화 가이드
324
+
325
+ ### 한국 시장 맞춤 디자인
326
+
327
+ **문화적 고려사항:**
328
+ ```
329
+ 한국 사용자 대상 인터페이스 설계:
330
+ - 시각적 선호: 깔끔하고 정리된 레이아웃, 충분한 여백
331
+ - 상호작용 패턴: 모바일 우선 사용, 세로 스크롤링 선호
332
+ - 신뢰 요소: 인증서, 고객 후기, 브랜드 평판
333
+ - 커뮤니케이션: 정중하고 공식적인 언어, 관계 중심
334
+ - 소셜 통합: 카카오톡 공유, 네이버 연동, 커뮤니티 기능
335
+ ```
336
+
337
+ **한글 타이포그래피:**
338
+ ```
339
+ 한글 최적화 타이포그래피 시스템:
340
+ - 폰트 선택: Noto Sans KR, Source Han Sans, Black Han Sans
341
+ - 계층구조: 한글 문자 높이를 고려한 헤딩 레벨
342
+ - 가독성: 한글 텍스트 행간, 문자 밀도 최적화
343
+ - 다국어 지원: 한영 혼용 콘텐츠, 폰트 폴백
344
+ - 성능: 웹폰트 최적화, 문자 서브셋팅
345
+ ```
346
+
347
+ ### 로컬라이제이션 체크리스트
348
+
349
+ **한국 웹 표준 준수:**
350
+ ```
351
+ 한국 웹 접근성 및 표준 적용:
352
+ - 접근성: KWCAG 준수, 스크린 리더 호환성
353
+ - 성능: 한국 네트워크 최적화, CDN 고려사항
354
+ - 결제 통합: 카카오페이, 네이버페이, 로컬 신용카드
355
+ - 소셜 로그인: 카카오톡, 네이버, 로컬 플랫폼 연동
356
+ - 검색 최적화: 네이버 SEO, 로컬 검색 패턴
357
+ ```
358
+
359
+ ## 실무 적용을 위한 체크리스트
360
+
361
+ ### 프로젝트 시작 전 준비
362
+
363
+ 1. **요구사항 명확화**: 구체적인 목표와 제약사항 정의
364
+ 2. **사용자 리서치**: 타겟 사용자와 사용 맥락 이해
365
+ 3. **기술 스택 결정**: 프레임워크, 라이브러리, 도구 선택
366
+ 4. **디자인 시스템**: 기존 시스템 또는 신규 구축 계획
367
+ 5. **접근성 요구사항**: WCAG 준수 수준과 특별 요구사항
368
+
369
+ ### 품질 보증 체크리스트
370
+
371
+ **배포 전 검증:**
372
+ - [ ] 접근성 준수 (WCAG 2.1 AA)
373
+ - [ ] 반응형 디자인 테스트
374
+ - [ ] 성능 최적화
375
+ - [ ] 크로스 브라우저 호환성
376
+ - [ ] 에러 처리 구현
377
+ - [ ] 로딩 상태 관리
378
+ - [ ] 키보드 내비게이션 지원
379
+ - [ ] 스크린 리더 호환성
380
+ - [ ] 색상 대비 검증
381
+ - [ ] 모바일 사용성 테스트