2020. 6. 1. 00:15ㆍTutorial & Training/Go
https://gmyankee.tistory.com/301
#01.Go - GraphQL 알아보기
서론 Go언어를 사용하는 Gopher 여러분들은 상당히 다수 존재하는 반면에, Graphql은 아직까지도 한국어로 된 자료가 많지 않으며, GraphQL 대다수의 자료는 JS가 부동의 1위를... 저도 언어를 3가지를 ��
gmyankee.tistory.com
이전에 알아본 graphql중에서도 gqlgen을 강조하였기에 당연히 gqlgen을 사용할 것이며,
사실 제가 gqlgen말고 다른건 안써봤습니다!
99designs/gqlgen
go generate based graphql server library. Contribute to 99designs/gqlgen development by creating an account on GitHub.
github.com
gqlgen
What is gqlgen? gqlgen is a Go library for building GraphQL servers without any fuss. gqlgen is: Schema first — Define your API using the GraphQL Schema Definition Language. Type safe — You should never see map[string]interface{} here. Codegen — Let
gqlgen.com
gqlgen 설정하기
// 저는 overmap 이라는 이름의 저장소로 진행하겠습니다.
// go mod init github.com/[계정명]/[저장소]
go mod init github.com/yankeetube/overmap
go get github.com/99designs/gqlgen
go run github.com/99designs/gqlgen init
// Windows
@DOSKEY gqlgen="go run github.com/99designs/gqlgen"
튜토리얼에 있는 대로 따라하셔도 되지만 그렇게 할 경우 TODO를 진행하게 됩니다.
그래도 Todo가 생깁니다 ㅋ__ㅋ
│ go.mod
│ go.sum
│ gqlgen.yml
│ server.go
│
│
└─graph
│ resolver.go
│ schema.graphqls
│ schema.resolvers.go
│
├─generated
│ generated.go
│
└─model
models_gen.go
init 명령으로 생성하게 되면 위 와 같은 폴더 구조를 가지게 됩니다.
model 폴더의 models_gen은 스키마를 추가/수정 할 경우 init 명령으로 자동생성 해주는데,
GORM을 사용할 경우 https://gmyankee.tistory.com/299
GORM 컬럼명 지정하기
개발자마다 또는 사용자마다 사용하는 코드 스타일 및 컨벤션은 제각각 다릅니다. 하지만 언어마다 권장하는 표준 방식이 존재하는데 이를테면 Python에서는 snake_case를 // snake_case(스네이크 케이�
gmyankee.tistory.com
이러한 단점이 존재하기 때문에, 수동으로 수정해야하는 부득이한 경우가 생깁니다.
하지만 init을 할 때마다 사라지니... 이걸 해결하려면
1. 애초부터 DB 컬럼명에대한 고민을 잘 하자! (언더바는 대문자 카멜케이스로 치환되니까... 이건 이렇게...)
2. History를 잘 지원해주는 IDE를 사용하자! (goland는 Jetbrains 제품은 모두 기본적인 history 기능이 빵빵합니다.)
3. Git으로 관리하자...
4. gqlgen.yml을 이용하여 관리하기 (이부분은 저도 따로 진행해보지 않아 공식문서를 참고해보셔야 할 것 같습니다.)
'Tutorial & Training > Go' 카테고리의 다른 글
#03. GraphQL 프레임워크 어떤 프레임워크를 써야할까? (0) | 2020.12.15 |
---|---|
Django Prefetch와 비교해보는 GORM Preload에 대한 고찰 (0) | 2020.07.05 |
#01.Go - GraphQL 알아보기 (0) | 2020.05.31 |
Go언어 ORM GORM의 크나큰 문제점 (0) | 2020.05.15 |
Go Gorm Preload without order by (0) | 2020.05.13 |