Skip to content

Latest commit

Β 

History

History
231 lines (196 loc) Β· 20 KB

README.md

File metadata and controls

231 lines (196 loc) Β· 20 KB

PriceGuard

priceguard_icon_web

πŸ›‘οΈ ν”„λ‘œμ νŠΈ μ†Œκ°œ

μ›ν•˜λŠ” μƒν’ˆμ˜ 가격을 μΆ”μ ν•˜κ³  μ €λ ΄ν• λ•Œ κ΅¬μž…ν•˜μ„Έμš”!

PriceGuardλŠ” κ΅­λ‚΄ μƒκ±°λž˜ μ‚¬μ΄νŠΈλ“€μ˜ μƒν’ˆ 가격을 μΆ”μ ν•©λ‹ˆλ‹€.
μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μƒν’ˆ 링크λ₯Ό λ“±λ‘ν•˜λ©΄ ν•΄λ‹Ή μƒν’ˆλ“€μ˜ 정보λ₯Ό 주기적으둜 ν™•μΈν•©λ‹ˆλ‹€.
μ‚¬μš©μžκ°€ λͺ©ν‘œ 가격을 μ„€μ •ν•΄μ„œ λͺ©ν‘œ 가격 μ΄ν•˜μΈ μƒν’ˆμ΄ 있으면 μ•Œλ¦Όμ„ λ³΄λƒ…λ‹ˆλ‹€.
λ˜ν•œ μ•± λ‚΄μ—μ„œ μ›ν•˜λŠ” μƒν’ˆμ˜ 가격 λ³€ν™”λ₯Ό κ·Έλž˜ν”„λ‘œ ν‘œν˜„ν•©λ‹ˆλ‹€.

μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ•„λž˜ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μš΄λ‘œλ“œν•˜κΈ° Google Play

πŸ₯… 기술적 도전

우리 νŒ€μ€ 이 ν”„λ‘œμ νŠΈμ—μ„œ λ‹€μŒκ³Ό 같은 기술적 도전 과제λ₯Ό ν•΄κ²°ν•˜λ € ν•©λ‹ˆλ‹€.

  1. κ·Έλž˜ν”„λ₯Ό 그릴 수 μžˆλŠ” κΈ°λŠ₯을 κ°œλ°œν•˜κ³  이λ₯Ό 보닀 일반적인 상황에 μ“Έ 수 μžˆλ„λ‘ λΌμ΄λΈŒλŸ¬λ¦¬ν™”ν•œλ‹€.
  2. λ‹€μ–‘ν•œ μ•ˆλ“œλ‘œμ΄λ“œ ν…Œλ§ˆμ— λŒ€μ‘ν•  수 μžˆλŠ” μ•ˆλ“œλ‘œμ΄λ“œ 앱을 κ°œλ°œν•œλ‹€.
  3. 주기적으둜 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³ , λ‹€μˆ˜μ˜ μ‚¬μš©μžμ—κ²Œ λŒ€λŸ‰μ˜ 데이터λ₯Ό 전달 및 μ²˜λ¦¬ν•˜λŠ” 과정에 λŒ€ν•œ 효율적인 해결책을 μ°ΎλŠ”λ‹€.

이와 같은 기술적 도전을 ν•΄κ²°ν•˜λŠ” 과정은 μ•„λž˜ λ§ν¬μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. κ·Έλž˜ν”„ 라이브러리 κ΅¬ν˜„
  2. μ•ˆλ“œλ‘œμ΄λ“œ ν…Œλ§ˆ 적용
  3. 데이터 캐싱

κ·Έλž˜ν”„ 라이브러리 κ΅¬ν˜„ 및 배포 μ €μž₯μ†ŒλŠ” μ—¬κΈ°μ„œ ν™•μΈν•΄μ£Όμ„Έμš”.

❓ 문제 ν•΄κ²°

ν”„λ‘œμ νŠΈ 진행 κ³Όμ •μ—μ„œ λ§Œλ‚œ μ΄μŠˆλ“€κ³Ό ν•΄κ²° 방법에 λŒ€ν•΄ κΈ°μˆ ν•©λ‹ˆλ‹€. μ•„λž˜ λ§ν¬μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

DB 쿼리 κ°œμ„ 

가격 κ·Έλž˜ν”„ λ°μ΄ν„°λŠ” DBμ—μ„œ 자주 쑰회되며, 1κ°œμ›”, 3κ°œμ›” λ‹¨μœ„λ‘œ 넓은 λ²”μœ„λ₯Ό 가진 데이터λ₯Ό 뢈러였기 λ•Œλ¬Έμ— 양이 λ§ŽμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ ν”„λ‘œμ νŠΈ κ΅¬μ‘°μ—μ„œ 데이터 쑰회 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ μ–΄λ–€ λ…Έλ ₯을 ν–ˆλŠ”μ§€ κΈ°λ‘ν–ˆμŠ΅λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

λ©”λͺ¨λ¦¬ λˆ„μˆ˜

μ•ˆλ“œλ‘œμ΄λ“œ μ•± 개발 κ³Όμ •μ—μ„œ 발견된 μ—¬λŸ¬ λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 상황에 λŒ€ν•΄ μ†Œκ°œν•©λ‹ˆλ‹€.

μ–΄λ–»κ²Œ λ°œκ²¬ν–ˆλŠ”μ§€, μ™œ λ°œμƒν•˜λŠ”μ§€, μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

RecyclerView κ°±μ‹  였λ₯˜

μ•Œλ¦Ό ν† κΈ€μ˜ 값을 λ³€κ²½ν•˜κ³ , μŠ€ν¬λ‘€μ„ λ‚΄λ Έλ‹€κ°€ λ‹€μ‹œ λŒμ•„μ˜€λ©΄ ν•΄λ‹Ή ν† κΈ€μ˜ 값이 λ³€κ²½ μ΄μ „μ˜ κ°’μœΌλ‘œ λ˜λŒμ•„κ°€λŠ” ν˜„μƒμ΄ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

μ–΄λ–€ 뢀뢄이 잘λͺ»λ˜μ—ˆκ³  μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€λ₯Ό λ‹€λ£¨λŠ” λ¬Έμ„œμž…λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

JWT 인증 처리

ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° μ‚¬μš©μž 인증을 κ΅¬ν˜„ν–ˆλ˜ 과정에 λŒ€ν•΄ μ μ–΄λ³΄κ³ μž ν•©λ‹ˆλ‹€.

JWT 인증 처리λ₯Ό ν•˜λ©΄μ„œ ν–ˆλ˜ κ³ λ―Όκ³Ό 선택 이유λ₯Ό κΈ°λ‘ν–ˆμŠ΅λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

HTTPS

app 루트 도메인은 λͺ¨λ“  연결에 HTTPSλ₯Ό μš”κ΅¬ν•©λ‹ˆλ‹€.

Let's Encryptλ₯Ό ν™œμš©ν•΄ μ–΄λ–»κ²Œ ν•΄λ‹Ή ν”„λ‘œμ νŠΈμ— HTTPSλ₯Ό μ μš©ν–ˆλŠ”μ§€ κΈ°μˆ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

DeepLink 지원 및 DeepLink용 μ›ΉνŽ˜μ΄μ§€ κ΅¬ν˜„

앱이 κΉ”λ¦° 두 μ‚¬λžŒμ΄ μ„œλ‘œ μƒν’ˆ 정보λ₯Ό ν…μŠ€νŠΈλ‘œ κ³΅μœ ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όλ κΉŒμš”?

Deeplink 와 Deeplink μ΄λ™μš© μ›ΉνŽ˜μ΄μ§€μ˜ κ΅¬ν˜„ 과정을 μ†Œκ°œν•©λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

Navigation λ°±μŠ€νƒ 였λ₯˜

Jetpack Navigateμ—μ„œ λ°œμƒν–ˆλ˜ μ—λŸ¬μ— λŒ€ν•΄ μ†Œκ°œν•©λ‹ˆλ‹€.

그리고 ν•΄λ‹Ή μ—λŸ¬μ˜ 원인과 ν•΄κ²° 방법도 μ†Œκ°œν•©λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

ν…Œλ§ˆ λ³€κ²½

ν…Œλ§ˆ λ³€κ²½ λ‹€μ΄μ–Όλ‘œκ·Έλ₯Ό λ§Œλ“€ λ•Œ μ°Έκ³ ν–ˆλ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ Now in Androidμž…λ‹ˆλ‹€.

ν•΄λ‹Ή κΈ°λŠ₯κ³Ό λ˜‘κ°™μ€ μΈν„°λ ‰μ…˜μ„ κ΅¬ν˜„ν•˜λ € ν–ˆμœΌλ‚˜ 잘 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. κ·Έ μ΄μœ μ— λŒ€ν•΄ κΈ°μˆ ν•©λ‹ˆλ‹€.

ν…Œλ§ˆ λ³€κ²½

NestJSμ—μ„œ Redis μ‚¬μš©ν•˜κΈ°

캐싱을 μœ„ν•΄ Redisλ₯Ό NestJS에 μ μš©ν•˜λ©° κ²ͺ은 μ΄μŠˆλ“€μ— λŒ€ν•΄ μ μ–΄λ³΄κ³ μž ν•©λ‹ˆλ‹€.

Redisλ₯Ό μ μš©ν•˜λ©° λͺ¨λ“ˆμ„ 2λ²ˆμ΄λ‚˜ λ³€κ²½ν•˜κ³ , μ½”λ“œλ₯Ό μˆ˜μ •ν–ˆλ˜ 과정에 λŒ€ν•΄ μ†Œκ°œν•©λ‹ˆλ‹€.

λ°”λ‘œκ°€κΈ°

πŸ“š 기술 μŠ€νƒ

λΆ„λ₯˜ 기술 μŠ€νƒ

μ•ˆλ“œλ‘œμ΄λ“œ

λ°±μ—”λ“œ

배포

νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €

ν˜‘μ—…

πŸ›οΈ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

system_architecture

πŸ‘¨β€πŸ‘¨β€πŸ‘¦ νŒ€μ› μ†Œκ°œ

J070 손문기 J157 μ΅œλ³‘μ΅ K001 κ°•μ€ν˜Έ K012 λ°•μŠΉμ€€ K017 λ°•νƒœμ™„
Back-End Back-End Android Android Android

πŸ“ΊοΈŽ μž‘λ™ ν™”λ©΄

둜그인/νšŒμ›κ°€μž… μƒν’ˆ μΆ”μ²œ/μƒν’ˆ 상세 μƒν’ˆ μΆ”κ°€ / λ§ˆμ΄νŽ˜μ΄μ§€ μ•ŒλžŒ 확인

πŸ“ 기술 λ¬Έμ„œ

더 λ§Žμ€ μ •λ³΄λŠ” μ €μž₯μ†Œ Wikiλ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.