[Go] 도메인 모델 매핑에 진땀흘리다..

devlcw·2024년 9월 1일

문제점

현재 진행중인 외주 프로젝트에서 문제점이 생겼다.
gqlgen으로 GraphQL 리졸버와 모델을 만드는데, 문제는 ORM 모델과 겹친다는 것이다.

ORM은 entgo를 사용 중이다. Repository에서 GraphQL과 일반 REST 모두 호환되는 인터페이스를 만들고 싶었는데, 예전에 일일이 매핑한 기억이 난다.

근데 이러면 문제가 생긴다.
구조체 할당에 오버헤드가 발생할 것이고, 배열로 받는다면 더더욱 오버헤드가 발생할 것이다.

gqlgen의 옵션

이제와서 확인해보니 gqlgenautobind 옵션이 있었다.. 이걸 모르고 이때까지 일일이 매핑 함수를 하나 더 만들어서 Repository에 때려넣었다니.. 너무 바보같다.

해결하는 방법은 다음과 같다.

autobind:
    - "application/ent" # 여기에 ent에서 generated된 모델의 패키지를 넣는다.

그리고 사용하면 된다.

profile
모든 스택에는 이유가 있다

1개의 댓글

comment-user-thumbnail
2024년 9월 6일

스스로 성찰하고 문제를 해결하는 모습이 빛나네요. 응원합니다.

답글 달기