문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족한 경우 확인 및 답변이 지연될 수 있습니다.
- 뒤끝 SDK 버전 : 최신
- 프로젝트명 : MiniRPG
- 스테이터스 코드 :
- 에러 코드 :
- 에러 메시지 :
안녕하세요. 뒤끝 이용중에 어려운부분이 있어 질문드립니다!
유저 정보를 담고있는 테이블이 있습니다. 유저마다 최대 하나의 row만 가질 수 있습니다.
유저가 사용을 함에따라 해당 row의 데이터를 Update하면서 사용하게 됩니다.
문제는 Update할때마다 “유저가 row을 가지고 있는지 확인하고, 가지고있지 않다면 Insert를 하는 함수” 를 매번 불러야 한다는 부분입니다. 이렇게되면, 불필요한 호출횟수도 많아지고, 코드도 콜백의 콜백(의 콜백) 을 구현해서 지저분해진다는 단점이 보입니다. 여기에다가 Transaction까지 추가된다면 스파게티가 될 것 같은데요…
- 원래 DB는 어떻게 바뀌어있을지 모르니까 Update하고싶을 때마다 row가 있는지 확인하여 (indate를 가져온 후 혹은 Insert한 후) Update한다.
- 우선 쿼리 new Where()를 통해 Update를 호출하고, 콜백 실패의 이유가 row가 없어서라면 Insert를 진행한다. (해당 사유로 실패를 리턴 하지는 않는 것 같네요…)
- 회원가입 할 때 유저의 정보를 Insert하고 이후로는 row가 있다고 가정하고 Update만 합니다.
(이 경우는 운영도중 새로운 Table이 생성될 경우 문제가 있을수 있어보입니다) - 로그인 할 때 유저의 정보를 불러오고, 유저의 row가 없다면 Insert하고 진행합니다.
- 비동기(or SendQueue)로 호출하지 말고 동기로 모든 테이블정보를 호출한다.
제가 생각한 방법은 이정도인데, 제 생각으로는 5번이 제일 깔끔하게 나올 것 같습니다…
하지만 (경우에 따라 다르겠지만) 뒤끝 권장사항이 비동기처리로 알고있습니다…
- 일반적으로 어떻게 사용하는지 궁금합니다.
- 또, Insert와 Update를 합하여 한번에 쿼리나 함수 등을 부를 수 있는 방법이 있을까요?
- 추가로, 뒤끝에서 호출받은 함수를 Async나 코루틴 등을 통해 래핑하여 사용하면 괜찮을까요?