동기 함수
동기 함수란 요청 시점에서 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어지는 함수입니다.
함수를 호출하면 리턴 값이 반환될 때까지 메인 스레드의 동작이 중지하게 됩니다.
비동기 함수와는 다르게 순차적으로 함수가 호출되어 순서가 섞일 가능성이 없으며, 작업 도중 다른 스레드에 의해 오류가 발생할 경우가 없기 때문에 확실한 결과를 제공합니다.
뒤끝 동기 함수 사용 시 주의사항
게임 정보나 차트, 랭킹 정보 불러오기 등의 큰 데이터를 불러오는 함수를 호출할 경우에는 서버에서 처리하는 데이터의 양이 많아 응답 값을 받기까지 오래 걸릴 수 있습니다.
함수가 호출되고 응답이 오기까지 메인 스레드에서 해당 함수의 응답 값을 기다리고 있기에, 게임은 응답이 오기 전까지 프로세스가 중지되어 멈춘 것처럼 보일 수 있습니다.
또한 읽어오는 양이 적은 함수일지라도 요청이 가고 응답이 받기까지 짧은 시간이 존재하기 때문에 중지된 것처럼은 아니더라도 호출 시마다 약간의 끊김 현상처럼 보일 수 있습니다.
그렇기에 동기 함수는 되도록 자제하여야 하며, 확실하게 진행되어야 하는 기능에 주로 사용되어야 합니다.
동기 함수를 호출하는 상황
- 로그인, 토큰 갱신 등 로그인 관련 기능
- 결제 영수증 검증, 결제 아이템 지급 등 과금에 관련된 기능
동기 함수를 호출하면 안 되는 상황
- 게임 정보, 차트, 랭킹 등 많은 양의 데이터를 불러오는 기능
- 게임 저장 등 인게임에서 자주 호출되는 기능