-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
21 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,72 +1,62 @@ | ||
~~# tools.graphql | ||
|
||
이 라이브러리는 graphql 관련된 여러가지 도구들을 제공한다. | ||
# tools.graphql | ||
|
||
1. [edn 스키마를 sdl 로 변환하기](#edn-스키마를-sdl-로-변환하기) | ||
2. [edn 스키마 합치기](#스키마-edn-합치기) | ||
3. [스키마 정적 분석](#스키마-정적-분석) | ||
This library provides various tools related to GraphQL. | ||
|
||
1. [Convert EDN Schema to SDL](#convert-edn-schema-to-sdl) | ||
2. [Merge EDN Schemas](#merge-edn-schemas) | ||
3. [Schema Static Analysis](#schema-static-analysis) | ||
|
||
## 설치 | ||
## Installation | ||
|
||
이 라이브러리는 clojure cli tool 로 설치할 수 있다. | ||
You can install this library using the Clojure CLI tool. | ||
|
||
```sh | ||
clojure -Ttools install-lastest :lib io.github.green-labs/tools.graphql :as graphql | ||
clojure -Ttools install-latest :lib io.github.green-labs/tools.graphql :as graphql | ||
``` | ||
|
||
빌드 시스템에 추가하고자 할 경우 :build (혹은 적절한 alias) 에 다음을 추가하시오. | ||
If you want to add it to your build system, add the following to the :build (or appropriate alias): | ||
|
||
```edn | ||
{io.github.clojure/tools.build {:mvn/version "0.10.3"}} | ||
``` | ||
|
||
### Convert EDN Schema to SDL | ||
|
||
### edn 스키마를 sdl 로 변환하기 | ||
|
||
lacinia 라이브러리를 사용하는 경우 edn 형식으로 스키마를 작성해야 한다. | ||
만약 이를 GraphQL SDL 형태로 변환하고 싶을 경우 edn2sdl API 를 사용할 수 있다. | ||
When using the Lacinia library, you need to write the schema in EDN format. If you want to convert it to GraphQL SDL format, you can use the `edn2sdl` API. | ||
|
||
```sh | ||
clojure -Tgraphql edn2sdl \ | ||
:input-path "path/to/schema.edn" \ | ||
:output-path "path/to/schema.graphql" | ||
``` | ||
|
||
### Merge EDN Schemas | ||
|
||
### edn 스키마 합치기 | ||
|
||
서비스가 커지면 edn 스키마를 여러개로 나누어 작성하는 것이 편리하다. | ||
그러나 Lacinia 는 하나의 스키마만을 읽을 수 있다. | ||
As your service grows, it may be convenient to write the EDN schema in multiple files. However, Lacinia can only read a single schema. | ||
|
||
런타임에 이를 합쳐서 로딩하는 방법도 있지는 이를 추천하지 않는다. | ||
왜냐하면 각각의 스키마가 서로 충돌하지 않는지, 혹은 필요한 필드가 모두 정의되어 있는지 확인하기 어렵기 때문이다. | ||
Although it is possible to merge and load these at runtime, this approach is not recommended. It can be difficult to ensure that there are no conflicts between the schemas or that all necessary fields are defined. | ||
|
||
따라서 별도의 빌드 단계를 두어 스키마를 합치는 것을 원할 수 있다. | ||
이를 위해 stitch-schemas API 를 사용할 수 있다. | ||
Therefore, you might want to have a separate build step to merge the schemas. You can use the `stitch-schemas` API for this purpose. | ||
|
||
```sh | ||
clojure -Tgraphql stitch-schemas \ | ||
:input-paths ["path/to/schema1/" "path/to/schema2/"] \ | ||
:output-path "path/to/schema.edn" | ||
``` | ||
|
||
stitch-schema 는 안정적으로 스키마를 합칠 수 있는 경우에만 최종 스키마를 생성한다. | ||
|
||
개발 단계에서 스키마 합치기를 자주 사용한다면 `:watch true` 인자를 추가하여 watch 기능을 사용할 수 있다. | ||
watch 를 사용하기 위해서는 watchman 이 시스템에 설치되어 있어야 한다. | ||
The `stitch-schemas` function will only generate the final schema if it can merge the schemas reliably. | ||
|
||
Note: 최종 생성된 스키마 역시 버전 관리를 하는 것이 좋다. | ||
If you frequently need to merge schemas during development, you can add the `:watch true` parameter to enable the watch feature. To use watch, Watchman must be installed on your system. | ||
|
||
Note: It is recommended to version control the final generated schema. | ||
|
||
### 스키마 정적 분석 | ||
### Schema Static Analysis | ||
|
||
스키마를 작성할 때 일관성을 유지하고, 잘못된 필드나 타입을 사용하지 않도록 도와주는 도구가 필요할 수 있다. | ||
특히 스키마가 크고 복잡해질 경우 이는 더욱 중요하다. | ||
이를 위해 validate API 를 사용할 수 있다. | ||
To maintain consistency and avoid using incorrect fields or types when writing your schema, you might need a tool to assist you, especially as the schema grows larger and more complex. For this, you can use the `validate` API. | ||
|
||
```sh | ||
clojure -Tgraphql validate :input-path "path/to/schema.edn" | ||
``` | ||
|
||
위 명령어는 사용하지 않는 type, input, enum, union, interface 를 찾아줄 것이다.~~ | ||
This command will identify unused types, inputs, enums, unions, and interfaces. |