최근 진행하고 있는 프로젝트에서 구글 로그인/회원가입 방식을 사용하고 있고 간단하게 개발자 등록을 하고 키를 발급받아 간단하게 인증을 진행한 내용의 포스팅을 적었었다. 그때 난 우여곡절 끝에 네이티브키를 사용해 구글 로그인에 성공해 간단한 회원정보를 받아왔었다. 그런데 현재 우리 앱 상황은 백엔드 동료가 따로 aws 웹서버를 구축해 내 앱과 서로 통신하며 개발하고 있고, JWT 토큰 방식으로 인증 및 세션 유지 등을 하고 있기 때문에 조금 다른(?) 방식으로 Google Oauth를 사용해야 할 것 같아서 포스팅을 적는다. 무수한 검색과 질문, 삽질을 통해 내가 이해한 우리의 구글 오우ㄸth 프로세스는 아래와 같다. 1. 앱에서 웹클라이언트 키를 사용함 2. 앱에서 사용자가 구글 계정을 선택하도록 하고..
프로젝트 하고 있는 앱에서 현재 단말기의 위치를 확인해야 하기 때문에 급하게 GPS 먼저 공부해버리기 GPS(Global Positioning System) 단말기와 네트워크망/위성 등을 모두 연결해 현재 위치를 측정할 수 있는 시스템 안드로이드 단말기 내부에서 가용한(사용이 가능한) 위치측정 수단을 모두 동원해 위치를 측정 -> 쓸 수 있는 모든 도구는 다 사용해 진심으로 위치측정을 하기 때문에 꽤 정확하다는 의미ㅎㅎ 애플리케이션에 측정된 위치값을 가져다가 사용이 가능 gps 센서는 이미 앱에서 돌아가고 있는 필요시 앱에서 그 측정값을 가져다 사용 (앱은 gps 사용 허용, 권한설정을 함) Provider 앱이 직접 위치를 측정하는게 아니라 시스템 내부에 있는 장치/센서들이 측정한 정보를 받아다가 쓰는..
졸작으로 만들고 있는 앱 서비스에 회원가입/로그인을 구현하기 위해서 Google OAuth2.0 을 사용해보기로 했다. 직접 회원가입/로그인 기능을 구현할 수도 있지만 직접 세션 관리나 DB 저장시 해시암호화 등의 보안 문제까지 생각하면 구글, 네이버, 카카오 등에서 제공하는 로그인 api를 사용하는 것이 편리할 것 같았다. 1단계 먼저 구글 클라우드에 들어가서 클라이언트 ID를 생성해준다. 방법은 아래 블로그를 참고하면 금방 할 수 있다. 난 안드로이드에서 디버그용으로만 테스트할 것이기 때문에 일단 안드로이드 유형 으로만 발급받아주었다. 💡 앱을 플레이스토어에 올려 테스트 하는 경우 릴리즈 따로 또 발급받아야 함 -> SHA-1 서명 인증서도 다름 (추후에 다룰 예정) 💡 따로 구축한 서버와 통신하여 ..
assets 하위 폴더들을 만들어 계층적으로 데이터 파일들을 관리하고 싶을 때 사용 (raw 폴더는 하위 폴더X) res 폴더 내부가 아니므로 리소스(R 클래스)로 관리 X assets 폴더에는 다양한 종류의 파일들을 담고 사용 가능 binding.button.setOnClickListener { val inputStream = assets.open("text/data1.txt") val isr = InputStreamReader(inputStream,"UTF-8") //스트림에서 문자열을 읽어오는 reader val br = BufferedReader(isr) // 스트림은 그냥 데이터의 흐름이고 버퍼는 그걸 일시적으로 저장하는 곳인가?... var str:String? = null val sb = S..