서로 다른 Parse 버전에서의 GraphQL 쿼리 및 돌연변이
시간이 지남에 따라 Parse가 발전함에 따라 더 나은 성능, 더 나은 호환성, 더 쉬운 개발을 위해 몇 가지 측면이 변경됩니다.
이러한 측면 중 하나는 시간이 지남에 따라 Parse 3.5.0에서 최신 버전인 3.9로 발전한 GraphQL 지원입니다.
Back4app에서는 GraphQL 쿼리 및 변경 사항을 구현하는 세 가지 주요 버전이 있습니다: 3.7.2, 3.8 및 3.9이며, 오늘은 이러한 버전 간의 차이점을 살펴보고 변경된 사항과 변경되지 않은 사항을 보여드리겠습니다.
소개
고객에게 장기적인 솔루션을 배포할 때 진화는 필수이며, Parse도 예외는 아닙니다.
GraphQL 표준이 점점 더 널리 사용되고 사용되기 시작하면서 커뮤니티에서는 더 나은 통합, 간소화된 사용, 직관성을 요구했습니다. Parse 유지 관리자와 적극적인 기여자로서 Back4app은 이러한 목소리를 듣고 오픈 소스 Parse 플랫폼에서 이러한 결과를 달성하기 위해 많은 노력을 기울였습니다.
개발자들은 시간이 지남에 따라 클라우드 코드 통합과 같은 새로운 기능을 제공했지만 커뮤니티는 프레임워크와 플랫폼에 걸쳐 보다 일관된 GraphQL 구문을 계속 요청했고, Parse 3.9를 통해 이를 달성하여 커뮤니티가 혜택을 누릴 수 있도록 제공했습니다.
이 구문이 발전하는 동안 몇 가지 주요 변경 사항이 적용되었으므로 사용하는 Parse 버전에 따라 올바른 구문을 선택해야 합니다: 3.7.2, 3.8 및 3.9는 동일한 결과를 얻기 위해 약간 다른 구문을 사용합니다.
이러한 이유로 이 글을 작성하면서 이 모든 것을 한 곳에 문서화했으며, 이 과정에서 새로운 구문과 함께 가장 크로스 플랫폼/크로스 프레임워크 구문 호환성이 높은 버전인 3.9로 Parse를 업데이트할 수 있는 사용자들에게 강력히 권장합니다.
아래에서 몇 가지 예를 보여드리겠습니다.
API 상태
API 상태 쿼리는 버전 간에 변경되지 않았으며, 쿼리를 통해 일관되게 호출할 수 있습니다:
로 쿼리하면 버전 간에 동일한 응답을 얻을 수 있습니다:
오브젝트 생성
객체 생성을 위한 변이는 시간이 지남에 따라 서로 다른 GraphQL 프레임워크 간에 더 일관되게 변경되었으며, Pare 버전을 변경하기 전에 고려해야 하는 변경 사항이 포함되어 있습니다.
일반 돌연변이 사용
Parse 3.7.2에서는 객체 생성을 요청하기만 하면 자동으로 클래스가 생성됩니다:
Parse 3.8에서는 객체 쿼리가 제거되어 약간의 변화가 있지만 여전히 객체 생성을 요청할 수 있으며 클래스가 자동으로 생성됩니다:
그러나 Parse 3.9에서는 먼저 클래스를 생성하고 해당 필드를 명시적으로 추가해야 합니다:
그런 다음 특정 메서드(아래)를 사용하여 객체를 저장할 수 있습니다.
특정 메서드 사용(클래스 변이)
특정 메서드(이 경우 클래스 메서드, 클래스 변이)도 변경되었습니다:
Parse 3.7.2에서는 다음과 같습니다:
Parse 3.8에서는 객체 속성이 제거되었습니다:
그리고 마지막으로 Parse 3.9에서는 표준을 준수할 수 있도록 ObjectId의 이름이 id로 변경되었습니다:
객체 가져오기
객체 검색도 일관성과 호환성을 개선하기 위해 시간이 지남에 따라 발전해 왔습니다.
일반 쿼리 사용
모든 클래스에서 작동하는 일반 GET 메서드를 사용하여 특정 객체를 검색하려면 클래스 이름과 객체 ID를 지정할 수 있습니다.
Parse 3.7.2:
이후 Parse 3.8에서는 객체를 제거하여 더 간단하게 호출할 수 있게 되었습니다:
Parse 3.8:
Parse 3.9가 출시되면서 일반 메서드 GET이 제거되었고, 객체를 검색하려면 특정 클래스 메서드를 사용해야 합니다(자세한 내용은 아래 참조).
특정 메서드 사용(클래스 쿼리)
특정 메서드도 Parse 버전에 따라 변경되었습니다.
Parse 3.7.2에서는
이후 Parse 3.8에서는 호출하기 쉽도록 객체 속성을 제거했습니다:
그리고 Parse 3.9에서는 프레임워크 간의 일관성을 높이기 위해 objectId가 id로 대체되었습니다:
객체 찾기
객체 찾기 역시 일관성과 호환성을 개선하기 위해 시간이 지남에 따라 발전해 왔습니다.
일반 쿼리 사용
모든 클래스에서 작동하는 일반 FIND 메서드를 사용하여 객체 목록을 검색하려면 클래스 이름을 지정할 수 있습니다.
Parse 3.7.2:
이후 Parse 3.8에서는 객체를 제거하여 더 간단하게 호출할 수 있게 되었습니다:
Parse 3.8:
Parse 3.9가 출시되면서 일반 메서드인 FIND가 제거되었고, 객체를 검색하려면 특정 클래스 메서드를 사용해야 합니다(자세한 내용은 아래 참조).
특정 메서드 사용(클래스 쿼리)
특정 메서드도 Parse 버전에 따라 변경되었습니다.
Parse 3.7.2에서는
이후 Parse 3.8에서는 호출하기 쉽도록 객체 속성을 제거했습니다:
그리고 Parse 3.9에서는 프레임워크 간의 일관성을 높이기 위해 objectId가 id로 대체되었습니다:
객체 업데이트
일관성과 호환성을 높이기 위해 객체 업데이트도 변경해야 했습니다.
일반 쿼리 사용
모든 클래스에서 작동하는 일반 UPDATE 메서드를 사용하여 객체를 업데이트하려면 클래스 이름과 ObjectID를 지정할 수 있습니다.
Parse 3.7.2:
이후 Parse 3.8에서는 객체를 제거하여 더 간단하게 호출할 수 있게 되었습니다:
Parse 3.8:
Parse 3.9가 출시되면서 일반 메서드 UPDATE가 제거되었고 객체를 검색하려면 특정 클래스 메서드를 사용해야 합니다(자세한 내용은 아래 참조).
특정 메서드 사용(클래스 쿼리)
특정 메서드도 Parse 버전에 따라 변경되었습니다.
Parse 3.7.2에서는
이후 Parse 3.8에서는 호출하기 쉽도록 객체 속성을 제거했습니다:
그리고 Parse 3.9에서는 호출이 3.8과 비슷하게 유지되었지만 호출에서 objectId의 이름이 id로 바뀌었습니다:
애플리케이션 메서드
애플리케이션 메서드는 변경 사항을 따르고 새로운 표준을 준수해야 했습니다. 앱과 관련된 쿼리 및 변이도 변경되었습니다.
사용자 가입하기
신규 사용자 등록은 시간이 지남에 따라 프로토콜을 따르고 그에 따라 조정되었습니다:
Parse 3.7.2:
이후에는 Parse 3.8에서 이 호출을 유지했습니다:
Parse 3.8:
Parse 3.9가 출시되면서 objectId 프로퍼티는 이에 맞게 id로 변경되었습니다:
사용자 로그인
사용자 로그인도 같은 방식으로 변경되었습니다:
Parse 3.7.2:
이후에는 Parse 3.8에서 호출을 유지했습니다:
Parse 3.8:
Parse 3.9가 출시되면서 objectId 프로퍼티는 이에 맞게 id로 변경되었습니다:
로깅된 사용자 가져오기
로그인한 사용자에 대한 정보를 검색하는 방법도 변경되어야 했습니다. 여전히 해당 사용자에 대한 유효한 세션 토큰과 함께 “X-Parse-Session-Token” 헤더를 전달해야 하지만 쿼리 자체는 변경되었습니다:
Parse 3.7.2:
이후, Parse 3.8에서는 ME 쿼리가 새로운 VIEWER 형식으로 변경되었습니다:
Parse 3.8:
Parse 3.9가 출시되면서 objectId 속성은 이에 맞게 id로 변경되었습니다. 필요하지 않은 경우 구문은 3.8과 동일합니다:
결론
시간이 지남에 따라 다른 플랫폼 및 형식과 함께 Parse가 진화하면서 개발을 간소화하고 일관성과 상호 운용성을 유지하기 위해 Parse가 계속 변화하는 것은 당연한 일이었습니다.
새로운 표준이 등장함에 따라 Parse는 통합되는 주요 구성 요소와 다르지 않도록 변경 사항을 적용해야 했습니다.
열렬한 Parse 사용자로서 저 역시 시간이 지남에 따라 몇 가지 변화가 더 있을 것으로 예상합니다. 좋은 변화입니다. 합리적이며 모두가 목표를 달성할 수 있는 변화 말이죠.
Back4app은 이러한 발전에 기여하게 된 것을 자랑스럽게 생각하며, GraphQL을 사용하는 모든 사용자에게 GraphQL 쿼리 및 변형과 함께 Parse를 3.9로 업데이트할 것을 권장합니다. 훨씬 더 일관된 쿼리 언어의 이점을 누릴 수 있습니다.
4.0 버전이 출시되었습니다. 어떤 변화가 있을까요?
GraphQL은 시간이 지남에 따라 어떤 변화를 겪었나요?
다음과 같은 주요 변경 사항이 적용되었습니다.
– 클라우드 코드 통합
– 사용 편의성 개선
– 직관성 향상
– 새로운 기술 적용
– 일관된 구문
이러한 변경 사항은 시간이 지남에 따라 이루어졌습니다.
객체를 만드는 돌연변이에 어떤 변화를 줄 필요가 있었나요?
이 부분을 변경하기 위해 가장 중점을 둔 것은 일관성이었습니다. 이제 Parse 3.9에서는 클래스를 먼저 생성하고 그 후에 객체를 생성해야 합니다. 따라서 이번 업데이트에서는 일관성을 중시했습니다.
많은 측면에서 변화를 주는 것이 좋았나요?
네, 변경이 필요했습니다. 새로운 표준이 등장하면서 Parse 사용자들은 큰 기대를 하고 있습니다. 그들은 더 나은 변화를 기대했고, Parse도 마찬가지였습니다. 앞으로도 좋은 버전이 되기 위해 계속 업데이트할 것입니다.