• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

NSPredicate

21.08.01 19:21 작성 조회수 107

0

안녕하세요 선생님! 강의 잘 듣고있습니다!

다름이 아니라 다소 지엽적이라 생각되는  질문이있습니다ㅎㅎ

(ToDo 강의)

UUID는 램덤으로 중복 되지 않는 값을 발생시킨다고 알고있습니다

그러면 같은 UUID를 가져오는것이니깐 

선택한 데이터 하나만 가져오는것 맞나요? (같은확률이 거의 없으므로)

강의중 언급하신것처럼 loadedData가 array형태여서 .first로 꺼냈지만

"loadedData"가 배열로 온다는것에서 혹시 한개 이상의 데이터를 가져올수있는경우도 있는것인지,

그러면 제가 찾으려는값이 첫번째가 아니라  두번째에 있으면 어떡할지라는 생각이 들었습니다

그런데

UUID가 중복될 확률은 거의 없으니깐  그냥 이것도 일종의 규격이라고 생각하고 넘어가면 될까요?

 loadedData.first?.title = titleTextField.text    

 

    func updateData(){

        

        guard let hasData = selectedTodoList else {

            return

        }

        guard let hasUUID = hasData.uuid else {

            return

        }

        

        let fetchRequest: NSFetchRequest<TodoList> = TodoList.fetchRequest()

        

     

        fetchRequest.predicate = NSPredicate(format: "uuid = %@", hasUUID as CVarArg )

        //fetch just selected data

        do {

              let loadedData = try context.fetch(fetchRequest)

            

        //uuid

            

            loadedData.first?.title = titleTextField.text

            loadedData.first?.date = Date()

            loadedData.first?.priorityLevel = self.prioriy?.rawValue ?? PriorityLevel.level1.rawValue//0,1,2

            

        } catch

        {

            print(error)

        }

       

답변 1

답변을 작성해보세요.

0

안녕하세요

 

일단 UUID가 중복으로 나올 가능성이 있다고 가정하면

똑같은거 여러개 있는거 아닌가 라고 생각할 수 있습니다.

 

그렇지만 이 UUID가 뭔지 대략적으로만 이해해도 중복으로 나올 가능성은 없다고 판단하고 프로그래밍 해도 된다는 결론으로 도달하게 될겁니다.

 

UUID는 RFC 4122라는 문서번호로 설명이 되어 있고 IETF 즉 국제인터넷 표준화 기구에서 표준으로 인정된 개념입니다.

이 랜덤한 UUID값이 어떻게 만들어지는가에 대해서까지 자세히 이해할 필요는 없고 여러시간값과 해시값을 통해 고유한 id를 만들어 낸다고 보시면 될 것 같습니다.

그리고 문서에 따르면 그 고유값은 절대는 아니지만 수학적으로 실질적인 중복상황은 발생되지 않는다고 판단합니다.

다시말해 이 개념이 표준이 됐다는 건 이게 그냥 그럴거다 라는 수준이 아닌 수많은 엔지니어와 수학자의 손을 거쳐서 실질적으로 중복은 나오지 않는다는걸 국제적으로 인정받은 것입니다.

  

그렇기에 어떤 언어로 만들던 어떤 플랫폼으로 만들던 상관없이 이세상 모든 UUID는 중복이 나오지 않는다고 보고 있고 실제로 수많은 네트워크 환경과 하드웨어 소프트웨어 프로그래밍에서 UUID는 고유한 값으로 사용되고 있고 중복이 발견됐다는 보고는 아직까지 본적은 없습니다.

정리하자면 완전무결하게 중복이 안나온다고 정의된건 아니지만 수학적으로 거의 확실하게 중복은 안나온다는 개념이 표준으로 인정받은게 UUID이니 중복에 대한 걱정은 안해도 된다 입니다.

윌리님의 프로필

윌리

질문자

2021.08.01

앗! 선생님 이렇게 빠르고 자세하게 답변 해주셔서 감사드립니다!!ㅎㅎ