issue reservation - f-lab-edu/at_ticket GitHub Wiki

μ˜ˆμ•½ν•˜κΈ° - μ„ μ’Œμ„ μ˜ˆμ•½λ°©μ‹

κ°œμš”

저희 ν‹°μΌ“ μ˜ˆμ•½ μ„œλΉ„μŠ€μ—μ„œ 핡심인 μ˜ˆμ•½ν•˜κΈ° κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„œ λ‹€λ₯Έ μ„œλΉ„μŠ€λ“€μ˜ μ˜ˆμ•½ 방식듀을 ν•œλ²ˆ μ°Ύμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

크게 2κ°€μ§€ 방식이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

1. μ„ μ’Œμ„ μ˜ˆμ•½λ°©μ‹
2. μ„ κ²°μ œ μ˜ˆμ•½λ°©μ‹

μ„ μ’Œμ„ μ˜ˆμ•½λ°©μ‹

결제 전에 λ¨Όμ € μ’Œμ„μ„ μ„ νƒν•œ μ‚¬μš©μžμ—κ²Œ μš°μ„ κΆŒμ„ λΆ€μ—¬ν•œ 후에 결제λ₯Ό ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

μž₯μ μœΌλ‘œλŠ” 같은 μ’Œμ„μ— λŒ€ν•΄μ„œ λ™μ‹œμ— κ²°μ œν•˜λŠ” 경우λ₯Ό λ°°μ œν•  수 있기 λ•Œλ¬Έμ— 비ꡐ적 μ‰¬μš΄ κ΅¬ν˜„μ΄λΌκ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹¨μ μœΌλ‘œλŠ” μ‚¬μš©μž μž…μž₯μ—μ„œ μ’Œμ„μ„ 계속 κ²°μ œν•˜μ§€ μ•Šκ³  μ˜ˆμ•½ν•  수 있기 λ•Œλ¬Έμ— 계속 μ˜ˆμ•½ μ’Œμ„μ„ μ„ μ ν•˜μ—¬ μ•…μš©ν•  μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ μ‚¬μš©μž λ³„λ‘œ 미결제인 μ˜ˆμ•½ μ’Œμ„ 수λ₯Ό μ œν•œν•˜κ³ , 결제 λ§ˆκ°μ‹œκ°„μ„ λΆ€μ—¬ν•˜μ—¬ κ²°μ œκ°€ λŠ¦μ–΄μ§€λŠ” μ˜ˆμ•½ 건에 λŒ€ν•΄μ„œ μžλ™μœΌλ‘œ μ˜ˆμ•½ μ·¨μ†Œκ°€ λ˜λ„λ‘ ν•˜λŠ” κΈ°λŠ₯듀을 λΆ€μˆ˜μ μœΌλ‘œ λ§Œλ“€μ–΄μ•Ό ν•˜λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€.

μ„ κ²°μ œ μ˜ˆμ•½λ°©μ‹

λ¨Όμ € 결제λ₯Ό μ™„λ£Œν•œ μ‚¬μš©μžμ—κ²Œ μš°μ„ κΆŒμ„ λΆ€μ—¬ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

μž₯점은 직관적인 μ˜ˆμ•½λ°©μ‹μœΌλ‘œ μ•žμ„œ μ„ μ’Œμ„ μ˜ˆμ•½λ°©μ‹μ—μ„œ λΆ€μˆ˜μ μœΌλ‘œ λ§Œλ“€μ–΄μ•Ό ν•˜λŠ” 뢀뢄이 ν•„μš” μ—†μŠ΅λ‹ˆλ‹€.

단점은 λ‹€μˆ˜μ˜ μ‚¬μš©μžκ°€ λ™μ‹œμ— 결제 μš”μ²­μ„ ν•œ κ²½μš°μ— λŒ€ν•΄μ„œ μ‹ κ²½μ“Έ 뢀뢄이 λ§ŽμŠ΅λ‹ˆλ‹€.

κ²°μ œμ™„λ£Œκ°€ λŠ¦μ€ μ‚¬μš©μžλ“€μ—κ²ŒλŠ” λ‹€μ‹œ ν™˜λΆˆ λ˜λ„λ‘ ν•˜λŠ” κ΅¬μ‘°λŠ” μ‚¬μš©μž κ²½ν—˜μ„ λ–¨μ–΄νŠΈλ¦¬λ―€λ‘œ κ²°μ œκ°€ 진행이 λ˜μ§€ μ•Šλ„λ‘ ν•΄μ•Όν•˜κ³ , κ²°μ œκ°€ μ™ΈλΆ€ μ‹œμŠ€ν…œμΌ 경우 νŠΈλžœμž­μ…˜ μ²˜λ¦¬κ°€ λ³΅μž‘ν•˜κΈ° λ•Œλ¬Έμ— κ΅¬ν˜„ λ‚œμ΄λ„κ°€ λ†’λ‹€λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€.

선택

μ €ν¬λŠ” 일단 μ™ΈλΆ€ 결제 μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•  것이기 λ•Œλ¬Έμ—, ν›„μžμ˜ 경우λ₯Ό μ„ νƒν•œλ‹€λ©΄ λ³΅μž‘ν•œ νŠΈλžœμž­μ…˜ 처리λ₯Ό ν•˜κ³  κΈ°λŠ₯을 μ•ˆμ •μ μœΌλ‘œ κ΅¬ν˜„ν•˜λŠ”λ°μ— μ‹œκ°„μ΄ 많이 λ“€ 것이라 νŒλ‹¨λ˜μ–΄ μ „μžμΈ μ„ μ’Œμ„ μ˜ˆμ•½λ°©μ‹μ„ μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€.

μ„ μ’Œμ„ μ˜ˆμ•½λ°©μ‹ ν”„λ‘œμ„ΈμŠ€

μ„ μ’Œμ„ μ˜ˆμ•½λ°©μ‹μ˜ ν”„λ‘œμ„ΈμŠ€λŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

  • 1단계. μ„ μ’Œμ„ μ˜ˆμ•½ API 호좜
    • μ˜ˆμ•½ κ°€λŠ₯ν•œ μ’Œμ„μΈ 경우 μ˜ˆμ•½ 데이터 μΆ”κ°€ ν›„ 2단계 μ§„ν–‰
    • μ˜ˆμ•½ κ°€λŠ₯ν•œ μ’Œμ„μ΄ μ•„λ‹Œ 경우 μ—λŸ¬ 처리
  • 2단계. 결제 λͺ¨λ“ˆ 호좜
    • κ²°μ œμ— μ„±κ³΅ν–ˆλ‹€λ©΄ 3단계 μ§„ν–‰
    • κ²°μ œμ— μ‹€νŒ¨ν–ˆλ‹€λ©΄ μ—λŸ¬ 처리
  • 3단계. μ˜ˆμ•½ API 호좜
    • μ˜ˆμ•½ 데이터와 결제 λͺ¨λ“ˆ 영수증 데이터가 μΌμΉ˜ν•˜λ©΄ μ˜ˆμ•½ μƒνƒœ μ™„λ£Œλ‘œ λ³€κ²½
    • μ˜ˆμ•½ 데이터와 결제 λͺ¨λ“ˆ 영수증 데이터가 μΌμΉ˜ν•˜μ§€ μ•ŠμœΌλ©΄ 결제 μ·¨μ†Œ ν›„ μ—λŸ¬ 처리

고렀사항

μ’Œμ„ μ˜ˆμ•½ λ™μ‹œ μš”μ²­

μ’Œμ„μ„ λ™μ‹œμ— μ˜ˆμ•½ν•˜λŠ” κ²½μš°μ— λŒ€ν•΄μ„œλŠ” μ€‘λ³΅λ˜λŠ” 데이터가 λ°œμƒν•˜μ§€ μ•Šλ„λ‘ μ’Œμ„ id와 곡연 id에 mysql 볡합킀λ₯Ό μ£Όμ–΄ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

image

결제 가격 μ‘°μž‘

결제 λͺ¨λ“ˆμ˜ ν˜ΈμΆœμ„ front μͺ½μ—μ„œ ν•˜κΈ° λ•Œλ¬Έμ— μ•…μ„± μ‚¬μš©μžκ°€ 결제 가격을 μ‘°μž‘ν•˜λŠ” 일말의 κ°€λŠ₯성이 μžˆλ‹€κ³  생각을 ν–ˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ μ˜ˆμ•½ APIμ—μ„œ ν•΄λ‹Ή μ˜ˆμ•½ 데이터와 영수증 λ°μ΄ν„°μ˜ μ’Œμ„ id, 곡연 id, μ‚¬μš©μž id 비ꡐ 뿐만이 μ•„λ‹ˆλΌ, ν•΄λ‹Ή μ˜ˆμ•½ μ’Œμ„μ˜ 가격과 영수증 λ°μ΄ν„°μ˜ 가격도 λΉ„κ΅ν•˜λŠ” 뢀뢄을 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

미결제 μ˜ˆμ•½

미결제 μ˜ˆμ•½μ˜ 경우 계속 ν•΄λ‹Ή μ‚¬μš©μžμ—κ²Œ μ’Œμ„μ— λŒ€ν•œ μš°μ„ κΆŒμ„ λΆ€μ—¬ν•˜λ©΄ μ•ˆλ˜κΈ° λ•Œλ¬Έμ—, 미결제 μ˜ˆμ•½μ— λŒ€ν•œ μ‚­μ œ μ²˜λ¦¬κ°€ ν•„μš”ν•˜λ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

아직 κΈ°λŠ₯이 μ™„μ„±λ˜μ§€λŠ” μ•Šμ•˜μ§€λ§Œ 5λΆ„μ˜ 결제 μ‹œκ°„μ„ μ£Όκ³  결제 λ§ˆκ°μ‹œκ°„μ„ κ²½κ³Όν•˜λ©΄ μ’Œμ„ μ˜ˆμ•½ 데이터λ₯Ό μ‚­μ œν•˜λŠ” 배치 ν”„λ‘œκ·Έλž¨μ„ μΆ”κ°€ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.