[TeamProject] Troubleshooting_AED API

2024. 10. 4. 11:41ยทiOS_Developer/Team Project

๋ฌธ์ œ์ƒํ™ฉ

  • AED API์˜ ์š”์ฒญ ๋ณ€์ˆ˜์— ์œ„๋„ ๊ฒฝ๋„ ๊ฐ’์ด ์กด์žฌ ํ•˜์ง€ ์•Š์•„์„œ
    ๋ฐ˜๊ฒฝ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ

๋ฌธ์ œ ํ•ด๊ฒฐ

ํ•ด๊ฒฐ๋ฐฉ์•ˆ ๋…ผ์˜

  • 1์•ˆ : ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ์— ์š”์ฒญ๋ณ€์ˆ˜ ์ถ”๊ฐ€ ์š”์ฒญํ•˜๊ธฐ
  • 2์•ˆ : ์•ฑ ์ตœ์ดˆ ์‹คํ–‰ ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ UserDefaults์— ์ €์žฅํ•ด์„œ ์œ„๊ฒฝ๋„ ๊ฐ’ ํ•„ํ„ฐ๋ง ํ•ด์„œ ๊ฐ€์ ธ์˜ค๊ธฐ

๋…ผ์˜ ๊ณผ์ •

  • https://github.com/Kim-Dong-Hyeon/Duriso/issues/56
 

[ETC] : AED๋ฐ์ดํ„ฐ ๊ด€๋ จ · Issue #56 · Kim-Dong-Hyeon/Duriso

์–ด๋–ค ๋ฌธ์ œ์ธ๊ฐ€์š”? aed api ์š”์ฒญ๋ณ€์ˆ˜์— ์œ„๊ฒฝ๋„ ๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ๋Š” ์š”์ฒญ๋ณ€์ˆ˜๊ฐ€ ์—†๋‹ค๋ณด๋‹ˆ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ ๊ฑฐ๊ธฐ์„œ ๊ฐ€์‹œ์„ฑ ์กฐ์œจ์„ ํ•˜๊ธฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€๋ฐ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ์š”? ์ƒ๊ฐํ•œ

github.com

  • github issue๋กœ ๋“ฑ๋กํ•˜์—ฌ ๋…ผ์˜ ๋ฐ ์Šคํฌ๋Ÿผ ์‹œ๊ฐ„ ๋…ผ์˜ ํ†ตํ•ด 1์•ˆ ์‹ ์ฒญ, 2์•ˆ์œผ๋กœ ์ง„ํ–‰ ํ•œ ํ›„ api ์ˆ˜์ •์š”์ฒญ์ด ๋ฐ˜์˜๋œ ํ›„ apiํ˜ธ์ถœ๋กœ ๋ณ€๊ฒฝ ํ•˜๊ธฐ๋กœ ํ•จ

ํ•ด๊ฒฐ๊ณผ์ •

  • ์žฌ๋‚œ์•ˆ์ „ ๊ณต๊ณต๋ฐ์ดํ„ฐ ๊ณต์œ  ํ”Œ๋žซํผ ๋ฌธ์˜(9์›” 11์ผ)
  • API ์ „์ฒด ๋ฐ์ดํ„ฐ UserDefaults์— ์ €์žฅํ•˜๊ธฐ
    • UserDefaults์—์„œ AED ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜, ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ, ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ํ†ตํ•ด ์ „์ฒด ๋ฒ”์œ„์˜ AED ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ UserDefaults์— ์ €์žฅํ•œ ํ›„, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๊ตฌํ˜„ํ•จ
      • UserDefaults ์‚ฌ์šฉํ•œ ์ฝ”๋“œ
// MARK: - ์ „์ฒด AED ๋ฐ์ดํ„ฐ ์š”์ฒญ ๋ฐ UserDefaults์— ์ €์žฅ
  func fetchAllAeds() -> Observable<AedResponse> {
    // UserDefaults์—์„œ ๋ฐ์ดํ„ฐ ๋กœ๋“œ
    if let storedAeds = loadAeds() {
      return Observable.just(storedAeds)
    }
    
    // ์ „์—ญ ๋ฒ”์œ„๋กœ ๋ฐ์ดํ„ฐ ์š”์ฒญ
    let boundingBox = (startLat: -90.0, endLat: 90.0, startLot: -180.0, endLot: 180.0)

    return Observable.create { observer in
      self.aedNetworkManager.fetchAllAeds(boundingBox: boundingBox)
        .subscribe(onNext: { response in
          // UserDefaults์— ์ €์žฅ
          if let data = try? JSONEncoder().encode(response) {
            UserDefaults.standard.set(data, forKey: "AedData")
            print("์ „์ฒด AED ๋ฐ์ดํ„ฐ๊ฐ€ UserDefaults์— ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
          }
          observer.onNext(response)
          observer.onCompleted()
        }, onError: { error in
          observer.onError(error)
        })
        .disposed(by: self.disposeBag)
      
      return Disposables.create()
    }
  }
  
  // MARK: - UserDefaults์—์„œ AED ๋ฐ์ดํ„ฐ ๋กœ๋“œ
  func loadAeds() -> AedResponse? {
    if let data = UserDefaults.standard.data(forKey: "AedData"),
       let aedResponse = try? JSONDecoder().decode(AedResponse.self, from: data) {
      return aedResponse
    }
    return nil
  }
  • ์ด ๊ณผ์ •์—์„œ RxSwift์˜ Observable์„ ์‚ฌ์šฉํ•ด ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋„คํŠธ์›Œํฌ ์š”์ฒญ ๋ฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋˜ํ•œ RxSwift๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • RxSwift๋กœ ๊ด€๋ฆฌํ•œ ์ด์œ 
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋„ ์œ„์น˜๋ฅผ ๋ณ€๋™ํ•˜์—ฌ ์ •๋ณด๋ฅผ ์š”์ฒญ ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๊ณ , ์ด๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ์š”์ฒญ ํ›„ UI ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ด์„œ, RxSwift๋ฅผ ์‚ฌ์šฉํ•ด ๋ณต์žกํ•œ ํ๋ฆ„์„ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค
  • UserDefaults๋กœ ์ฒ˜๋ฆฌ์ค‘ ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰ ํฌ๊ธฐ ๋ฌธ์ œ ๋ฐœ์ƒ..
    • UserDefaults ๋””๋ฒ„๊น… ๋กœ๊ทธ
CFPrefsPlistSource<0x600003004a20> 
(Domain: com.donghyeon.Duriso, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), 
Contents Need Refresh: Yes): Attempting to store >= 4194304 bytes of data in CFPreferences/NSUserDefaults on this platform is invalid. This is a bug in Duriso or a library it uses.
Description of keys being set:
autoLogin: boolean value

Description of keys already present:
AedData: data value, size: 8080715
VersionOfLastRun: string value, approximate encoded size: 1
autoLogin: boolean value

 

  • ์˜คํ”„๋ผ์ธ ๋งต์˜ AED ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ์œ„ํ•ด ์ž‘์—…ํ•ด๋‘” FireBase, CoreData ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ ํ•˜๋„๋ก ๋ณ€๊ฒฝ ์˜ˆ์ •
  • ์žฌ๋‚œ์•ˆ์ „ ๊ณต๊ณต๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๋ฌธ์˜ ๋ฐ˜์˜ ๋จ!!
    • 9์›” 27์ผ ๋น ๋ฅธ์‹œ์ผ ๋‚ด์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ฒ ๋‹ค๋Š” ๋‹ต๋ณ€ ๋ฐ›์Œ
  • ๋ฐ˜์˜ ๋œ ์š”์ฒญ ๋ณ€์ˆ˜

๊ฒฐ๊ณผ ๋ฐ ํ”„๋กœ์ ํŠธ ๋ฐ˜์˜ / ์ฐจ์„ ์ฑ…

ver 1.0.0 ์—๋Š” UserDefaults๋กœ ๋ฐฐํฌ

  • ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰์—๋Ÿฌ ๋กœ๊ทธ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์—์„œ๋Š” ๋ฌธ์ œ ์—†๋Š” ๊ฒƒ ํ™•์ธ ์™„๋ฃŒ
  • ์ถ”ํ›„ ๋ฐฐํฌ์‹œ ๋ณ€๊ฒฝ๋œ ์š”์ฒญ๋ณ€์ˆ˜๋กœ api ์š”์ฒญ ์œ„ํ•ด ์ˆ˜์ •์ค‘

 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'iOS_Developer > Team Project' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TeamProject] Troubleshooting_POI show/hide  (0) 2024.09.09
[TeamProject] CodeBase ์นด์นด์˜ค๋งต _ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ  (1) 2024.09.06
[TeamProject] troubleshooting_kakaomap๊ด€๋ จ  (4) 2024.09.03
on / off ํ† ๊ธ€ ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ  (0) 2024.08.28
[ TeamProject ] ํ”„๋กœ์ ํŠธ ์ค€๋น„ _ ์นด์นด์˜ค๋งต api ๊ณต๋ถ€ํ•˜๊ธฐ!  (8) 2024.08.25
'iOS_Developer/Team Project' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [TeamProject] Troubleshooting_POI show/hide
  • [TeamProject] CodeBase ์นด์นด์˜ค๋งต _ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ
  • [TeamProject] troubleshooting_kakaomap๊ด€๋ จ
  • on / off ํ† ๊ธ€ ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ
JJOOEE
JJOOEE
Byeockdol๐Ÿˆ‍โฌ› _ IT / PM
  • JJOOEE
    Byeockdol๐Ÿˆ‍โฌ›
    JJOOEE
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (32)
      • PM (3)
        • TIL & WIL (3)
        • Article (0)
      • ๋ฐ์ดํ„ฐ ๋ถ„์„ (0)
      • iOS_Developer (28)
        • iOS (4)
        • UIkit (3)
        • swift (3)
        • Collaboration Tools (1)
        • ๋ฉด์ ‘์ค€๋น„ (5)
        • Team Project (12)
      • Byeockdol๐Ÿˆ‍โฌ› (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • github
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    aed api
    kakaomappoi
    ios๋ฉด์ ‘์ค€๋น„
    ioskakaomap
    ios๋ฌธ๋ฒ•
    ๊ต์œก์šด์˜๋งค๋‹ˆ์ €
    ์นด์นด์˜ค๋งต์ดˆ๊ธฐ์„ค์ •
    ios
    ๋™๊ธฐ๋น„๋™๊ธฐ
    it๊ณ ์–‘์ด
    project
    swift
    uikit
    ๊ธฐํš
    ์ž๋ฃŒํ˜•
    rxswiftํ† ๊ธ€
    API
    ๊ต์œกpm
    ๊ฐœ๋ฐœ์ž๋ฉด์ ‘์ค€๋น„
    ํ”„๋กœ์ ํŠธ
    Til
    ์นด์นด์˜ค๋งตAPI
    ๊ฐœ๋ฐœ์ž
    ๋ฒฝ๋Œ์ด
    pm
    swfit์ž๋ฃŒํ˜•
    ์ฝ”๋“œ๋กœ๋งŒ ์นด์นด์˜ค๋งต
    ioskakaomapapi
    ๊ฐœ๋ฐœ์ž ๋ฉด์ ‘์ค€๋น„
    ์นด์นด์˜ค๋งตapi์‚ฌ์šฉํ•˜๊ธฐ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
JJOOEE
[TeamProject] Troubleshooting_AED API
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”