본문 바로가기

내일배움캠프

본 캠프 45일 차

Room

  • 데이터를 저장하는 방법
  • 3요소로 Database, Entity, Dao가 있다
  • gradle 파일에 plugin과 dependencies에 입력해서 sync해야 함

gradle 파일 설정

plugins {
    id("kotlin-kapt")
}

플러그인에 얘를 추가해 주고

dependencies {
    val room_version = "2.6.1"

    implementation("androidx.room:room-runtime:$room_version")
    annotationProcessor("androidx.room:room-compiler:$room_version")

    // To use Kotlin annotation processing tool (kapt)
    kapt("androidx.room:room-compiler:$room_version")

    // optional - Kotlin Extensions and Coroutines support for Room
    implementation("androidx.room:room-ktx:$room_version")

    // optional - Test helpers
    testImplementation("androidx.room:room-testing:$room_version")
}

dependencies에 room을 추가해준다. 여기에도 val로 선언할 수 있는건 처음 알게 되었다.

이걸 넣다가 아래와 같은 에러가 났다.

Dao에서 문제가 난건가 하고 밑에 오류를 구글링 해서 찾아보니 suspend를 지우면 된다는 글을 발견하고 해보니 또 다른 오류가 생겨났다. 이후 리스트 앞에 LiveData를 더 써 넣기도 해보고 이상한걸 다 해본거 같다.

 

이후 다시 생각해 보니 강의에서 버전 최신화 된걸 쓰라고 한걸 기억해서 developer에 room을 검색해서 들어가보니 강의보다 버전이 낮은 2.5.0을 보여주고 있었다. -> 강의는 2.5.1

 

안드로이드 스튜디오 내에서 혹시 더 찾을 곳이 있나 하고 둘러보다가 File-> Project Structure에 들어가서 Suggestion을 눌러보니 최신버전이 어떤건지 나와 있었다.

심지어 ktx쪽도 1.9.0이 아니라 1.12.0이 최신버전이었다.

이후 맨위에 올린 코드와 같이 최신 버전으로 바꿔주니 앱이 정상 작동하였다.

버전 최신건 이제 Project Structure를 잘 확인 해봐야겠다.

 

일단 강의를 듣고보니 

'Room 클래스의 인스턴스는 하나만 있으면 되므로 Singleton 패턴을 사용' 과 같이 물음표를 자아내는 설명이 많았다.

우선 지난번 oop객체 실시간 강의때도 살짝 언급된 Singleton에 대해서 좀 더 알아봐야 할 것 같다. + 디자인패턴

 

구글 api를 이용해서 구글 맵 띄우기

room을 듣고 난 뒤 구글 맵을 이용한 앱 만들기 예제를 실행 시켜보니 앱이 꺼지거나 하는 에러 없이 그냥 구글 맵이 나와야 할 곳이 텅 빈 화면으로 나오는 현상

  • java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=co...
  • set_timerslack_ns write failed: Operation not permitted

이런걸 로그캣에서 발견하여 검색 해 봤지만 팀원들과 함께 알아보려고 끝나는 시간을 넘어서 1시간 가량 찾아보았는데 소득없이 끝날 줄 알았지만 결국 방법을 찾았다

구글 클라우드에 가입할 때 프로필 작성부터 뜨는걸 스킵하고 넘어가는 바람에 일어난 일이었다. 물론 프로필 작성은 건너 띄어도 상관 없지만 나중에라도 api 사용 설정을 해주어야 했다. 이를 하고 나니

이제는 정상적으로 구글맵이 뜨는 모습이다.

다만 아쉬운점은 구글 클라우드는 무료이용기간이 있어서 3,4개월? 정도로 기간제로 이용할 수 있다는 게 좀 아쉬운거 같다.

 

 

다음에 알아볼 것

  • 디자인패턴 (특히 Singleton)
  • Annotation
  • SQL Query
  • SQLite

일단 내일 강의도 들으면서 이부분을 좀 찾아보면 좋을 것 같다.

'내일배움캠프' 카테고리의 다른 글

본 캠프 47일 차  (0) 2024.01.26
본 캠프 46일 차 - Miseya  (1) 2024.01.24
본 캠프 44일 차  (2) 2024.01.22
본 캠프 42일 차  (0) 2024.01.18
본 캠프 40일 차  (0) 2024.01.16