Home - ssseok/wedding.invitation GitHub Wiki

Wedding Invitation Wiki

01. μ†Œκ°œ

React 기반으둜 λ§Œλ“  λͺ¨λ°”일 결혼청첩μž₯μž…λ‹ˆλ‹€.

λˆ„κ΅¬λ‚˜ μ†μ‰½κ²Œ μ»€μŠ€ν…€ν•  수 μžˆκ²Œλ” μ œμž‘ν•˜μ˜€μŠ΅λ‹ˆλ‹€.(μžμ„Έν•˜κ²Œ μ μ–΄λ†“μ•˜μœΌλ‹ˆ Wikiλ₯Ό λ΄μ£Όμ„Έμš”)

λ¬Έμ œκ°€ μžˆκ±°λ‚˜ μ½”λ“œμ— 버그가 μžˆλ‹€λ©΄ μ•„λ‚Œμ—†μ΄ Issues ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

ν™ˆνŽ˜μ΄μ§€ λ°”λ‘œκ°€κΈ°


02. Localμ—μ„œ μ‚¬μš©λ°©λ²•

  • Clone λΆ€λΆ„μ—μ„œ HTTPS, SSH, GitHub CLI 방법 쀑 ν•˜λ‚˜λ₯Ό κ³¨λΌμ„œ 볡사해 μ€λ‹ˆλ‹€. (SSH λ°©λ²•μœΌλ‘œ μ•Œλ €λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.)
  • λ§Œλ“€κ³  싢은 곳에닀가 git clone [email protected]:ssseok/wedding.invitation.git을 clone ν•΄μ€λ‹ˆλ‹€.
  • git clone 전에 일단 git μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό λͺ…λ Ήμ–΄κ°€ κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— https://git-scm.com/downloads μ°Έκ³ ν•˜μ‹œκΈΈ λ°”λžλ‹ˆλ‹€.
  • λ§Œλ“€κ³  싢은 곳에 wedding.invitationλΌλŠ” 폴더가 λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€. cd wedding.invitation으둜 λ“€μ–΄κ°€ μ€λ‹ˆλ‹€.
bun install
  • bun νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•΄ μ€λ‹ˆλ‹€.
bun run dev
  • Localμ—μ„œ μ‹€ν–‰ν•˜λŠ” λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€. (기본적으둜 http://localhost:5173/ 으둜 싀행이 λ©λ‹ˆλ‹€.)

03. κΈ°λŠ₯

μŠ€ν”Œλž˜μ‹œ ν™”λ©΄

슀크둀 μ• λ‹ˆλ©”μ΄μ…˜ & 결혼 μΆ•ν•˜ 문ꡬ

μ—°λ½μ²˜

μΊ˜λ¦°λ”

가러리

지도λ₯Ό ν™œμš©ν•œ μœ„μΉ˜

κ³„μ’Œλ²ˆν˜Έ

μΆ•ν•˜ λ©”μ‹œμ§€(λ°©λͺ…둝)

κ³΅μœ ν•˜κΈ°

λ°°κ²½μŒμ•…(useVideoCheck(λ°°λ„ˆ λΉ„λ””μ˜€κ°€ μžˆλŠ”μ§€ 체크해 μ£ΌλŠ” hook))


04. Customizing ν•˜λŠ” 방법

λ¨Όμ € 지도(MAP)μ΄λ‚˜ λ°©λͺ…둝(μΆ•ν•˜ λ©”μ‹œμ§€)λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” API KEYλ₯Ό μž…λ ₯ν•˜μ—¬μ•Όν•©λ‹ˆλ‹€. API KEY μ„€μ •ν•˜λŠ” 방법

export const SPLASH_TEXT = [`β—‹β—‹, β—‹β—‹ κ²°ν˜Όν•©λ‹ˆλ‹€.`];

// λΉ„λ””μ˜€ 정보 (첫 ν™”λ©΄ λΉ„λ””μ˜€κ°€ 있으면 λ°°λ„ˆ 이미지 λ³΄λ‹€λŠ” λΉ„λ””μ˜€κ°€ μš°μ„ μ μœΌλ‘œ 보여짐)
export const VIDEO_URL = '';
export const POSTER_URL = '';

// λ°°λ„ˆ 이미지 (λ§¨μœ„ μ²˜μŒμ— λ³΄μ—¬μ§€λŠ” 사진)
export const BANNERIMAGE =
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/d5b8c0a2-13c7-4e81-70ee-20f263346200/tog';

// 결혼 μ΄ˆλŒ€μž₯ 문ꡬ λ‹€μŒμœΌλ‘œ λ³΄μ—¬μ§ˆ 이미지
export const WEDDING_INVITATION_IMAGE =
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/b64b73bf-f02c-42a7-55f9-1dcf79afa700/public';

// 지도 & λ‚ μ§œ 정보
export const WEDDING_DATE = '2025.03.15';
export const WEDDING_LOCATION = 'β—‹β—‹β—‹β—‹ β—‹β—‹β—‹ β—‹F, β—‹β—‹β—‹β—‹';
export const WEDDING_LOCATION_NAME = '○○○○○○○홀';
export const WEDDING_ADDRESS = 'β—‹β—‹β—‹β—‹ β—‹β—‹β—‹ β—‹β—‹β—‹β—‹';
export const WEDDING_LOCATION_TEL = 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹';
export const WEDDING_LOCATION_SUBWAY = '[β—‹β—‹ν˜Έμ„ ] β—‹β—‹μ—­ β—‹β—‹μ—­ β—‹λ²ˆ 좜ꡬ 도보 β—‹λΆ„';
export const WEDDING_LOCATION_BUS = [
  'β—‹β—‹β—‹β—‹ ν•˜μ°¨: β—‹β—‹β—‹, β—‹β—‹β—‹, β—‹β—‹β—‹, β—‹β—‹β—‹, β—‹β—‹β—‹, β—‹β—‹β—‹, β—‹β—‹β—‹, β—‹β—‹β—‹',
  'β—‹β—‹β—‹β—‹ ν•˜μ°¨: β—‹β—‹β—‹, β—‹β—‹β—‹, β—‹β—‹β—‹',
];
export const WEDDING_PARKING = 'β—‹β—‹β—‹λŒ€ λ™μ‹œ μ£Όμ°¨ κ°€λŠ₯ (무료)';
export const WEDDING_MAP_LOT = 37.5739539541608; // 경도
export const WEDDING_MAP_LAT = 127.085105452975; // μœ„λ„

// μ‹ λž‘ & μ‹ λΆ€ 정보
export const GROOM_NAME = 'β—‹β—‹β—‹';
export const GROOM_FATHER_NAME = 'β—‹β—‹β—‹';
export const GROOM_MOTHER_NAME = 'β—‹β—‹β—‹';
export const BRIDE_NAME = 'β—‹β—‹β—‹';
export const BRIDE_FATHER_NAME = 'β—‹β—‹β—‹';
export const BRIDE_MOTHER_NAME = 'β—‹β—‹β—‹';

// μ—°λ½μ²˜
export const GROOM_CONTACT = [
  { designation: 'μ‹ λž‘', name: 'β—‹β—‹β—‹', phone: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { designation: 'μ‹ λž‘ 爢', name: 'β—‹β—‹β—‹', phone: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { designation: 'μ‹ λž‘ 母', name: 'β—‹β—‹β—‹', phone: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
];
export const BRIDE_CONTACT = [
  { designation: 'μ‹ λΆ€', name: 'β—‹β—‹β—‹', phone: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { designation: 'μ‹ λΆ€ 爢', name: 'β—‹β—‹β—‹', phone: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { designation: 'μ‹ λΆ€ 母', name: 'β—‹β—‹β—‹', phone: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
];

// κ³„μ’Œλ²ˆν˜Έ 정보
export const GROOM_ACCOUNTS = [
  { holder: 'β—‹β—‹β—‹', bank: '○○은행', number: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { holder: 'β—‹β—‹β—‹', bank: '○○은행', number: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { holder: 'β—‹β—‹β—‹', bank: '○○은행', number: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
];

export const BRIDE_ACCOUNTS = [
  { holder: 'β—‹β—‹β—‹', bank: '○○은행', number: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { holder: 'β—‹β—‹β—‹', bank: 'β—‹β—‹', number: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
  { holder: 'β—‹β—‹β—‹', bank: '○○○뱅크', number: 'β—‹β—‹β—‹-β—‹β—‹β—‹-β—‹β—‹β—‹β—‹' },
];

// 가러리 이미지
export const GALLERY_IMAGES = [
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/b64b73bf-f02c-42a7-55f9-1dcf79afa700/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/be9c5bb8-696e-4711-c00d-ccdaf35bc000/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/47a01f11-b2b0-411c-578f-2e548e0dcc00/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/75b30063-2783-4260-8f3c-9fa9985aa600/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/d0f72f55-c734-412a-2e89-9f00077d8f00/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/ffda64ea-96b7-42b4-4bcf-32dae73a8700/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/dcf70027-eb72-4555-4c47-b586076bd300/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/f3136807-5528-4684-0cc0-8ac1b396b400/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/779adc77-561f-4c60-991b-2479589be700/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/45acb57a-0415-4ef3-bf59-4287eadbd800/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/1164b3d2-66dc-4e7f-bfab-4f7b2a991700/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/765c3547-13ab-46cb-a5fb-44d4279a1500/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/bdc6075b-bc9c-49ed-0061-abe64e862200/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/9acd1762-59d5-4f10-e1f4-df98365e4300/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/23c7ad63-d811-4787-fdb8-b5e78aeaaf00/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/dbb6da6a-812f-4c7b-811f-3dce367c0500/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/fe4ba775-0ead-429e-42a7-23fbafa31700/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/d4a02fde-d6d1-4959-e96b-7bd8a3724b00/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/7fa74aaa-8f2d-4458-6ccd-dc6f8425d300/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/b5cf04d1-4cdf-4b6d-eaf7-3b176dce4400/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/ae7d220a-3c8c-4480-dbc4-3a64ca55fa00/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/20aa8e87-32c2-455d-db7b-5185d953a400/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/a1bc1868-f673-4ca0-7798-48a091ce1e00/public',
  'https://imagedelivery.net/9PYUDgg_yiUa2u-j77sFBg/58bd90d8-408c-4a53-14ec-51321ac66500/public',
];


05. Vercel둜 λ°°ν¬ν•˜κΈ°

Vercel둜 λ§Œλ“œμ‹ λ‹€λ©΄ μ•„λž˜ 링크λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”.

Vercel λ°°ν¬ν•˜κΈ°