저희는 배.캠.신.기.입니다!
오늘은 챌린지반 특강이 있었습니다.
오늘은 클린 아키텍처를 배웠습니다.
SOLID 원칙에서 단일 책임 원칙이라는 원칙이 있습니다.
하나의 클래스가 하나의 역할만 한다는 뜻입니다.
이 원칙은 단순히 객체 지향뿐만 아니라 전체적인 패턴에도 적용시키면 좋은 원칙입니다.
클린 아키텍처도 어찌보면 이 방식을 따라 만드는데,
안드로이드 앱을 프레젠테이션, 도메인, 데이터 레이어로 나누고,
그 안에서 프레젠테이션은 뷰, 뷰모델로, 도메인은 유즈케이스, 데이터는 데이터 소스와 레포지토리로
나눌 수 있습니다.
이렇게 나누면 얻게 되는 이점은 다른 것보다 세세하게 나누기에, 오류가 생겨도 쉽게 찾을 수 있습니다.
여기서 UseCase는 각각의 기능들을 나눠서 구축하는 방식입니다.
이런 방식을 과제에 적용하는 게 이번 목표입니다.
오늘은 안드로이드 개발반 심화 강의도 조금 진행했습니다.
오늘은 SharedPreference와 Room에 대해 배웠습니다.
SharedPreference는 로컬 저장소에 저장할 수 있는 간단한 데이터 저장소같은 느낌입니다.
val pref = getSharedPreferences(”이름”, 모드(Int) )
pref.getString(”키값”, “디폴트”)
val edit = pref.edit()
edit.putString(”키값”, “넣어줄 값”)
edit.apply()
여기서 getSharedPreferences로 SharedPreference를 불러올 수 있습니다.
그리고, getString()에 키값을 가져올 수 있습니다.
만약 값이 없다면 기본값을 가져올 수 있습니다.
그리고 preference의 edit()으로 에디터를 불러올 수 있습니다.
이 에디터에 putString()을 하고, apply()를 통해 적용시킵니다.
그러면 파일 내에 추가됩니다.
룸은 로컬에 저장할 수 있는 데이터베이스입니다.
룸을 구성하는 요소는 DAO, Entity, Database 입니다.
Entity는 데이터 테이블 스키마입니다. DAO는 SQL 쿼리를 정의할 수 있습니다.
Database는 데이터베이스입니다.
그래서 이걸 공부를 하고 싶었는데, 중간에 오류가 생겼습니다.
저희가 지급받은 강의에서는 groovy로 gradle이 설정돼 있었습니다.
그 중에 plugins { } 에 넣어줘야 하는 kapt라는 게 있었는데, 기존에는 아래처럼 돼 있었습니다.
id 'kotlin-kapt'
근데 이를 kts 파일에 적용하려고 코틀린 문서를 찾아보니 아래처럼 돼 있어서 적용했더니...
kotlin("kapt") version "2.0.0"
오류가 발생하기 시작했습니다...
이유는 버전이 맞지 않아서였습니다. 그래서 튜터님께 도움을 요청했습니다.
id("kotlin-kapt")
정답은 위의 방법이었습니다. id를 사용하면 자동으로 버전을 찾아주는 것 같습니다.
내일은 Room에 대해 더 집중적으로 공부하고, 다음 내용으로 넘어가고 싶습니다.
끝.