Room에서 KSP가 필요한 이유: Room Compiler와 코드 생성 원리
Room에서 DAO와 Database 구현체가 자동 생성되는 과정을 KSP, Room Compiler, Room Runtime의 역할을 중심으로 설명
Room을 처음 설정하다 보면 ksp라는 의존성이 갑자기 등장한다. Room으로 로컬 데이터베이스를 만들려는 것인데, 왜 별도의 KSP가 필요한 걸까? 핵심은 Room의 동작 방식에 있다. 개발자는 DAO와 Database의 형태를 선언하지만, 실제 SQLite를 다루는 구현 코드는 직접 작성하지 않는다. Room Compiler가 빌드 과정에서 이 구현 코드를 생성하며, Room 3.x에서는 이 코드 생성 과정에 KSP가 필요하다. 이 글에서는 Ariadne의 파일 Metadata 캐시를 예제로 다음 관계를 정리한다. 이 다섯 가지의 역할을 구분하면 Room 설정에서 왜 ksp(...)가 필요한지도