Coder Social home page Coder Social logo

boostcampwm2023 / and09-priceguard Goto Github PK

View Code? Open in Web Editor NEW
29.0 3.0 3.0 2.18 MB

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

Home Page: https://play.google.com/store/apps/details?id=app.priceguard&utm_source=github&utm_campaign=gh-home

Kotlin 73.84% JavaScript 0.39% TypeScript 25.71% Dockerfile 0.06%
11st android kotlin naver

and09-priceguard's Introduction

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λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.

and09-priceguard's People

Contributors

eunhokang avatar muungi avatar ootr47 avatar sickbirdd avatar taewan-p avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

and09-priceguard's Issues

[ν‘Έμ‹œμ•Œλ¦Ό] μƒν’ˆμ˜ ν˜„μž¬ 가격이 λͺ©ν‘œ 가격보닀 μž‘κ±°λ‚˜ κ°™μœΌλ©΄ ν‘Έμ‹œ μ•Œλ¦Όμ„ ν•΄λ‹Ή μ‚¬μš©μžμ—κ²Œ 보낸닀.

μš”κ΅¬μ‚¬ν•­

μƒν’ˆμ˜ ν˜„μž¬ 가격이 λͺ©ν‘œ 가격보닀 μž‘κ±°λ‚˜ κ°™μœΌλ©΄ 푸쉬 μ•ŒλžŒμ„ ν•΄λ‹Ή μ‚¬μš©μžμ—κ²Œ 보낸닀.

μΆ”κ°€ 자료

[νšŒμ›κ°€μž… ν™”λ©΄] νšŒμ›κ°€μž… λ²„νŠΌ 클릭 μ‹œ 아이디(이메일)와 λΉ„λ°€λ²ˆν˜Έλ₯Ό μ„œλ²„λ‘œ μ „μ†‘ν•œλ‹€.

μš”κ΅¬μ‚¬ν•­

νšŒμ›κ°€μž… λ²„νŠΌ 클릭 μ‹œ 아이디(이메일)와 λΉ„λ°€λ²ˆν˜Έλ₯Ό μ„œλ²„λ‘œ μ „μ†‘ν•œλ‹€.

μΆ”κ°€ 자료

μΆ”κ°€ 링크 및 μžλ£ŒλŠ” μ—¬κΈ° μ μ–΄μ£Όμ„Έμš”

[μƒν’ˆ μΆ”κ°€ ν™”λ©΄] μ‡Όν•‘λͺ°μ—μ„œ 곡유 -> μ•± μ„ νƒμ‹œ 링크가 μž…λ ₯된 μ±„λ‘œ μƒν’ˆ μΆ”κ°€ νŽ˜μ΄μ§€λ‘œ λ„˜μ–΄μ˜¨λ‹€.

μš”κ΅¬μ‚¬ν•­

μ‡Όν•‘λͺ°μ—μ„œ 곡유 -> μ•± μ„ νƒμ‹œ 링크가 μž…λ ₯된 μ±„λ‘œ μƒν’ˆ μΆ”κ°€ νŽ˜μ΄μ§€λ‘œ λ„˜μ–΄μ˜¨λ‹€.

μΆ”κ°€ 자료

[μƒν’ˆ 상세 ν™”λ©΄] μƒν’ˆ 상세정보λ₯Ό λ°˜ν™˜ν•œλ‹€.

μš”κ΅¬μ‚¬ν•­

μƒν’ˆ 상세정보λ₯Ό λ°˜ν™˜ν•œλ‹€.

ν˜„μž¬ μƒν’ˆ μˆœμœ„, κ·Έλž˜ν”„, μ΅œμ €κ°€ μ •λ³΄λŠ” 더미 λ°μ΄ν„°λ‘œ λŒ€μ²΄ν•˜μ˜€μŒ.

μΆ”κ°€ 자료

μΆ”κ°€ 링크 및 μžλ£ŒλŠ” μ—¬κΈ° μ μ–΄μ£Όμ„Έμš”

[μƒν’ˆ μΆ”κ°€ ν™”λ©΄] 곡유 링크λ₯Ό 톡해 μƒν’ˆ 정보λ₯Ό μ‘°νšŒν•˜μ—¬ λ°˜ν™˜ν•œλ‹€.

μš”κ΅¬μ‚¬ν•­

곡유 링크λ₯Ό 톡해 μƒν’ˆ 정보λ₯Ό μ‘°νšŒν•˜μ—¬ λ°˜ν™˜ν•œλ‹€.

  • axios을 톡해 11λ²ˆκ°€ Open API μ£Όμ†Œλ‘œ μƒν’ˆ 정보 μš”μ²­ (API KEY ν•„μš”)
  • euc-kr둜 인코딩 λ˜μ–΄μžˆλŠ” xml νŒŒμΌμ„ iconv λͺ¨λ“ˆμ„ μ΄μš©ν•΄ λ””μ½”λ”©
  • xml-js λͺ¨λ“ˆμ„ ν™œμš©ν•˜μ—¬ xml νŒŒμΌμ„ json 파일둜 λ³€κ²½
  • μƒν’ˆ μ½”λ“œ, μƒν’ˆ 이름, μƒν’ˆ 가격, 판맀 μ‚¬μ΄νŠΈ, μƒν’ˆ 이미지 url을 λ°˜ν™˜

μΆ”κ°€ 자료

[μƒν’ˆ 상세 ν™”λ©΄] νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•˜μ—¬ μ΅œμ‹  λ°μ΄ν„°λ‘œ λ·°λ₯Ό μ—…λ°μ΄νŠΈν•  수 μžˆλ‹€.

μš”κ΅¬μ‚¬ν•­

νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•˜μ—¬ μ΅œμ‹  λ°μ΄ν„°λ‘œ λ·°λ₯Ό μ—…λ°μ΄νŠΈν•  수 μžˆλ‹€.

μΆ”κ°€ 자료

μΆ”κ°€ 링크 및 μžλ£ŒλŠ” μ—¬κΈ° μ μ–΄μ£Όμ„Έμš”

[μƒν’ˆ 상세 ν™”λ©΄] 가격 κ·Έλž˜ν”„λ₯Ό 톡해 μƒν’ˆμ˜ 가격 변동 좔이λ₯Ό 보여쀄 수 μžˆλ‹€.

μš”κ΅¬μ‚¬ν•­

가격 κ·Έλž˜ν”„λ₯Ό 톡해 μƒν’ˆμ˜ 가격 변동 좔이λ₯Ό 보여쀄 수 μžˆλ‹€.

μΆ”κ°€ 자료

μΆ”κ°€ 링크 및 μžλ£ŒλŠ” μ—¬κΈ° μ μ–΄μ£Όμ„Έμš”

[인기 μƒν’ˆ λͺ©λ‘ ν™”λ©΄] μ„œλ²„κ°€ λͺ¨λ“  μƒν’ˆμ— λŒ€ν•΄ νŠΈλž˜ν‚Ή 쀑인 μ‚¬μš©μžκ°€ λ§Žμ€ μˆœμ„œλ‘œ μ‘λ‹΅ν•œλ‹€.

μš”κ΅¬μ‚¬ν•­

μΈκΈ°μƒν’ˆλͺ©λ‘μ—μ„œ μ„œλ²„κ°€ λͺ¨λ“  μƒν’ˆμ— λŒ€ν•΄ νŠΈλž˜ν‚Ή 쀑인 μ‚¬μš©μžκ°€ λ§Žμ€ μˆœμ„œλ‘œ μ‘λ‹΅ν•œλ‹€.

μΆ”κ°€ 자료

[둜그인 ν™”λ©΄] ID, PWλ₯Ό κ²€μ¦ν•˜μ—¬ κ²°κ³Όλ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 보낸닀.

μš”κ΅¬μ‚¬ν•­

전달 받은 ID, PWλ₯Ό κ²€μ¦ν•˜μ—¬ κ²°κ³Όλ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 보낸닀.

  • 이메일에 ν•΄λ‹Ήν•˜λŠ” User Entity μ°ΎκΈ°
  • μ•”ν˜Έν™”λœ νŒ¨μŠ€μ›Œλ“œμ™€ μΌμΉ˜ν•˜λŠ” 지 검증
  • μœ νš¨ν•˜μ§€ μ•Šμ€ μž…λ ₯(빈 κ°’)일 μ‹œ 였λ₯˜ λ°˜ν™˜
  • 둜그인 성곡 μ‹œ AccessToken, RefreshToken λ°˜ν™˜

μΆ”κ°€ 자료

[λͺ©λ‘ ν™”λ©΄] 제거 μš”μ²­μ— λŒ€ν•œ 응닡 성곡 μ‹œ λͺ©λ‘μ—μ„œ μƒν’ˆμ„ μ œκ±°ν•œλ‹€.

μš”κ΅¬μ‚¬ν•­

제거 μš”μ²­μ— λŒ€ν•œ 응닡 성곡 μ‹œ λͺ©λ‘μ—μ„œ μƒν’ˆμ„ μ œκ±°ν•œλ‹€. (λ·° μ—…λ°μ΄νŠΈ)

μΆ”κ°€ 자료

μΆ”κ°€ 링크 및 μžλ£ŒλŠ” μ—¬κΈ° μ μ–΄μ£Όμ„Έμš”

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.