본문 바로가기

전체 글

(93)
WorkManager 앱 종료 상황에서 동작 WorkManager는 로그인 상태에서 동작하고 비회원일 땐 동작하지 않아야 하기에 로그인 성공한 시점에 한 번 등록하게 구현하였다. 다만 테스트를 위해 Application에서 WorkManager를 등록하여 테스트를 하던 도중 발생한 문제이다. 처음 나의 예상은 앱을 실행 > 특정 시간에 작업 수행이었고 앱을 킨 상태에서는 문제 없이 동작하였다.그러나 WorkManager를 쓰는 이유, 앱이 종료 된 상태에서도 돌아가야 한다. 따라서 앱을 실행하여 WorkManager에 등록 후 앱을 종료하고 트리거 시간까지 기다려보았다.당연히 동작하지 않아서 로그를 찍어보았는데 특정 시간이 되면 다시 WorkManager를 등록하여 기존의 작업이 취소되는 문제가 있었다. 분석여기서 유추할 수 있는 부분은 앱이 종료..
Service Locator Service Locator 방식은 수동으로 의존성을 주입해주는 방식이다.위와 같이 각 클래스를 ServiceLocator 클래스에 정의해둔 뒤, 싱글톤인 Application 클래스에 초기화 해주고 Application에서 가져다가 직접 주입해주는 방법으로 이루어진다. class Aclass Bclass Cclass ServiceLocator{ private val a = A() private val b = B() private val c = C() fun getA() = a fun getB() = b fun getC() = c}class MyApplication: Application() { override fun onCreate() { super.onCreate() s..
리눅스 파일시스템 가상 파일 시스템(VFS)가상 파일 시스템(VFS)은 다양한 종류의 파일 시스템을 마치 하나의 파일 시스템처럼 접근할 수 있도록 사용자에게 편의성을 제공하는 시스템이다. 대부분 운영체제는 자신의 특정 파일 시스템만을 지원한다.따라서 그 운영체제에서 지원하는 파일 시스템에서 생성된 파일만을 접근할 수 있다.그러나 리눅스에서는 가상 파일 시스템 개념을 도입하여 기본 파일 시스템(Ext2,3,4)는 물론 다른 운영체제의 파일 시스템(FAT32, NTFS, NFS 등)에서 생성된 파일도 접근할 수 있다. VFS는 새로운 파일 시스템이 마운트 될 때, 그 파일 시스템의 타입을 인식하여 그 파일 시스템에 해당하는 함수를 호출한다.마운트(mount): 저장 장치에 접근할 수 있는 경로를 디렉터리 구조에 편입시키는 작..