An open API service indexing awesome lists of open source software.

https://github.com/boostcampwm2023/and09-priceguard

πŸ›‘οΈ μ›ν•˜λŠ” μƒν’ˆμ˜ 가격을 μΆ”μ ν•˜κ³  μ €λ ΄ν• λ•Œ κ΅¬μž…ν•˜μ„Έμš”! πŸ›‘οΈ
https://github.com/boostcampwm2023/and09-priceguard

11st android kotlin naver

Last synced: 7 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# PriceGuard
priceguard_icon_web

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

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

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

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


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

## πŸ₯… 기술적 도전

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

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

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

1. [κ·Έλž˜ν”„ 라이브러리 κ΅¬ν˜„](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/%EA%B7%B8%EB%9E%98%ED%94%84-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EB%A1%9D)
2. [μ•ˆλ“œλ‘œμ΄λ“œ ν…Œλ§ˆ 적용](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%85%8C%EB%A7%88-%EC%A0%81%EC%9A%A9)
3. [데이터 캐싱](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/Cache-%EC%A0%81%EC%9A%A9%EA%B8%B0)

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





## ❓ 문제 ν•΄κ²°

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

**DB 쿼리 κ°œμ„ **
> 가격 κ·Έλž˜ν”„ λ°μ΄ν„°λŠ” DBμ—μ„œ 자주 쑰회되며, 1κ°œμ›”, 3κ°œμ›” λ‹¨μœ„λ‘œ 넓은 λ²”μœ„λ₯Ό κ°€μ§„ 데이터λ₯Ό 뢈러였기 λ•Œλ¬Έμ— 양이 λ§ŽμŠ΅λ‹ˆλ‹€.
>
> ν˜„μž¬ ν”„λ‘œμ νŠΈ κ΅¬μ‘°μ—μ„œ 데이터 쑰회 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ μ–΄λ–€ λ…Έλ ₯을 ν–ˆλŠ”μ§€ κΈ°λ‘ν–ˆμŠ΅λ‹ˆλ‹€.
>
> [λ°”λ‘œκ°€κΈ°](https://velog.io/@kdogs/MongoDB%EC%97%90%EC%84%9C-%EC%BF%BC%EB%A6%AC-%EC%84%B1%EB%8A%A5-%EB%B6%84%EC%84%9D%ED%95%98%EA%B8%B0)

**λ©”λͺ¨λ¦¬ λˆ„μˆ˜**
> μ•ˆλ“œλ‘œμ΄λ“œ μ•± 개발 κ³Όμ •μ—μ„œ 발견된 μ—¬λŸ¬ λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 상황에 λŒ€ν•΄ μ†Œκ°œν•©λ‹ˆλ‹€.
>
> μ–΄λ–»κ²Œ λ°œκ²¬ν–ˆλŠ”μ§€, μ™œ λ°œμƒν•˜λŠ”μ§€, μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
>
> [λ°”λ‘œκ°€κΈ°](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/TroubleShooting-%E2%80%90-Memory-Leak)

**RecyclerView κ°±μ‹  였λ₯˜**
> μ•Œλ¦Ό ν† κΈ€μ˜ 값을 λ³€κ²½ν•˜κ³ , μŠ€ν¬λ‘€μ„ λ‚΄λ Έλ‹€κ°€ λ‹€μ‹œ λŒμ•„μ˜€λ©΄ ν•΄λ‹Ή ν† κΈ€μ˜ 값이 λ³€κ²½ μ΄μ „μ˜ κ°’μœΌλ‘œ λ˜λŒμ•„κ°€λŠ” ν˜„μƒμ΄ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
>
> μ–΄λ–€ 뢀뢄이 잘λͺ»λ˜μ—ˆκ³  μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€λ₯Ό λ‹€λ£¨λŠ” λ¬Έμ„œμž…λ‹ˆλ‹€.
>
> [λ°”λ‘œκ°€κΈ°](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/Troubleshooting-%E2%80%90-RecyclerView%EC%9D%98-View%EA%B0%80-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EB%B0%96%EC%9C%BC%EB%A1%9C-%EB%B2%97%EC%96%B4%EB%82%98%EB%A9%B4-%EA%B0%92%EC%9D%B4-%EB%B0%94%EB%80%8C%EB%8A%94-%ED%98%84%EC%83%81)

**JWT 인증 처리**
> ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° μ‚¬μš©μž 인증을 κ΅¬ν˜„ν–ˆλ˜ 과정에 λŒ€ν•΄ μ μ–΄λ³΄κ³ μž ν•©λ‹ˆλ‹€.
>
> JWT 인증 처리λ₯Ό ν•˜λ©΄μ„œ ν–ˆλ˜ κ³ λ―Όκ³Ό 선택 이유λ₯Ό κΈ°λ‘ν–ˆμŠ΅λ‹ˆλ‹€.
>
> [λ°”λ‘œκ°€κΈ°](https://velog.io/@mks1103/JWT%EB%A1%9C-%EC%9D%B8%EC%A6%9D-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0)

**HTTPS**
> app 루트 도메인은 λͺ¨λ“  연결에 HTTPSλ₯Ό μš”κ΅¬ν•©λ‹ˆλ‹€.
>
> Let's Encryptλ₯Ό ν™œμš©ν•΄ μ–΄λ–»κ²Œ ν•΄λ‹Ή ν”„λ‘œμ νŠΈμ— HTTPSλ₯Ό μ μš©ν–ˆλŠ”μ§€ κΈ°μˆ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
>
> [λ°”λ‘œκ°€κΈ°](https://velog.io/@kdogs/HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0feat.-Lets-Encrypt)

**DeepLink 지원 및 DeepLink용 μ›ΉνŽ˜μ΄μ§€ κ΅¬ν˜„**
> 앱이 κΉ”λ¦° 두 μ‚¬λžŒμ΄ μ„œλ‘œ μƒν’ˆ 정보λ₯Ό ν…μŠ€νŠΈλ‘œ κ³΅μœ ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όλ κΉŒμš”?
>
> Deeplink 와 Deeplink μ΄λ™μš© μ›ΉνŽ˜μ΄μ§€μ˜ κ΅¬ν˜„ 과정을 μ†Œκ°œν•©λ‹ˆλ‹€.
>
> [λ°”λ‘œκ°€κΈ°](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/Deeplink-%EC%A7%80%EC%9B%90-%EB%B0%8F-Deeplink-%EC%9D%B4%EB%8F%99%EC%9A%A9-%EC%9B%B9%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0)

**Navigation λ°±μŠ€νƒ 였λ₯˜**
> Jetpack Navigateμ—μ„œ λ°œμƒν–ˆλ˜ μ—λŸ¬μ— λŒ€ν•΄ μ†Œκ°œν•©λ‹ˆλ‹€.
>
> 그리고 ν•΄λ‹Ή μ—λŸ¬μ˜ 원인과 ν•΄κ²° 방법도 μ†Œκ°œν•©λ‹ˆλ‹€.
>
> [λ°”λ‘œκ°€κΈ°](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/TroubleShooting-%E2%80%90-Navigation-%EB%B0%B1%EC%8A%A4%ED%83%9D-%EC%98%A4%EB%A5%98)

**ν…Œλ§ˆ λ³€κ²½**
> ν…Œλ§ˆ λ³€κ²½ λ‹€μ΄μ–Όλ‘œκ·Έλ₯Ό λ§Œλ“€ λ•Œ μ°Έκ³ ν–ˆλ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ Now in Androidμž…λ‹ˆλ‹€.
>
> ν•΄λ‹Ή κΈ°λŠ₯κ³Ό λ˜‘κ°™μ€ μΈν„°λ ‰μ…˜μ„ κ΅¬ν˜„ν•˜λ € ν–ˆμœΌλ‚˜ 잘 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. κ·Έ μ΄μœ μ— λŒ€ν•΄ κΈ°μˆ ν•©λ‹ˆλ‹€.
>
> [ν…Œλ§ˆ λ³€κ²½](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/ν…Œλ§ˆ-λ³€κ²½-(compose-vs-xml))

**NestJSμ—μ„œ Redis μ‚¬μš©ν•˜κΈ°**
>캐싱을 μœ„ν•΄ Redisλ₯Ό NestJS에 μ μš©ν•˜λ©° κ²ͺ은 μ΄μŠˆλ“€μ— λŒ€ν•΄ μ μ–΄λ³΄κ³ μž ν•©λ‹ˆλ‹€.
>
>Redisλ₯Ό μ μš©ν•˜λ©° λͺ¨λ“ˆμ„ 2λ²ˆμ΄λ‚˜ λ³€κ²½ν•˜κ³ , μ½”λ“œλ₯Ό μˆ˜μ •ν–ˆλ˜ 과정에 λŒ€ν•΄ μ†Œκ°œν•©λ‹ˆλ‹€.
>
>[λ°”λ‘œκ°€κΈ°](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/NestJS%EC%97%90%EC%84%9C-Redis-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0)

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



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





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

















λ°±μ—”λ“œ















배포














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










ν˜‘μ—…








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

![system_architecture](https://github.com/boostcampwm2023/and09-PriceGuard/assets/39708676/21b9516b-3c01-49bf-8805-824b92c94500)

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


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









Back-End
Back-End
Android
Android
Android


## πŸ“ΊοΈŽ μž‘λ™ ν™”λ©΄
| 둜그인/νšŒμ›κ°€μž… | μƒν’ˆ μΆ”μ²œ/μƒν’ˆ 상세 | μƒν’ˆ μΆ”κ°€ / λ§ˆμ΄νŽ˜μ΄μ§€ | μ•ŒλžŒ 확인 |
| ----------- | --------------- | ----------------- | ------- |
| | | | |

## :memo: 기술 λ¬Έμ„œ
- [Feature List](https://docs.google.com/spreadsheets/d/1e1Z9YpHPZxcBZN2XBPeoaz88hDby6WG5jmMz8xjqMrU/edit#gid=1955813262)
- [칸반 λ³΄λ“œ](https://github.com/orgs/boostcampwm2023/projects/47/views/2)
- [κΈ°λŠ₯ λͺ…μ„Έ](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD-%EB%AA%85%EC%84%B8%EC%84%9C)
- [λ””μžμΈ](https://www.figma.com/file/lym7gZiLmcpXEKMw7UpSSp/Android-new?type=design&node-id=54696%3A327&mode=design&t=udiVXXmXkEnqYArE-1)
- [ERD](https://github.com/boostcampwm2023/and09-PriceGuard/wiki/ERD)

더 λ§Žμ€ μ •λ³΄λŠ” [μ €μž₯μ†Œ Wiki](https://github.com/boostcampwm2023/and09-PriceGuard/wiki)λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.