개발/간단하게...16 room 쓸 때 SQLITE_CONSTRAINT_PRIMARYKEY 에러나면? 난 그냥 id에 -1 넣으면 알아서 해주는 줄 알았는데 그러면 안됨 @Entity(tableName = INV_ITEM_TABLE_NAME) data class InvItem( @PrimaryKey val id: Int, @ColumnInfo(name = "item_name") val itemName: String, @ColumnInfo(name = "item_original_id") val itemOriginalId: String?, @ColumnInfo(name = "price") val price: Int, @ColumnInfo(name = "buy_date") @TypeConverters(DateConverter::class) val buyDate: Date, @ColumnInfo(name = ".. 2023. 3. 12. 룸 쓸때 AppDatabase_Impl does not exist 에러나면? 나같은 경우는... TypeConveter 쓰는 부분이 문제였고, 해결방안은... DataClass 뿐만 아니라 RoomDatabase 클래스에도 선언을 해주니 해결됨 요렇게 @Database(entities = [InvItem::class], version = 1) @TypeConverters(DateConverter::class) abstract class AppDatabase : RoomDatabase() { abstract fun invItemDao(): InvItemDao 2023. 3. 12. 앱 개발할 때 모듈로 나눈 이유는? 안드로이드 앱을 개발할 때 모듈로 나누는 이유는 크게 두가지가 있을 것 같아. 첫째, 모듈로 나눠서 개발하고 인터페이스로 잘 정리만 하면, 다른 모듈에 영향을 주지 않고 각각의 모듈을 병렬적으로 개발할 수 있지. 둘째로, 각 모듈이 독립적으로 개발되므로, 모듈 간의 의존성을 최소화되어서 쉽게 유지보수하고 확장할 수 있도록 하는 데 도움이 됨. 모듈로 나눠서 개발하면 코드를 더욱 쉽게 분리할 수 있으며, 새로운 기능을 추가할 때도 더욱 쉽게 대응할 수 있어. 근데 내가 생각하는 더 중요한거가 하나 더 있어. 어느정도 규모가 있는 프로젝트라서 여러 사람이 함께 개발할 때, 업무를 어떻게 나눌지도 매우 중요한 아키텍쳐적인 요소야. 그럴때 그 기준으로 삼을 수 있는거지. 예를 들어 모듈을 뷰, 데이터, 뭐 네트.. 2023. 3. 9. Room이 뭐야? 간단히 설명 Room은 안드로이드에서 SQLite 데이터베이스를 쉽게 사용할 수 있도록 도와주는 라이브러리야. Room은 Android Architecture Components 라이브러리 중 하나로, 안드로이드 앱의 데이터베이스를 관리하고 제어하는 데 사용됨. 뭐 간단한 설명은 이거고. 중요한거는!!! Room은 SQLite의 높은 성능과 안정성을 유지하면서, 객체 지향에 맞춰 쓸 수 있게 도와줘. 쿼리문을 작성하거나 데이터베이스 스키마를 직접 작성하지 않아도 되됨 즉 안드로이드에서 db읽을려면 contract뭐 그런거 해 놓고, 커서에서 하나씩 일거엇 객체를 만들자나. db생성도 직접하고. 근데 뭐 하나 바꿀려면 코드도 많이 바꿔야 허고 귀찬자나. 그런 보일러 뭐시기 코드를 알아서 작성해줘. 이를 통해 개발자는 .. 2023. 2. 22. 이전 1 2 3 4 다음 반응형