Frontend Wiki - 100-hours-a-week/KTB4-4th-wiki GitHub Wiki

Need U Frontend Wiki

Frontend Repository


๋ชฉ์ฐจ


๊ฐœ๋ฐœ ์ผ์ •

๊ธฐ๊ฐ„ ์ฃผ์š” ์ž‘์—…
MM/DD ~ ์ž‘์—… ๋‚ด์šฉ

์ปจ๋ฒค์…˜ ๋ฃฐ

์ฝ”๋“œ ์ปจ๋ฒค์…˜ (Prettier & ESLint)

๋„ค์ด๋ฐ ๊ทœ์น™

ํ•ญ๋ชฉ ์ผ€์ด์Šค ๊ทœ์น™
์ปดํฌ๋„ŒํŠธ๋ช… PascalCase
์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ๋ช… PascalCase
Hook camelCase, use ์ ‘๋‘์‚ฌ ์‚ฌ์šฉ
Hook ํŒŒ์ผ๋ช… camelCase
๋ณ€์ˆ˜๋ช… camelCase
Boolean ๋ณ€์ˆ˜ camelCase, is / has / can ์ ‘๋‘์‚ฌ ์‚ฌ์šฉ
ํ•จ์ˆ˜๋ช… camelCase, ๋™์‚ฌ + ๋ช…์‚ฌ ํ˜•ํƒœ
์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ camelCase, ๋‚ด๋ถ€ handle~ / Props on~
์ „์—ญ ์ƒ์ˆ˜ UPPER_SNAKE_CASE
Type / Interface PascalCase
ํด๋”๋ช… kebab-case, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณต์ˆ˜ํ˜• ์‚ฌ์šฉ
์ผ๋ฐ˜ ํŒŒ์ผ๋ช… camelCase
์„œ๋ฒ„ ์‘๋‹ต ๋ฐ์ดํ„ฐ API ๋ช…์„ธ ๊ธฐ์ค€ ์‚ฌ์šฉ

๋„ค์ด๋ฐ ์˜ˆ์‹œ

ํ•ญ๋ชฉ ์˜ˆ์‹œ
Component LoginButton, UserProfileCard
Component File LoginButton.tsx
Hook useUserProfile, useOutsideClick
Hook File useUserProfile.ts
Variable loginButton, users, posts
Boolean isLoading, hasError, canSubmit
Function getUserName, updatePosts
Event Handler handleClick, onClick
Constant MAX_RETRY_COUNT
Type / Interface LoginButtonProps, UserResponse
Directory components, image-files
File formatDate.ts, logo.png

Prettier

์˜ต์…˜ ๊ฐ’ ์„ค๋ช…
trailingComma
tabWidth
semi
singleQuote
bracketSpacing
jsxBracketSameLine
printWidth

ESLint

ํ•ญ๋ชฉ ์„ค์ • ๋‚ด์šฉ
๊ธฐ๋ณธ ์„ค์ •
TypeScript ์„ค์ •
๊ธ€๋กœ๋ฒŒ ํ™˜๊ฒฝ
๋ฌด์‹œ ํด๋”
ํ”Œ๋Ÿฌ๊ทธ์ธ
์ปค์Šคํ…€ ๋ฃฐ

๊นƒ ๋ธŒ๋žœ์น˜ ์ „๋žต

๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜

๋ธŒ๋žœ์น˜ ์„ค๋ช…
main ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜
dev ๋ณ„๋„๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ์ž‘์—… ๋ธŒ๋žœ์น˜๋Š” main์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์„ฑ
  • main ๋ธŒ๋žœ์น˜๋Š” ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€
  • main ๋ธŒ๋žœ์น˜ ์ง์ ‘ Push ๊ธˆ์ง€
  • ๋ชจ๋“  ์ž‘์—…์€ GitHub Issue๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์—… ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  • ์ž‘์—… ์™„๋ฃŒ ํ›„ main ๋ธŒ๋žœ์น˜๋กœ Pull Request ์ƒ์„ฑ
  • Pull Request Review ๋ฐ Status Check ํ†ต๊ณผ ํ›„ Merge
  • Merge๊ฐ€ ์™„๋ฃŒ๋œ ์ž‘์—… ๋ธŒ๋žœ์น˜๋Š” ์ฆ‰์‹œ ์‚ญ์ œ

Branch Protection Rules

  • Require a pull request before merging
  • Require 1์ธ ์ด์ƒ Approve
    • Backend ๊ฐœ๋ฐœ์ž 1์ธ ์ด์ƒ ํ™•์ธ
  • Require status checks to pass
    • lint
    • build
  • ์ง์ ‘ Push ๊ธˆ์ง€
  • Force Push ๊ธˆ์ง€

์ž‘์—… ๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ ๊ทœ์น™

ํ˜•์‹:

{message}/{issue-number}-{์ž‘์—…๋ช…}

๋ธŒ๋žœ์น˜ ํƒ€์ž… ๋„ค์ด๋ฐ ํŒจํ„ด
๊ธฐ๋Šฅ ์ถ”๊ฐ€ feature/{issue-number}-{์ž‘์—…๋ช…}
๋ฒ„๊ทธ ์ˆ˜์ • fix/{issue-number}-{์ž‘์—…๋ช…}
๋ฆฌํŒฉํ† ๋ง refactor/{issue-number}-{์ž‘์—…๋ช…}
๋ฌธ์„œ ์ˆ˜์ • docs/{issue-number}-{์ž‘์—…๋ช…}
ํ…Œ์ŠคํŠธ test/{issue-number}-{์ž‘์—…๋ช…}
CI/CD ci-cd/{issue-number}-{์ž‘์—…๋ช…}

์˜ˆ์‹œ:

  • feature/3-login-page
  • fix/12-login-error
  • refactor/21-user-query
  • docs/25-update-wiki
  • test/31-login-form
  • ci-cd/40-deploy-workflow

๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ ๊ทœ์น™

  • ์ž‘์—…๋ช…์€ kebab-case ์‚ฌ์šฉ
  • ๊ด€๋ จ GitHub Issue ๋ฒˆํ˜ธ ํ•„์ˆ˜ ํฌํ•จ
  • GitHub Issue ์ƒ์„ฑ ํ›„ ์ž‘์—… ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€

ํ˜•์‹:

{message}: {๊ธฐ๋Šฅ}

์˜ˆ์‹œ:

feat: ๋กœ๊ทธ์ธ ๊ตฌํ˜„

์ปค๋ฐ‹ ์œ ํ˜• ์„ค๋ช…
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋˜๋Š” ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ˆ˜์ •
fix ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •
docs ๋ฌธ์„œ ๋ฐ ์ฃผ์„ ์ˆ˜์ •
style ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ฐ ํฌ๋งทํŒ… ์ˆ˜์ •. UI ์Šคํƒ€์ผ๋ง ๋ณ€๊ฒฝ์€ feat ์‚ฌ์šฉ
refact ๊ธฐ๋Šฅ ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
chore ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ • ๋ฐ ๊ธฐํƒ€ ์„ค์ • ๋ณ€๊ฒฝ (.gitignore ๋“ฑ)
ci/cd ๋นŒ๋“œ, ๋ฐฐํฌ ๋ฐ Workflow ์„ค์ • ์ˆ˜์ •
design UI ๊ด€๋ จ ์ž‘์—…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ feat๋ฅผ ์‚ฌ์šฉ
comment ์ฃผ์„ ๊ด€๋ จ ์ž‘์—…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ docs๋ฅผ ์‚ฌ์šฉ
rename ํŒŒ์ผยทํด๋” ์ด๋ฆ„ ๋ณ€๊ฒฝ์€ ์ž‘์—… ๋ชฉ์ ์— ๋งž๋Š” Message ์‚ฌ์šฉ
remove ์ฝ”๋“œยทํŒŒ์ผ ์ œ๊ฑฐ๋Š” ์ž‘์—… ๋ชฉ์ ์— ๋งž๋Š” Message ์‚ฌ์šฉ
BREAKING CHANGE ๊ธฐ์กด ๊ธฐ๋Šฅ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ๋ฐœ์ƒ ์‹œ ๋ช…์‹œ
HOTFIX ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ ๊ธด๊ธ‰ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ

Emoji Convention

Emoji Message Description
โœจ feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ˆ˜์ •
๐Ÿ› fix ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •
๐Ÿ“• docs ๋ฌธ์„œ ๋ฐ ์ฃผ์„ ์ˆ˜์ •
๐ŸŽจ style ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ฐ ํฌ๋งทํŒ… ์ˆ˜์ •
โ™ป๏ธ refact ๊ธฐ๋Šฅ ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง
โœ… test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
๐Ÿ“Œ chore ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ • ๋ฐ ๊ธฐํƒ€ ์„ค์ • ๋ณ€๊ฒฝ
๐Ÿš€ ci/cd ๋นŒ๋“œ, ๋ฐฐํฌ ๋ฐ Workflow ์„ค์ • ์ˆ˜์ •

Issue ์ปจ๋ฒค์…˜

Issue Title

ํ˜•์‹:

[{Message}] {์ž‘์—…๋ช…}

์˜ˆ์‹œ:

[Feat] ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„

Issue ์ž‘์„ฑ ๊ทœ์น™

  • .github/ISSUE_TEMPLATE/์— Issue Template ๊ด€๋ฆฌ
    • feature.md
    • bug.md
  • Issue ์ œ๋ชฉ์€ ์ •ํ•ด์ง„ Convention์„ ๋”ฐ๋ฆ„
  • Assignees ํ•„์ˆ˜ ์„ค์ •
  • Labels ํ•„์ˆ˜ ์„ค์ •
  • Projects ํ•„์ˆ˜ ์„ค์ •
  • ์ž‘์—… ๋‹จ์œ„๊ฐ€ ํฐ ๊ฒฝ์šฐ ํ•˜์œ„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„๋ฆฌ

Issue Template

### ์ž‘์—… ๋‚ด์šฉ
- ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ

### ์ฒดํฌ๋ฆฌ์ŠคํŠธ
- [ ] ์„ธ๋ถ€ ์ž‘์—… 1
- [ ] ์„ธ๋ถ€ ์ž‘์—… 2

### ์ฐธ๊ณ  ์ž๋ฃŒ
- ๋””์ž์ธ, ๋ฌธ์„œ ๋งํฌ

PR ์ปจ๋ฒค์…˜

์˜ˆ์‹œ:

Feature(#3): ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„

PR Title

ํ˜•์‹:

{Message}(#{issue-number}): {์ž‘์—…๋ช…}

ํƒœ๊ทธ ์˜๋ฏธ ์„ค๋ช…
refactor ์ฝ”๋“œ ๊ตฌ์กฐ ๊ฐœ์„  ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ์ฝ”๋“œ ๊ตฌ์กฐ ๋ฐ ๊ฐ€๋…์„ฑ ๊ฐœ์„ 
perf ์„ฑ๋Šฅ ๊ฐœ์„  ๋ Œ๋”๋ง, ๋„คํŠธ์›Œํฌ ๋“ฑ ์„ฑ๋Šฅ ๊ด€๋ จ ๊ฐœ์„ 
remove ์ฝ”๋“œ/ํŒŒ์ผ ์ œ๊ฑฐ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ๋˜๋Š” ํŒŒ์ผ ์ œ๊ฑฐ
fix ๋ฒ„๊ทธ ์ˆ˜์ • ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ์˜ค๋ฅ˜ ์ˆ˜์ •
hotfix ๊ธด๊ธ‰ ์ˆ˜์ • ๋ฐฐํฌ ํ›„ ๊ธด๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ
feature ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋˜๋Š” UI ๊ธฐ๋Šฅ ๊ตฌํ˜„
feature UI/์Šคํƒ€์ผ ์ˆ˜์ • ์„œ๋น„์Šค UI ๋ฐ ์Šคํƒ€์ผ ๊ตฌํ˜„ยท๋ณ€๊ฒฝ
revert ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋˜๋Œ๋ฆฌ๊ธฐ ์ด์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต์›
merge ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ๋ธŒ๋žœ์น˜ ๊ฐ„ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณ‘ํ•ฉ
docs ์ฃผ์„ ์ถ”๊ฐ€/์ˆ˜์ • ๋ฌธ์„œ ๋˜๋Š” ์ฃผ์„ ๊ด€๋ จ ์ˆ˜์ •
db DB ๊ด€๋ จ ๋ณ€๊ฒฝ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ด€๋ จ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

PR ์ž‘์„ฑ ๊ทœ์น™

  • ๊ด€๋ จ Issue ๋ฒˆํ˜ธ ๋ฐ˜๋“œ์‹œ ์—ฐ๊ฒฐ
  • PR ๋ณธ๋ฌธ์— Closes #{issue-number} ์ž‘์„ฑ
  • Merge ์‹œ ์—ฐ๊ฒฐ๋œ Issue ์ž๋™ Close
  • Reviewers ์„ค์ •
  • Assignees ์„ค์ •
  • Projects ์—ฐ๊ฒฐ
  • Labels ์„ค์ •
  • PR ์ œ๋ชฉ์˜ Message์™€ Label ํ†ต์ผ
  • PR Merge๋Š” Squash and Merge ์‚ฌ์šฉ
  • Merge ์™„๋ฃŒ ํ›„ ์ž‘์—… ๋ธŒ๋žœ์น˜ ์‚ญ์ œ

Label ์˜ˆ์‹œ

Message Label:

  • feature
  • fix
  • refactor
  • docs
  • test
  • ci/cd

๊ธฐ๋Šฅ ์˜์—ญ Label:

  • calendar๐Ÿ—“๏ธ
  • gift๐ŸŽ

Pull Request Template

.github/PULL_REQUEST_TEMPLATE.md

### ๊ตฌํ˜„ ๋ฐฐ๊ฒฝ
- Closes #3
- ์ž‘์—… ๋™๊ธฐ

### ์ž‘์—… ์‚ฌํ•ญ
- ๊ตฌํ˜„ ์‚ฌํ•ญ
    - ์„ธ๋ถ€ ๊ตฌํ˜„ ์‚ฌํ•ญ

### ์ถ”๊ฐ€ ๋…ผ์˜
- ๊ตฌํ˜„ ์ค‘ ๋ฐœ์ƒํ•œ ์ด์Šˆ
- ์ถ”๊ฐ€๋กœ ํ•˜๊ณ  ์‹ถ์€ ๋ง

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…


์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—ญํ•  / ์„ค๋ช…
Next.js React ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ. App Router์™€ SSR์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ๋ฐ ๋ผ์šฐํŒ… ๊ตฌ์„ฑ
React ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
TypeScript ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ์ปดํฌ๋„ŒํŠธ, API ๋ฐ ์ƒํƒœ ํƒ€์ž… ๊ด€๋ฆฌ
Tailwind CSS Utility Class ๊ธฐ๋ฐ˜ ์Šคํƒ€์ผ๋ง ๋ฐ ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ
Radix Primitives ์ ‘๊ทผ์„ฑ์„ ๊ณ ๋ คํ•œ Headless UI Primitive ์ œ๊ณต
TanStack Query REST API ์„œ๋ฒ„ ์ƒํƒœ ์บ์‹ฑ ๋ฐ ๋™๊ธฐํ™”
Zustand ํ…Œ๋งˆ์™€ ์ „์—ญ UI ์ƒํƒœ ๊ด€๋ฆฌ
React Hook Form ํผ ์ž…๋ ฅ๊ฐ’, Validation, Error ๋ฐ Submit ์ƒํƒœ ๊ด€๋ฆฌ
Zod ์ž…๋ ฅ๊ฐ’ ๋ฐ API ์‘๋‹ต ๋ฐ์ดํ„ฐ Schema ๊ฒ€์ฆ
openapi-fetch OpenAPI ๊ธฐ๋ฐ˜ ํƒ€์ž… ์•ˆ์ „ํ•œ REST API ์š”์ฒญ
@stomp/stompjs STOMP over WebSocket ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ต๋ช… ์ฑ„ํŒ…
React DayPicker ๋‹ฌ๋ ฅ UI ๋ฐ ๋‚ ์งœ ์„ ํƒ
Firebase Cloud Messaging Web Push ์•Œ๋ฆผ ์ˆ˜์‹  ๋ฐ Registration Token ๊ด€๋ฆฌ
Workbox PWA Service Worker ๊ตฌ์„ฑ ๋ฐ ๊ด€๋ฆฌ
Lucide React ๊ณตํ†ต UI ์•„์ด์ฝ˜
date-fns ๋‚ ์งœ ๊ณ„์‚ฐ ๋ฐ ๋ณ€ํ™˜
MSW API Mocking
Sentry ํ”„๋ก ํŠธ์—”๋“œ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ๋ฐ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง

๋””์ž์ธ ์‹œ์Šคํ…œ


๋ฐฐํฌ ํ™˜๊ฒฝ ๋ฐ CI/CD ํŒŒ์ดํ”„๋ผ์ธ

๋ฐฐํฌ ํ™˜๊ฒฝ

ํ•ญ๋ชฉ ๊ธฐ์ˆ 
Framework Next.js
Runtime Node.js
Hosting AWS Amplify Hosting
Repository GitHub
CI/CD GitHub Actions
Package Manager npm

๋ฐฐํฌ ์›์น™

  • main ๋ธŒ๋žœ์น˜๋Š” ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ์œ ์ง€
  • main ์ง์ ‘ Push ๊ธˆ์ง€
  • ๋ชจ๋“  ์ฝ”๋“œ ๋ณ€๊ฒฝ์€ Pull Request๋ฅผ ํ†ตํ•ด ๋ฐ˜์˜
  • Merge ์ „ ํ•„์ˆ˜ Status Check ํ†ต๊ณผ
    • lint
    • build
  • Review ์Šน์ธ ํ›„ Squash and Merge ์‚ฌ์šฉ

CI/CD ํ๋ฆ„

Issue ์ƒ์„ฑ

โ†’ ์ž‘์—… ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

โ†’ ๊ฐœ๋ฐœ ๋ฐ Commit

โ†’ Pull Request ์ƒ์„ฑ

โ†’ Lint ๊ฒ€์‚ฌ

โ†’ Build ๊ฒ€์‚ฌ

โ†’ Code Review

โ†’ Approve

โ†’ Squash and Merge

โ†’ main ๋ฐ˜์˜

โ†’ AWS Amplify ๋ฐฐํฌ

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ

  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ Secret์€ Repository์— ์ง์ ‘ Commitํ•˜์ง€ ์•Š์Œ
  • GitHub Actions Secrets ์‚ฌ์šฉ
  • AWS Amplify Environment Variables ์‚ฌ์šฉ
  • .env ํŒŒ์ผ๊ณผ Secret ๊ฐ’์€ Git Repository์— Commitํ•˜์ง€ ์•Š์Œ

์ฝ”๋“œ ํ’ˆ์งˆ ๊ด€๋ฆฌ ๋„๊ตฌ

๋„๊ตฌ ์—ญํ•  ๋ชฉ์ 
๋„๊ตฌ๋ช…

ํ…Œ์ŠคํŠธ ์ „๋žต

๋„๊ตฌ ์—ญํ•  ๋ชฉ์ 
๋„๊ตฌ๋ช…
โš ๏ธ **GitHub.com Fallback** โš ๏ธ