회사에서 짬나서 글을 오랫만에 쓸수 있게 되었다.
사실 별 내용은 아니지만 가끔 쓸일이 있을때마다 아른아른한 내부저장소 외부 저장소에 대해 사용에 꼭 필요한 내용만 글로 정리해보려한다.
뭐 리마인드 용이니까 자세한 내용은 구글링이 필요할것이다.
직면한 상황
- 캡쳐한 이미지를 액티비티간 전달해야하는 상황이 생김
- Intent 를 통한 데이터 전달은 1MB 용량제한이라는데 사실상 이것보다도 작음(간당간당하게 맞추면 CS로 혼나는 날 볼수 있음)
- 즉 Intent로 이미지 전달은 애매함 + 이미지를 메모리에 올려놓는것도 부담스러움(여러장이면 메모리를 얼마나 먹는겨)
- 결론: 저장했다가 빼와야겠네 어디다 저장하지?
내부 저장소 VS 외부저장소
내부 저장소 외부 저장소의 차이: 어플리케이션의 소유권 여부에 따라서 구분된다.
내부 저장소
- 내부 저장소 접근에 필요한 권한이 없으므로 간단한 작업에 용이하다.
- 파일을 외부 어플리케이션과 공유하지 않는 경우에 용이하다.
- 큰 메모리가 요구 되지 않는 상황에 용이하다.
- 저장한 내용이 애플리케이션을 지울때 같이 날아가도 상관없는 경우 용이하다.
내부 저장소내 Cache, File의 차이
→ Cache Directory
내부 저장소에 할당된 Cache 디렉토리에 저장한다.
이곳은 시스템 저장공간이 부족할 때 시스템에 의해 자동으로 삭제 될 수 있다.
즉 추가적인 관리가 필요없는 대신 임시 저장등의 용도로 적합하다.
→ File Directory
내부 저장소에 files 디렉토리에 저장된다.
사용자의 데이터를 반영구적(개발자가 직접 삭제 혹은 유저가 직접삭제) 으로 보존한다.
즉 오래동안 데이터를 보존해야하는 경우 사용이 적합하다.
외부 저장소
- 큰 메모리를 사용해야 할 떄 용이하다.
- 다른 어플리케이션과 데이터를 공유해야할 때 용이하다.
- 내 어플리케이션을 지워도 결과물이 남아 있어야할 때 용이하다.
OnMemory
앱을 구동할때 메모리에 데이터를 얹어서 사용하기 때문에 굉장히 빠르다.
→ 앱의 리소스를 많이 잡아먹으므로 배제.
결론: 상황에 맞춰서 사용하면 된다.
예시로 현 상황에서는 뭐가 적절한지 살펴보면 캡쳐 저장 및 전달은 임시 파일의 성향이 크기 때문에 내부 저장소 Cache directory를 사용하는것이 적합하다.
버전에 따라 읽기 쓰기 권한 같은게 좀 달라진 부분이있으니 (Q버전을 기점으로 변경) 사용할 때 권한문제만 체크해보자
-> 저장하는 방법론도 좀 바뀜
내부 저장소에 넣는 코드는 회사 유틸 코드가 이미 있을테니 그걸 쓰면 될것이다.
비밀일기장에 관련 코드 해석이나 적어놔야겠다.
'안드로이드' 카테고리의 다른 글
웹뷰 관련 토막상식 (0) | 2024.07.11 |
---|---|
일하며 배운 신기한 토막상식 정리 (1) | 2024.02.01 |
멧돼지 개발신조 우리의 결의!!! (0) | 2024.01.10 |
웹뷰 기초 가이드 (1) | 2024.01.09 |
컴포즈 스터디 2차 구성 가능한 함수 (1) | 2024.01.01 |