개발

개발/Android

Repository 패턴을 사용하는 이유

오늘은 많은 사람들이 애용하는 디자인패턴 중 하나인 Repository 패턴이다.1. Repository Pattern이란?ViewModel(Domain layer)과 Data 저장소 사이인 Data layer에 중간 계층(Repository)을 만들어 데이터의 출처에 구애받지 않고 동일한 인터페이스로 접근할 수 있게 만드는 패턴 여기서 동일한 인터페이스로 접근한다 라는 말의 뜻이 잘 이해가 되지 않을 수 있다. 간단한 예시를 들어보겠다. A라는 내부 DB에서 데이터를 가져오고, 추가적으로 B라는 외부 출처에서도 데이터를 가져와야하는 상황이다. 여기서 우리가 A와 B 둘 모두의 데이터에 접근 및 사용하기 위해서는 A라는 내부 DB에 대한 처리 + B라는 외부 DB 이 둘 모두에 대한 작업이 필요할 것이다..

개발/트러블슈팅

[안드로이드] INSTALL_FAILED_DOWNGRADE_VERSION 해결 방법

프로젝트를 하다보면 처음보는 오류에 길게는 몇시간 동안 매달리는 경우가 있다. 그럴때마다 너무 답답해서 기억하려고 포스팅을 남긴다 ㅎㅎ.. 1. INSTALL_FAILED_DOWNGRADE_VERSION -> 해당 디바이스에 최신 버전의 어플리케이션이 존재하므로, 더 진행하기를 원한다면 기존 어플리케이션을 제거해야합니다. 저 말 그대로, 기본 설정에서 안드로이드 스튜디오를 돌리고 있다면, 해당 오류를 심심치 않게 만나볼 수 있다. 난 원래 gradle의 version_code를 매 컴파일때마다 변경하는 방법으로 버텼는데, 너무 귀찮고 매번 sync하는 시간도 길어 번거로웠다. 2. 해결 방법 (1) Android studio에서 상단 메뉴바의 "Edit Configurations" 클릭 (2) Insta..

개발/Kotlin

연산자 개수에 따른 차이(&, |와 &&,||의 차이)

1. &&, || A && B -> A가 거짓인 경우에 B는 확인하지 않음 ( 둘 다 True인 경우에 성립하므로 ) A | | B -> A가 참인 경우에 B는 확인하지 않음 ( 둘 중 하나만 True여도 성립하므로) 2. &, | A & B -> A가 거짓이더라도 B를 확인함 A | B -> A가 참이더라도 B를 확인함 3. 결론 &, | 는 논리 연산자 + 비트 연산자의 역할을 수행한다. ( 비트 마스킹에도 사용된다 ) &&, || 는 단순 논리 연산자의 역할만을 수행한다. ( 흔히들 사용하는 조건문에서 ) 우리는 일반적으로 &&, || 와 같은 논리 연산자의 역할로 사용하기에 쉽게 놓칠 수 있는 부분이다. 사소한 차이라도 알고 있다면 더 효율적인 코딩이 가능하므로 꼭 기억해두자.

개발

레거시에 대하여

얼마전에 한 테크블로그에서 Legacy에 대해 포스팅한 글을 읽었다. 다른 분야 못지 않게 Legacy에 대해 민감할 수 밖에 없는 안드로이드 개발자로서, 오늘은 Legacy에 대하여 이야기해보고자 한다. Legacy는 종종 게임, 드라마/영화, 영어 공부 책에도 심심치 않게 등장하는 단어이기 떄문에 그리 생소하게 느껴지는 단어는 아닐 것이다. # 사전적 의미 Legacy 1. (죽은 사람이 남긴) 유산 (=inheritance) 2. (과거의) 유산 출처: 네이버 영어 사전 # 개발자에게 Legacy란? Legacy system - 낡은 기술이나 방법론, 컴퓨터 시스템, 소프트웨어 등을 말한다. - 더 이상 쓰이지 않더라도 현대의 기술에 영향을 주는 경우도 포함한다. # 안드로이드 개발자에게 Legac..

개발/Android

[안드로이드] START_STICKY & START_NOT_STICKY

🎈 안드로이드 서비스 오늘 알아볼 것은 안드로이드 서비스에서 주로 사용되는 세가지 시작 방법에 대한 정보입니다. START_STICKY, START_NOT_STICKY, START_REDELIVER_INTENT가 있으며, 각각에 대해 자세히 알아보겠습니다. ✔️ START_STICKY 서비스가 강제로 종료되었을 때 시스템이 자동으로 다시 시작하도록 하는 방식입니다. 서비스가 다른 추가적인 작업 없이도 계속 실행되어야 하는 경우에 주로 사용됩니다. 시스템에 의해 재시작되면 onStartCommand()가 호출되지만 Intent는 Null이 전달됩니다. ✔️ START_NOT_STICKY 서비스가 강제로 종료되었을 때 시스템이 자동으로 다시 시작하지 않도록 하는 방식입니다. 이 방식은 서비스가 특정 작업을 ..

개발/Kotlin

Serializable Parcelable 차이

안드로이드에는 Activity, Service, Broadcast Receiver, Contents Provider라는 4대 컴포넌트라는 것이 존재한다. 서로 알아서 소통하면 얼마나 좋을까? 하지만 그렇지 않기 때문에 개발자가 오작교를 놔줘야한다.. 🤢 여기서 오작교를 안드로이드에서 Intent라고 하는데, 오늘은 이 Intent의 효율적인 사용을 위한 얘기를 해보려고 한다. Intent intent = new Intent(MainActivity.this, SubActivity.class); startActivity(intent); 매우 기초적인 명시적 Intent의 사용 예시이다. 전달할 데이터가 없거나 간단하기 때문에 별도의 작업이 필요하지 않다. 하지만 한 Activity에서 다른 Activity에..

최선의 최선
'개발' 카테고리의 글 목록 (4 Page)