Skip to content

๐Ÿ“ Every Moment - ๋ฐ”์œ ํ•˜๋ฃจ๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•˜๋Š” ๋‹ค์ด์–ด๋ฆฌ ์•ฑ

Notifications You must be signed in to change notification settings

kakao-tech-campus-2nd-step3/Team21_Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Every Moment โฐ

ํ•˜๋ฃจ๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ์œ„์น˜ ๊ธฐ๋ฐ˜ ์†Œ์…œ ๋‹ค์ด์–ด๋ฆฌ ๐Ÿ“

image

  • ํ”Œ๋ ˆ์ด์Šคํ† ์–ด ๋น„๊ณต๊ฐœํ…Œ์ŠคํŠธ URL : https://play.google.com/store/apps/details?id=potatocake.katecam.everymoment

  • [email protected]๋ฅผ ํ…Œ์Šคํ„ฐ ๊ณ„์ •์œผ๋กœ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค!
    ์ด ๊ณ„์ •์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ์‹œ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ˜Š


๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๋ฐ”์œ ์ผ์ƒ ์†์—์„œ ํ•˜๋ฃจ๋ฅผ ๋˜์งš์œผ๋ฉฐ ์ผ๊ธฐ๋ฅผ ๊พธ์ค€ํžˆ ์“ฐ๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š์€ ์ผ์ž…๋‹ˆ๋‹ค.
Every Moment๋Š” ์œ„์น˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ํ•˜๋ฃจ๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ  ์นœ๊ตฌ๋“ค๊ณผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์…œ ๋‹ค์ด์–ด๋ฆฌ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ๐Ÿ“ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ž๋™ ๊ธฐ๋ก: 15๋ถ„ ์ด์ƒ ๋จธ๋ฌธ ์žฅ์†Œ ์ž๋™ ๊ฐ์ง€ ๋ฐ ์ผ๊ธฐ๋กœ ๊ธฐ๋ก
  • ๐Ÿค ์†Œ์…œ ๋‹ค์ด์–ด๋ฆฌ: ์นœ๊ตฌ๋“ค๊ณผ ์ผ๊ธฐ ๊ณต์œ  ๋ฐ ์†Œํ†ต
  • ๐Ÿ” ์Šค๋งˆํŠธ ๊ฒ€์ƒ‰: ๋‹ค์–‘ํ•œ ํ•„ํ„ฐ๋ง ์˜ต์…˜์œผ๋กœ ์›ํ•˜๋Š” ์ผ๊ธฐ ๋น ๋ฅธ ๊ฒ€์ƒ‰
  • ๐Ÿ”” ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ: ์นœ๊ตฌ์™€์˜ ์ƒํ˜ธ์ž‘์šฉ(์ข‹์•„์š”, ๋Œ“๊ธ€, ์นœ๊ตฌ ์š”์ฒญ ๋“ฑ)๊ณผ ์ƒˆ๋กœ์šด ์žฅ์†Œ ๊ฐ์ง€๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์•Œ๋ฆผ

๐Ÿ“Œ ํŽ˜์ด์ง€๋ณ„ ๊ธฐ๋Šฅ ์†Œ๊ฐœ

์ผ๊ธฐ ๊ด€๋ จ ๊ธฐ๋Šฅ

ํ™ˆํ™”๋ฉด-
์ž๋™ ์ผ๊ธฐ ๊ธฐ๋ก1
ํ™ˆํ™”๋ฉด-
์ž๋™ ์ผ๊ธฐ ๊ธฐ๋ก2
ํ™ˆํ™”๋ฉด-
์ˆ˜๋™ ์ผ๊ธฐ ๊ธฐ๋ก
ํ™ˆํ™”๋ฉด-
์ผ๊ธฐ ํŽธ์ง‘ ยท ์ฝ๊ธฐ
15๋ถ„๋™์•ˆ ๋จธ๋ฌธ ์žฅ์†Œ๋ฅผ
์ž๋™์œผ๋กœ ๊ธฐ๋ก
์•Œ๋ฆผ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ
์ผ๊ธฐ ์ƒ๊ธฐ์‹œํ‚ค๊ณ 
๊ฐ„๋‹จํ•œ ์ด๋ชจ์ง€๋กœ ๊ฐ์ •ํ‘œํ˜„
์‚ฌ์šฉ์ž ์ˆ˜๊ธฐ ์ผ๊ธฐ ์ž‘์„ฑ ์ดˆ์•ˆ ์ผ๊ธฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ
์‚ฌ์ง„ ยท ์นดํ…Œ๊ณ ๋ฆฌ ยท ์ƒ์„ธ์ผ๊ธฐ
์ถ”๊ฐ€๊ฐ€๋Šฅ
  • ํ™ˆํ™”๋ฉด์˜ ํŽธ์ง‘ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ํ•ด๋‹น ์ผ๊ธฐ์˜ ์žฅ์†Œ๋ช…์„ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์žฅ์†Œ ์™ธ ๋‹ค๋ฅธ ํ›„๋ณด ์žฅ์†Œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™ˆํ™”๋ฉด์˜ ๋ถ๋งˆํฌ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•ด ํŠน๋ณ„ํžˆ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ™ˆํ™”๋ฉด์˜ ๊ณต์œ  ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์นœ๊ตฌ์™€ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ ๋ฒ„ํŠผ์œผ๋กœ ์‰ฝ๊ฒŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์šฐ์ธก ํ•˜๋‹จ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ์ˆ˜๊ธฐ๋กœ ์ผ๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŠน์ • ์ผ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธ ๋ณด๊ธฐ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ, ํŽธ์ง‘ ํ™”๋ฉด์—์„œ ์‚ฌ์ง„, ์นดํ…Œ๊ณ ๋ฆฌ, ์ผ๊ธฐ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธ๋ถ€ ๊ธฐ๋Šฅ

๋กœ๊ทธ์ธํ™”๋ฉด ์˜จ๋ณด๋”ฉํ™”๋ฉด ๊ฒ€์ƒ‰ํ™”๋ฉด-
๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋ง
ํ”ผ๋“œํ™”๋ฉด-
์นœ๊ตฌ์™€์˜ ์ผ๊ธฐ ๊ณต์œ 
โ‘  ์นด์นด์˜ค๋กœ๊ทธ์ธ
โ‘ก ๋น„ํšŒ์›๋กœ๊ทธ์ธ
์ฒ˜์Œ ์„ค์น˜ํ•œ ์‚ฌ์šฉ์ž๋“ค์„ ์œ„ํ•œ
๊ฐ€์ด๋“œ ํ™”๋ฉด
๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์œผ๋กœ
์†์‰ฌ์šด ์ผ๊ธฐ ์ฐพ๊ธฐ
์›ํ•˜๋Š” ์ผ๊ธฐ๋ฅผ ๊ณต์œ ํ•˜์—ฌ
์นœ๊ตฌ์™€ ์†Œํ†ต
  • ๋กœ๊ทธ์ธ ํ™”๋ฉด: ์นด์นด์˜ค ๋กœ๊ทธ์ธ๊ณผ ๋น„ํšŒ์› ๋กœ๊ทธ์ธ์„ ํ†ตํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜จ๋ณด๋”ฉ ํ™”๋ฉด: ์ฒ˜์Œ ์„ค์น˜ํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ˆ๋‚ดํ•˜๋Š” ๊ฐ€์ด๋“œ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰ ํ™”๋ฉด - ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋ง: ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด(๋‚ ์งœ, ๋ถ๋งˆํฌ์—ฌ๋ถ€, ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„, ์ด๋ชจ์ง€๋ณ„)์„ ํ†ตํ•ด ์›ํ•˜๋Š” ์ผ๊ธฐ๋ฅผ ๋น ๋ฅด๊ณ  ์†์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”ผ๋“œ ํ™”๋ฉด - ์นœ๊ตฌ์™€์˜ ์ผ๊ธฐ ๊ณต์œ : ์›ํ•˜๋Š” ์ผ๊ธฐ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ์นœ๊ตฌ๋“ค๊ณผ ์†Œํ†ตํ•˜๊ณ  ๋Œ“๊ธ€๋กœ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” ๊ฐœ๋ฐœ ์ฃผ์•ˆ์ 

์•„ํ‚คํ…์ฒ˜ ๋ถ€๋ถ„

  • MVVM ํŒจํ„ด ์ ์šฉ
    project-root
     โ”œโ”€โ”€ ...
     โ”œโ”€โ”€ REPOSITORY # ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ณ„์ธต, API ์ƒํ˜ธ์ž‘์šฉ
     โ””โ”€โ”€ presentation
       โ”œโ”€โ”€ ...
       โ”œโ”€โ”€ VIEW # Activity์™€ Fragment ํด๋ž˜์Šค
       โ””โ”€โ”€ VIEWMODEL # UI ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ViewModel ํด๋ž˜์Šค
    
  • Hilt ์ ์šฉ
  • ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ๋ถ€๋ถ„ ์ ์šฉ

๊ธฐ๋Šฅ ๋ถ€๋ถ„

  • ์ž๋™ ์ผ๊ธฐ ๊ธฐ๋ก
    • Google Places API๋ฅผ ํ†ตํ•ด GPS ์ขŒํ‘œ๋ฅผ ์ „๋‹ฌํ•ด ์žฅ์†Œ๋ช…์„ ๋„์ถœ
    • ๋ฐฑ๊ทธ๋ผ์šด ์ƒํƒœ์—์„œ GPS ์œ„์น˜์ถ”์ ์„ ์œ„ํ•ด android.permission.ACCESS_BACKGROUND_LOCATION ๊ถŒํ•œ์ถ”๊ฐ€
    • ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์œ„์น˜ ํ† ๊ธ€ ๋™์ž‘์—์„œ์˜ ์ง€์—ฐ ยท ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์ถ”๊ฐ€
      Priority.PRIORITY_BALANCED_POWER_ACCURACY
      # ์ •ํ™•๋„๋ฅผ ์–ด๋Š ์ •๋„ ํ™•๋ณดํ•˜๋ฉด์„œ๋„, ๋ฐฐํ„ฐ๋ฆฌ ์†Œ๋ชจ๋ฅผ ์ตœ์ ํ™”ํ•ด ํ† ๊ธ€ ๋™์ž‘์—์„œ์˜ ์ง€์—ฐ์„ ๋ฐฉ์ง€
      
      setMinUpdateIntervalMillis(LOCATION_UPDATE_INTERVAL)
      # ์•ฑ์ด ์œ„์น˜ ์—…๋ฐ์ดํŠธ ์š”์ฒญ์„ ๋„ˆ๋ฌด ์ž์ฃผ ํ•˜์ง€ ์•Š๋„๋ก ์ œ์–ด
      
      setMaxUpdateDelayMillis(LOCATION_UPDATE_INTERVAL):
      # ์œ„์น˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ์ด์ƒ ์ง€์—ฐ๋˜์ง€ ์•Š๋„๋ก ๋ณด์žฅ
      
      setWaitForAccurateLocation(false):
      # ์ •ํ™•ํ•œ ์œ„์น˜๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ , ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„ ๋‚ด์—์„œ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ—ˆ์šฉ
      
    • ๋ถˆํ•„์š”ํ•œ ์„œ๋ฒ„ ์ „์†ก ์˜ˆ๋ฐฉ์„ ์œ„ํ•ด isFirstLocationUpdateAfterChange ํ”Œ๋ž˜๊ทธ ์ถ”๊ฐ€
    • GPS ์˜ค์ฐจ๋ฒ”์œ„๋กœ ์ธํ•œ ์žฅ์†Œ๋ช… ๋งค์นญ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŒ์—…๋ฉ”๋‰ด์— ์žฅ์†Œ๋ช… ํ›„๋ณด์ง€ ๋‚˜์—ดํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ
    • FCM์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ์žฅ์†Œ ๊ธฐ๋ก ์‹œ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ์„ ๋ณด๋‚ด์–ด ํ˜„์žฌ ๊ฐ์ •์ƒํƒœ๋ฅผ ์ด๋ชจ์ง€๋กœ ์†์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ” ํ”„๋กœ์ ํŠธ ์ •๋ณด

๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

  • 2024.09 ~ 2024.11 (3๊ฐœ์›”)

ํ˜‘์—… ํˆด

  • Discord Notion

์„œ๋น„์Šค ๋งํฌ

ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ


๐Ÿ‘ฅ ํŒ€์› ์†Œ๊ฐœ

์ €ํฌ ํŒ€์€ ๋ฐฑ์—”๋“œ 2๋ช…, ์•ˆ๋“œ๋กœ์ด๋“œ 3๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ค€ํ˜• ์ „ํ˜œ์ง€ ์ด์•„๋ฆผ ์œค์ฑ„์› ๊ถŒ์ƒˆ์ผ

Backend

Backend

Android

Android

Android

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ’ป Language & Framework

  • Kotlin
  • Android Studio

๐Ÿ“ฑ Communication

  • Firebase

๐Ÿ”ง Development Tools

  • GitHub Actions

๐ŸŽจ Design Tools

  • Figma

๐Ÿ—„๏ธ ERD

erd

About

๐Ÿ“ Every Moment - ๋ฐ”์œ ํ•˜๋ฃจ๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•˜๋Š” ๋‹ค์ด์–ด๋ฆฌ ์•ฑ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages