728x90
전체 글

전체 글

    [Android] API key값 local.properties에 안전하게 보관하기

    안드로이드 프로젝트를 하며 다른 서비스의 API를 이용하는 경우가 종종 생깁니다. 위의 사진은 네이버 지도 API의 사용 가이드입니다. 이처럼 API를 호출할 때 인증을 위해 API key값을 HTTP 헤더에 포함해야 하는 경우가 많습니다. HTTP 헤더에 API key값을 담아서 요청하기 위해선 해당 key를 어딘가에서 보관하고 있어야 합니다. API key는 인증에 필요한 비밀번호나 마찬가지이므로 보안에 유의하셔야 합니다. 만약 코드상에 상수값으로 하드 코딩이 되어 있다면, Github 등에 노출될 위험이 있기 때문에 .gitignore 파일을 통해 정보가 노출되지 않도록 보관해야 합니다. 이번 글에서는 local.properties 파일을 사용해 API key값을 안전하게 보관하는 방법에 대해 알아..

    [Git] Github에서 토큰 인증 로그인

    개인 프로젝트를 진행하던 중 아래와 같은 에러 메시지가 발생했습니다. Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. ... The requested URL returned error: 403 이유는 2021년 8월 13일 이후부터는 기존의 비밀번호 대신 토큰을 사용해서 접근하도록 변경되었기 때문입니다. 따라서 github에서 Personal access token을 발급 받아 설정해주어야 합니다. 1. Github 로그인 후 Setting 탭 클릭 2. 좌측 하단의 Developer settings 클릭 3. 좌측의 Personal access toke..

    [Android] BottomNavigationView에서 Fragment 전환

    이번 포스팅에서는 BottomNavigationView를 통해 Fragment를 전환할 때 생길 수 있는 문제점과 해결 방안에 대해 알아보겠습니다. menu_bottom_navigation.xml 우선 간단하게 menu.xml을 통해 BottomNavigationView의 item을 지정해줍니다. activity_sample.xml 다음은 Fragment를 담아줄 FrameLayout과 BottomNavigationView를 배치해줍니다. SampleActivity.kt class SampleOneActivity : AppCompatActivity() { private val binding by lazy { ActivitySampleOneBinding.inflate(layoutInflater) } ove..

    [Android] Kotlin Coroutine 기본 개념 익히기

    Coroutine이란? 안드로이드에서 비동기 프로그래밍을 하기 위해선 AsyncTask나 Rx 등 여러 솔루션들이 있습니다. 코루틴 역시 비동기 프로그래밍을 하기 위해 나온 개념입니다. 코루틴을 이용하면 메모리를 효율적으로 사용하면서 손쉽게 비동기 처리를 할 수 있습니다. 코루틴은 코틀린 언어의 하위 개념이 아닌, 오래전부터 C#, Python, Go 등의 다양한 언어에서 지원하고 있던 개념입니다. 코루틴은 Co + Routines의 약자로써 Co는 Cooperation, Routines은 functions을 의미합니다. 즉, 서로 협력하는 함수들이라는 의미로, 여러 함수들이 번갈아가면서 실행되어 비동기적인 프로그래밍이 가능합니다. 코루틴은 흔히 경량 스레드라고 불립니다. 코루틴은 스레드 위에서 실행되는..

    [Android] Paging 3.0 Library 알아보기 - 2

    이번 포스팅에는 이전 글에서 언급했었던 Paging2에 없던 Paging3.0만의 기능을 설명해보려고 합니다. Paging3.0의 개념과 기본적인 사용 방법은 이전 글을 참고해주세요. [Android] Paging 3.0 Library 알아보기 Paging이란? 페이징이란 데이터를 가져올 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 덩어리로 나눠서 가져오는 것을 뜻합니다. 예를 들어, 구글에서 어떤 키워드로 검색하게 되면 leveloper.tistory.com 1. 데이터 스트림 변환 Paging을 사용할 때 데이터를 가공해야 하는 경우가 많이 생깁니다. 예를 들어, 데이터를 화면에 표시하기 전에 먼저 필터링을 하거나 데이터를 다른 형태로 변환해야 할 수도 있습니다. Paging3.0은 기본적..

    [Android] buildSrc를 통한 Dependency 관리

    클린 아키텍처를 공부하며 Github에서 여러 가지 오픈소스를 분석하던 중, Fernando Cejas님의 Android-CleanArchitecture-Kotlin 프로젝트를 보게 되었습니다. 그중 dependency를 관리하는 방법이 기존에 알고 있던 방법과 달라서 buildSrc에 대해 공부하게 되었습니다. 멀티 모듈로 구성된 프로젝트에서 buildSrc를 통해 dependency를 관리하면 좋을 것 같습니다. Gradle 공식 문서에 아래와 같은 설명이 나와 있습니다. Use buildSrc to abstract imperative logic …. The directory buildSrc is treated as an included build. Upon discovery of the direct..

    [Android] Clean Architecture in Android

    Clean Architecture란? 고객들에게 제공하는 애플리케이션 같은 경우에는 수많은 기능들이 있기에 복잡도가 굉장히 높습니다. 복잡도가 높은 애플리케이션을 개발할 때 어떻게 하면 유지 보수하기 쉽고 고품질의 코드를 작성할 수 있을까요? 애플리케이션은 새로운 기능이 추가된다거나 내부 로직이 변경되어야 하는 일이 생겼을 때 유연하게 대처할 수 있도록 구조화해야 합니다. 프로젝트를 진행하며 테스트가 용이하고 유지 보수하기 쉽게 구조를 구성하고 싶어서 클린 아키텍처에 대해 공부하게 되었습니다. 클린 아키텍처의 개념은 2012년에 Robert C. Martin (Uncle Bob)님이 블로그에 기재하며 세상에 나오게 되었습니다. 클린 아키텍처의 목표는 계층을 분리하여 관심사를 분리하는 것입니다. 관심사를 ..

    [Android] 오픈소스 라이선스 목록 보여주기 - OssLicensesMenuActivity

    위의 사진은 카카오톡의 오픈소스 라이선스 페이지입니다. 안드로이드 프로젝트를 하며 라이선스에 따라 사용한 오픈소스 라이브러리를 명시해줘야 하는 경우가 있습니다. 보통 앱을 만들게 되면 여러 가지 오픈소스를 사용하게 되는데요, 이 많은걸 일일이 다 추가해주려면 굉장히 번거로운 일이 아닐 수 없습니다. 이러한 번거로움을 해결해주기 위해 안드로이드 프로젝트에서 사용한 라이브러리를 자동으로 관리해주는 라이브러리가 있습니다. Google Play services에서 제공하는 oss licenses plugin을 사용하면 간단하게 사용할 수 있습니다. 사용법 사용법은 굉장히 간단합니다. gradle plugin과 library를 추가해준 뒤, 액티비티만 실행시켜주면 자동으로 생성됩니다. build.gradle (p..

728x90