기간이 얼마 안됬지만 GQL을 쓰고나서 개인적인 후기
spring 에서 DGS 사용
2개의 도메인에서 GQL을 사용해봤습니다.
1. 관리자 도메인
2. 커머스 도메인
결과만 얘기해보면 커머스에서는 좋은 경험이었습니다. 관리자에서는 좀 불편한 부분이 있었습니다.
실무에서 사용하면서 느꼈던 점
기존에 설계된 서비스에 반영시에 최초에 설정할 query가 많다.
list 형태로 된 데이터를 가져올때 DB에 조인된 데이터의 경우 성능을 고려하며 개발할때 복잡도가 높아진다.
N+1 이슈 DGS-N+1 문서의 경우 1개의 대한 간단한 처리만 되어 있지만, 복잡도가 높아지고 1 row에 더 많은 join이 들어가는 경우 복잡도가 높아진다.
아래는 샘플 쿼리입니다.
이때 상품 정보가 100개 있다고 할때 totalSalesAmount, reviewCount, seller는 DataLoader를 활용해서 가져와야 합니다.
실제는 아래처럼 간단한 쿼리로 요청하지 않았고 여러 조건을 걸어서 요청을 합니다. 특정 기간에 추가된 상품 중에 특정 판매자 같은 조건이 붙는 경우 복잡도가 더 올라갑니다.
query GetProductList {
getProductList {
id
name
totalSalesAmount # 총 판매 금액
reviewCount # 총 리뷰 수
seller {
id
name
contactInfo {
email
phone
}
}
}
}
파일 업로드