Day 19 - boostcampwm2023/iOS08-WeTri GitHub Wiki

๐Ÿ“‹ย ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ

BackEnd

์–ด์ œ ํ•œ ์ผ

  • Object Storage Api ๊ตฌํ˜„ (์„œ๋ฒ„ ๋ฆฌ์Šค)
  • Records API ์ˆ˜์ •, Records API ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ, Records id๋„ id๋กœ
  • Matches API์—์„œ ๋งค์นญ ํ›„, Image์ปฌ๋Ÿผ ์ˆ˜์ •
  • Workouts API ์ˆ˜์ •, workoutImage
  • Redis pub/sub ๊ตฌํ˜„ โ†’ ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ๊ฐ™์€ ๋ฃธ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฐ ๊ฒ€์ฆ
  • CDN์œผ๋กœ ์ด๋ฏธ์ง€ ์ œ๊ณต

์˜ค๋Š˜ ํ•  ์ผ

  • Object Storage API ๊ตฌํ˜„ - Images API
  • Code Deploy๋ฅผ ํ†ตํ•œ ์ž๋™ ๋ฐฐํฌ
  • Apple OAuth
  • Profile API ๊ตฌํ˜„
  • ๋ฐœํ‘œ ์ž๋ฃŒ ์ค€๋น„ โ†’ 8 ~ 10์‹œ

iOS

์–ด์ œ ํ•œ ์ผ

  • ์„œ๋ฒ„์™€ API ๊ตฌ์กฐ ๋งž์ถ”๊ธฐ

    {
    	"event": "workout_session",
    	"data": {
    		"roomId": "๋Œ€์ถฉ ํ•ด์‹œ๊ฐ’",
    		"id": "๋Œ€์ถฉ ์‚ฌ์šฉ์ž ์•„์ด๋””๊ฐ’",
    		"nickname": "NickName",
    		"healthData": {
    				"calories": 230,
    				"heart_rate": 78,
    				"distance": 1200
    		}
    	}
    }
    
  • ์–ด์ œ ํ–ˆ๋˜ ํƒ€์ด๋จธ ๋ฐ ์ฝ”๋””๋„ค์ดํŒ… PR ์ž‘์„ฑ

    • ์Šนํ˜„๋‹˜ health Kit ํ™”๋ฉด ๊นŒ์ง€ ์—ฐ๊ฒฐ
  • ์˜จ๋ณด๋”ฉ ํ™”๋ฉด ๊ตฌํ˜„

  • TNInterceptor ๊ตฌํ˜„

  • ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด ๊ตฌํ˜„

  • ๋กœ๊ทธ์ธ ๋น„์ฆˆ๋‹ˆ์Šค๋กœ์ง ๊ตฌ์„ฑ

์˜ค๋Š˜ ํ•  ์ผ

  • ๋กœ๊ทธ์ธ ์„œ๋ฒ„์— ํ…Œ์ŠคํŠธ
  • ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” TNInterceptor Shared๋ฅผ ์ƒ์„ฑ
  • ํšŒ์›๊ฐ€์ž… ๋ทฐ ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • ํ† ํฐ ๊ฐ’ ๋ฐ›๋Š”๊ฒƒ์„ ์šฐ์„ ์ ์œผ๋กœ
  • ๋‚ด์ผ ๋ฐœํ‘œ์ž๋ฃŒ ์ค€๋น„
  • ์šด๋™ ์„ธ์…˜ ํ™”๋ฉด
    • HealthKit๊ณผ Socket ์—ฐ๊ฒฐํ•˜๊ธฐ
      • ์ฐธ์—ฌ์ž Mock Data ๋งŒ๋“ค์–ด์„œ ์—ฐ๊ฒฐํ•˜๊ธฐ
    • ํด๋ง ๋ณด๋‚ด๊ธฐ
    • ์‚ฌ์šฉ์ž ์œ„์น˜ ์ •๋ณด โ†’ HKWorkoutRouteQuery ์•Œ์•„๋ณด๊ธฐ
  • ํ™ˆ ๋ทฐ UI ๊ตฌ์„ฑ