안드로이드 룸(Room) 라이브러리 같은 경우에도, DAO를 DB 클래스 내부에서 사용하는 것이 일반적인 패턴입니다. 이렇게 함으로써 데이터베이스 질의어와 관련된든 것들을 한 곳에 모아서 관리할 수 있게 됩니다. 데이터베이스 관련 작업의 일관성 유지: DAO 인터페이스는 앱의 데이터베이스 작업을 수행하는 주요 인터페이스입니다. 데이터베이스 클래스 내부에 이를 선언하면 데이터베이스와 관련된 모든 구성요소를 한 곳에서 관리할 수 있습니다. 데이터베이스 별로 DAO를 쉽게 관리하기 위함: 기본적으로 한 데이터베스 클래스는 한 데이터베이스와 관련됩니다. 여러 개의 데이터베이스를 사용하는 앱에서는 데이터베이스별로 데이터베이스를 생성해야 합니다. 이 경우, 각 데이터베이스 클래스 내부에 해당 데이터베이스와 관련된 ..
정리 : 클래스 레벨로, 인스턴스 생성 없이 클래스 이름.멤버로 직접 사용 가능. 클래스가 로드되는 시점에 메모리에 한 번만 할당된다. 유일한 인스턴스를 전역적으로 공유하고 관리하는 싱글톤 패턴에서 사용한다. static은 자바와 같은 객체 지향 프로그래밍 언어에서 사용되는 키워드입니다. static 키워드가 붙은 변수, 메서드, 또는 내부 클래스는 클래스 레벨에서 사용되며, 객체를 생성하지 않고도 사용할 수 있습니다. static의 주요 특은 다음과 같습니다. 클래스 레벨의 멤버: static을 사용하면 변수, 메서드, 또는 내부 클래스가 클래스에 속하게 되며, 객체(인스턴스)와 독립적으로 동작합니다. 인스턴스 생성 없이 사용 가능: static 멤버는 클래스 이름으로 직접근할 수 있으므로 인스턴스 생..
모델(Model) 파일을 별도로 사용하는 것은 필수적이지는 않지만, 여러 이유로 권장되는 프로그래밍 관행입니다. 모델 파일은 각 데이터베이스 테이블에 대응하는 클래스로, 다음과 같은 이점을 제공합니다. 객체 지향 프로그래밍(OOP)근: 모델 파일은 데이터베이스 테이블의 각 레코드를 객체로 표현합니다. 이를 통해 객체 지향 프로그래밍의 장점을 활용할 수 있으며, 디자인 패턴과 재사용 가능한 코드 구조를 수월하게 적용할 수 있습니다. 타입 안전성: 모델 클래스 사용하면 데이터베이스 테이블의 열(column)을 클래스의 속성(properties)으로 정의할 수 있습니다. 이렇게 하면 타입 안전성이 향상되고 컴파일 타임에 오류를 감지할 수 있습니다. 코드 이해 및 유지 관리: 모델 파일은 테이블 스키마 및 데이..
안드로이드 스튜디오로 개발하다 보면 데이터베이스를 다룰 일도 생기는데, 이때 View를 만들 일도 생긴다. 데이터베이스에서 View는 쿼리 결과를 기반으로 생성되는 가상 테이블이다. 보안을 위해 필요한 열만 선택한 가상의 테이블을 만들어 해당 열만 외부 사용자에게 노출시킬 수 있다. 안드로이드 스튜디오에서의 View는 클래스로서, UI 구성요소를 나타내는 클래스이다. UI를 구성하는 레이아웃 요소나 위젯들은 View클래스 또는 이를 상속받은 클래스를 사용한다. 이름은 같지만 서로 관련은 없다.
한마디로 "순차적으로 진행하지 않음" 여러 작업이 동시에 수행될 수 있음을 의미한다. 인터넷 페이지 로딩시 위에서부터 아래로 로딩되지 않고 전체적으로 부분부분 로딩된다. 또 컴퓨터에서 어떤 것을 다운받고 있는 동시에 인터넷을 켜거나 폴더를 연다고 각자 작업이 끝나고 순차적으로 실행되지 않는다. 멀티프로그래밍 되어 있는데, 이는 운영체제에서 설명하겠다. 어쨌든 전체적으로 동시에(완전한 동시는 아님) 수행된다고 생각하면 된다. 안드로이드 공식문서 Room라이브러리에 보면 이런 말이 있다. 쿼리가 UI를 차단하지 않도록 Room은 기본 스레드에서 데이터베이스 액세스를 허용하지 않습니다. 이 제한사항은 DAO 쿼리를 비동기식으로 만들어야 함을 의미합니다. Room 라이브러리에는 비동기 쿼리 실행을 제공하는 여러..