AOSP에서 프로세스 간 통신 구조를 공부하면서 흥미를 느낀 경험
안드로이드 앱 개발을 하다가 서비스와 액티비티 사이 통신이 내부적으로 어떻게 되는지 궁금해서 AOSP 코드를 처음 열어보았습니다. 처음에는 어디서 시작해야 할지 몰라서 한참 헤맸습니다.
그때 Binder 메커니즘 관련 문서를 읽으면서 앱 프로세스 간 통신이 커널 드라이버를 통해 이뤄진다는 것을 처음 알게 되었습니다. 앱에서 서비스를 호출할 때 단순한 함수 호출이 아니라 IPC 과정이 있다는 것과 그 아래에 Binder가 있다는 구조가 흥미로웠습니다.
아직 코드 전체를 이해하지는 못했지만, 동작 원리를 파악하면서 왜 안드로이드가 이렇게 설계되었는지 이해하려고 노력하고 있습니다.
공부하면서 느낀 것은 앱 레이어에서 당연하게 쓰던 것들이 사실은 복잡한 구조 위에 있다는 것입니다. 그 구조를 이해하면 버그를 더 빠르게 찾거나 성능 문제를 다른 시각으로 볼 수 있을 것 같아서 계속 공부하고 있습니다. 호기심이 생기면 일단 파고드는 편입니다.