반응형
[안드로이드] local.properties에 API Key값 숨기기
Android, iOS 2021. 2. 26. 05:15

예를 들어보자. Daum 이미지 검색 API를 안드로이드 내부에서 사용한다면... 카카오 개발 계정이 필요할 것이고 앱키를 얻기 위해 애플리케이션을 등록하고 등록된 애플리케이션으로부터 REST API 키를 얻고 "Daum 검색" 개발 가이드에서 이미지 검색 API 정보를 얻으면 된다. 여기서 3번의 REST API를 안드로이드 코드 내부에 들고 있어야 한다면 어딘가에 저장을 할 것이다. 이 저장하는 과정에서 섬세하게 다루지 않는다면 비밀번호처럼 드러나면 안되는 API Key값을 Github 등에서 누구나 접근가능하게 되버려 곤란한 상황을 겪게될 수 있다. (오우 소름) 그렇다면 숨겨야 할 값을 안보이게 하는 방법으로 무엇이 있을까? local.properties에 Key값 숨기기 local.propert..

안드로이드 공부하면서 읽었던 서적들 (2020년)
Study 2021. 2. 21. 23:47

남들이 비웃는게 무서워서 책으로도 안배우면 누가 저한테 알려줍니까? 그럼 사람들이 알려줄때까지 기다릴까요? 일년 뒤에도 야구 모르는게 그게 진짜 창피한거 아닙니까? - SBS 드라마, 스토브리그 3화, 백승수의 대사 (남궁민 배우분) 드라마의 대사가 개발서적을 사도록, 읽도록 만들었다. "개발은 책으로 배우는게 아니야."라는 말을 어디서 주워들어서 그냥 부딪치고 코드를 짜고 고민만 했던 과정을 겪었다. 하지만 책이든 사람이든 동영상이든 좋은 컨텐츠라면 스스로를 성장시키는데 촉매제 역할을 한다. 너무 늦게 알았지만 백승수의 대사처럼 이 이상으로 창피하기 전에 공부할 수 있다는 점에서 행운이라고 생각하기로 했다. 안드로이드를 이해하려면 안드로이드 서적만 보는게 능사는 아니었다. 그래서 코틀린, 리액티브 프로..

Kotest로 해보는 안드로이드 테스트 (하)
Android, iOS 2021. 2. 7. 23:35

본 글에서는 RxJava 혹은 RxKotlin의 기본 지식이 필요하다. 그리고 만약 이전 글이 궁금하다면 아래 링크를 접속해보자. Kotest로 해보는 안드로이드 테스트 (상) 테스트 코드를 만들어 본 적은 있지만 안드로이드 프로젝트 내에 테스트 코드를 적용해 본 적이 없었다. 그래서 TDD같은 단어는 그림의 떡. 남들이 말하는 유닛 테스트는 "우와 멋있는 말"이라고 devvkkid.tistory.com 앞에서 Kotest를 사용하기 위한 준비를 마쳤다. 이제 사용을 해 볼것이다. 이미 만들어진 프로젝트가 있다. (해당 링크는 필자의 Github repository이다.) 이 프로젝트에는 REST API 형태로 통신하는 모듈이 들어있다. 이 API를 테스트해 볼 것이다. 1. 테스트 클래스 생성 먼저 t..

Kotest로 해보는 안드로이드 테스트 (상)
Android, iOS 2021. 1. 22. 00:01

테스트 코드를 만들어 본 적은 있지만 안드로이드 프로젝트 내에 테스트 코드를 적용해 본 적이 없었다. 그래서 TDD같은 단어는 그림의 떡. 남들이 말하는 유닛 테스트는 "우와 멋있는 말"이라고 감탄할 뿐이었다. 그렇다고 언제까지 감탄만 할 것인가. 부러워만 하지 말고 이제 테스트 코드를 넣어보자. 하다못해 넣는 척이라도. (권장사항 : Junit으로 테스트하는 방법을, 간단하게라도 알고 오면 해당 내용이 더 쉬울 수 있다. Junit을 사용하는 방법만 알고 본 내용을 읽어도 괜찮다. 본 내용은 코틀린으로 진행하지만 많은 샘플을 찾아 볼 수 있는 Java로라도 Junit을 사용하는 방법을 알아보자.) 어디서부터 접근을 해야할까? 테스트를 할 포인트를 잡아야 할 텐데... 기획자나 디자이너의 요청으로 변경이..

안드로이드 맨땅에 Repository 박기
Android, iOS 2021. 1. 13. 19:01

Repository. 사전적 의미부터 시작해보자. repository 미국식 [rɪˈpɑːzətɔːri] 영국식 [rɪˈpɒzətri] 1. (어떤 것의 대량) 저장소 2. (지식·정보 등의) 보고(寶庫) - 출처 : 네이버 사전 결국 레포지토리(혹은 리포지토리)는 무엇을 저장하기 위해 존재한다. 안드로이드에 아키텍처를 적용하면서 자주 보게되는 Repository. 이 레포지토리를 이해하려면 Repository 패턴도 같이 이해하는 것이 좋다. Repository 패턴 타 블로그에서 Repository 패턴을 어떻게 정의했는지 가지고 와 보았다. 데이터 출처(로컬 DB인지 API응답인지 등)와 관계 없이 동일 인터페이스로 데이터에 접속할 수 있도록 만드는 것을 Repository 패턴이라고 한다. 레포지..

내가 Rx를 공부하기 전에 궁금했던 것들
Android, iOS 2020. 11. 29. 23:56

요즘 안드로이드에서 비동기 처리를 할 때, 코루틴과 Rx를 제일 많이 다룬다. 특히 Rx가 실무에서 더 많이 쓰이는 분위기라서 조금 공부를 해 보았다. 그러면서 기술적 혹은 비기술적인 궁금증이 몇개 생겼다. 1. Rx는 프론트엔드 개발에서만 사용될까? No. ReactiveX 홈페이지를 가보면 "ReactiveX is everywhere, and it's meant for everything."이라고 나타나 있으며 아래의 이미지를 볼 수 있다. 즉, 백엔드와 크로스 플랫폼까지 다양한 곳에서 이용되고 있다. 2. 리액티브 프로그래밍(Rx)는 리액트(React)와 어떤 관계일까? 비슷하면서도 다르다. (피드백을 받아 수정한다. 걍 다르다!!) 마치 Java와 Javascript가 다른 것처럼. 리액티브(Rx..

코틀린의 장점. 그만 좀 물어봐!!
Android, iOS 2020. 11. 15. 14:57

자고로 제목은 (적당히) 자극적으로 쓰는게 재밌다. 지나친 어그로가 아니라면 조회수도 오르고 쓰고 읽는 맛도 나니깐. 이번 제목은 단순한 어그로는 아니다. 개발자끼리 대화, 구직중 면접 등에서 코틀린의 장점을 수도 없이 물어보고 답하게 된다. 지난 1년간 수십번은 이 얘기를 한 것 같다. 그래서 누군가 물어볼 때 차라리 보고 읽도록 정리를 하려고 포스팅 소재를 "코틀린의 장점"으로 정했다. 자잘해보이는 장점도 다루고자 한다. 이번 글은 요즘 필자가 공부하는 서적인 "코틀린 프로그래밍 쿡북"을 많이 참고 하였다. 구글이 안드로이드 개발을 위한 공식언어로 코틀린을 지정했다. 기술적 접근이 아니지만 구글이 채택했다는 것은 장점으로서 매우 큰 부분이다. 안드로이드는 전세계 모바일 환경을 양분하는 시장 중 하나이..

내가 Dagger2를 공부한 방법
Android, iOS 2020. 9. 22. 16:11

TL;DR(이라고 쓰고 요약이라고 읽는다.) 이해가 안가더라도 직접 적용해보고 아래 링크로 걸어둔 자료같은 것을 많이 읽어봐야 한다. 무려 1달 넘게... DI, 그리고 Dagger를 공부하고 있다. 물론 아직도 이게 정확히 무엇이다라고는 말하지 못하겠다. 제대로 사용하라고 하면 솔직히 자신은 없으나 어떻게 꾸역꾸역 머리에 집어 넣는 중이다. 겨우 이해한 것도 있고 아닌 것도 있는데 이렇게 고생하는 부들이 있지 않을까해서 내가 Dagger를 공부하다가 알게된 좋은 것들을 공유해볼까 한다. 1. 책으로 공부했다. 안드로이드 개발자들에게 유명한 "찰스". 그 닉네임을 사용하시는 옥수환님께서 올해 발간한 책이다. Dagger뿐만 아니라 Jetpack 등을 설명하고 있다. DI 개념도 모르고 바로 Dagger를..

Gradle을 업데이트하고 나서 빌드가 안된다?? (DefaultKotlinSourceSetKt 이슈)
Android, iOS 2020. 6. 8. 14:58

최근 안드로이드 스튜디오를 업데이트한 뒤 아래와 같은 메시지와 함께 빌드가 되지 않는 상황을 맞이 했다. Could not initialize class org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetKt 업데이트 정보는 다음과 같다. // build.gradle classpath 'com.android.tools.build:gradle:4.0.0' // gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 이는 Gradle 버전에서 지원하는 코틀린 버전이 맞지 않아서 생기는 문제이다. 아래와 같이 코..

[MVVM 정복] 7. 완성한 코드로 MVVM 분석해보기
Android, iOS 2020. 5. 18. 17:52

완성한 코드는 다음과 같다. (내가 드디어 해냈다. 캄.동.) https://github.com/conquerex/mvvm-template conquerex/mvvm-template MVVM 학습과 앞으로 활용을 위한 템플릿. Contribute to conquerex/mvvm-template development by creating an account on GitHub. github.com 앞으로 개발을 한다면 다음과 같은 시나리오일 것이다. (일종의 복습) class MainActivity : BaseActivity() { // 생략 override val viewModel: MainViewModel by viewModel() // 생략 override fun initDataBinding() { v..

728x90
반응형