본문 바로가기
Android/이론

suspend 함수

by 둥글레차35 2025. 5. 20.

suspend 개념

코루틴 안에서만 호출 가능한 함수
-> 이 작업은 오래 걸릴 수 있어요 
-> 그래서 코루틴 안에서만 호출해야 합니다. (실제로도 코루틴 안에서 호출하지 않을 시 오류 발생)
-> 메인 스레드는 화면을 그리느라 바쁘다! -> 그래서 시간이 오래걸리는 요청과 같은 역할은 비동기로!
-> 코루틴 내부에서 실행 순서대로 해당 작업을 기다려 준다!

 

생각

이걸 보면서 콜백 함수가 생각이 났다. 콜백 함수의 경우 요청후 응답 후 실행할 일들을 내부에서 처리하도록 코드를 작성하는데 이는 가독성이 떨어지며 유지보수도 힘듦 suspend 키워드를 사용하여 코드를 작성시 비동기 코드를 더 읽고 쉽게 관리할 수 있을 것 같다는 생각이 들음 실제로도 프로젝트를 진행하면서 처음에는 콜백 방식을 사용하였지만 이후에는 suspend 함수를 사용하고 있다. 

결론적으로 콜백이든 suspend든 결국 main스레드는 화면만을 담당하기에 기다려주지 않는 비동기를 원활하게 사용하기 위한 방식!

댓글