This message was deleted.
# 질문
s
This message was deleted.
h
설명해주신 그대로 기능 A, 기능 B가 각각 독립적인 뮤테이션이 되어야 할 걸로 보이네요. 뮤테이션 명도 CRUD식 작명 대신 "기능A", "기능B"로 변경하면 훨씬 자연스러울 것 같습니다.
👌 1
👍 1
u
아하.. 그렇군요.. 그럼 중복되는 코드에 대해서는 함수로 분리하고 기능으로 나뉘어진 뮤테이션에서 해당 함수를 호출하는 식이 되겠군요! 빠른 답변 정말 감사합니다 🙏
t
저도 혜성님 의견에 +1 합니다 ㅎㅎ 뮤테이션에 CRUD적인 작명은 피하는게 맞는거같더라구요. create, delete는 쓸수밖에 없는거같고 ㅎㅎ update는 비즈니스에 맞는 이름으로 각각 바꾸시면 더 좋을거같아요!
🙇 1
h
u
지금까지 설계를 잘못해왔던 것 같네요.. 코드가 복잡해져서 어떻게 하는게 좋을지 고민했었는데 많은 도움 얻어갑니다! graphql-rules 문서라는게 있는지 몰랐는데 이 문서도 도움이 많이 될 것 같아요!! 👏
t
아니에요 ㅋㅋㅋ 다 각자 이유가 있는거죠~~ 시간되실때 #C01PACBHTNE 에 한번 공유해주시면 좋을거같아요! ㅋㅋ
u
저도 혜성님 의견에 +1합니당. 기능 A와 기능 B는 각각 독립된 비즈니스 로직으로 보여서 해당 비즈니스 로직에 맞는 뮤테이션명을 지어주는게 더 좋지 않나 싶어용~
🙇‍♀️ 1
t
아 추가로 저는 Production-ready GraphQL 구매하셔서 거기 포함된 Schema Design cheat-sheet 보시는거 추천드립니다 ㅎㅎ
u
그런데 저도 서버에서는 A, B, C 뮤테이션을 각각 만들어놓고 클라이언트 사이드에서 (A, B), (A, C) 이렇게 조합해서 뮤테이션을 날렸을 때, 서버사이드에서 트랜잭션 처리가 되면 차암 좋겠다... 라는 생각을 했었습니당 🙂
h
되면 안되죠 ㅋㅋㅋㅋ.....;;;;
u
넵넵 ㅋㅋㅋㅋ 되면 안되는건데 한때 저렇게 생각했었읍니당 ㅎㅎㅎㅎ
t
뭔가 DataLoader 같은 느낌으로 묶을수있지 않을까요..?
h
참고로 필드 리졸버에서 다른 필드 리졸버를 재사용하는건 뭐 자유로우니까요 트랜잭션 걸고 그대로 쓰셔도 되긴함
t
TransactionLoader
🚀 1
h
리졸버에서 리졸버 뜯어서 콜 하는건 종종 씁니다
code-first framework에선 이렇게 쓰기가 어려운데
schema-first 로 개발하면 매우 편해요
데이터로더는 좀 다를 수 있는게
뮤테이션은 스펙상 애초에 동시적으로 처리되는 녀석이 아니에요
하나실행하고 하나실행하고 이런게 스펙이라
👌 2
t
아 맞네요;;
h
쿼리만 동시적으로 처리됨
PRG cheat sheet 내용이 graphql rules 랑 대략 비슷할거에요
graphql rules 를 poor man's PRG 라고 보시면 ㅋㅋㅋ...
PRG 비쌈
😭 1
회사에 사달라고 하는게 현명합니다
u
헉 모두 조언 감사합니다 회사에 Production-ready GraphQL 사달라고 해야겠네요!!
👍 2
zzzz 2
t
그나저나 Graphene 쓰시는군요 ㅎㅎ 다음에 발표 한번 부탁드리러 가겠습니당 ㅋㅋㅋ
👀 1
u
오 넵 기회 주시면 좋죠! ㅎㅎ 🙏