-
안드로이드 4대 컴포넌트Study/면접준비 2019. 8. 14. 18:29
안드로이드엔 기본 컴포넌트 4개가 있으며 다음과 같다. 1. Acitivity (액티비티) 화면을 관리하며 사용자의 이벤트를 처리한다. 생명주기 메소드를 재정의 하여 기능을 구현한다. 2. Service (서비스) 화면이 존재하지 않는다. 백그라운드에서 동작한다. 한번 시작된 서비스는 어플리케이션이 종료되도 계속 백그라운드에서 동작한다. 3. Content Provider (컨텐츠 제공자) 데이터를 관리하고 앱 간 데이터 공유를 제공한다. 4. Broadcast Receiver (방송 수신자) 단말기 안에서 이루어지는 일들을 알려준다. 브로드캐스팅은 여러 객체에게 정보를 전달하는 것을 의미하는데 이 정보를 방송 수신자를 통해 받을 수 있다. 배터리 부족 같은 정보를 알려준다.
-
안드로이드 웹뷰에서 로그인 세션 유지하기Dev/android 2019. 5. 9. 15:53
하이브리드 앱은 간단히 말해 웹을 네이티브 앱으로 포장한 앱이다.. 외부는 네이티브 단이고 핵심 기능은 웹에서 실행하기 때문에 ios나 안드로이드나 상관없이 웹만 수정하면 된다. 즉 유지보수가 용이한 장점이 있다. 오늘 해볼 것은 로그인은 네이티브에서 하고 쿠키 세션을 가지고 웹뷰로 넘어가서 로그인을 유지시키는 것이다. 그림으로 간단하게 그려봤는데 오히려 보기 어려울수도 있을것 같다.. 네이티브 로그인 화면에서 아이디, 비밀번호를 입력 후 서버에 확인을 받으면 쿠키를 생성한다. 그 쿠키로 다시 url을 로드할 때 서버에 보내서 로그인 상태를 유지시킨다. 그러면 웹뷰에는 마치 웹에서 로그인한 것 처럼 로그인 성공시 보여줄 페이지가 로드된다. activity_login.xml 1 2 3 4 5 6 7 8 9..
-
Firebase Cloud Messaging (FCM / 푸시 알림) 사용하기 2Dev/android 2019. 5. 9. 13:32
2 단계 앱에서 푸시를 받아보자 1단계 FCM SDK 설정 방법 : https://dailylonnie0125.tistory.com/9 관련 튜토리얼 URL https://firebase.google.com/docs/cloud-messaging/android/client?hl=ko Android에서 Firebase 클라우드 메시징 클라이언트 앱 설정 | Firebase Firebase 클라우드 메시징 Android 클라이언트 앱을 작성하려면 Gradle과 FirebaseMessaging API 및 Android 스튜디오 1.4 이상을 사용합니다. 이 페이지에서는 Android 프로젝트에 Firebase를 추가하는 단계를 완료했다고 가정하고 안내합니다. FCM 클라이언트에 Android 4.1 이상을 실행..
-
Firebase Cloud Messaging (FCM / 푸시 알림) 사용하기 1Dev/android 2019. 5. 9. 11:29
FCM은 구글에서 제공하는 메시지 전송 서비스다. 안드로이드를 개발하다보면 푸시 알림 기능이 필요하게 된다. 간단하게 테스트 앱을 만들어보자 1단계 안드로이드 프로젝트에 Firebase 세팅하기 Firebase 에 프로젝트를 추가 하기 전 안드로이드 프로젝트부터 만들어 봅시다 테스트용 프로젝트를 만들었으면 Firebase 에 구글 계정으로 로그인 하자 https://console.firebase.google.com 로그인 - Google 계정 하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인 accounts.google.com 새 프로젝트 추가를 누르고 내용을 채워넣자 동의 체크하고 프로젝트 만들기 생성중......... 생성 완료! 이 화면에서 우리는 안드로이드 프로젝트를 만들것이..
-
에라토스테네스의 체 ( 소수 판별)Study/알고리즘 2019. 2. 22. 17:11
음... 알고리즘 하다가 제일 슬플 때는 알고리즘이 틀렸을 때? 아니다. 수학적 사고가 부족해서 도저히 어떻게 풀어야 할지 감도 안 올 경우이다.. ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 에라토스테네스의 체 알고리즘은 굉장히 유명한 소수 판별법이다. 1. 소수란? 약수로 1과 자기 자신만 갖고 있는 수. ( 0과 1은 소수가 아니다)2 = { 1, 2}3 = { 1, 3}4 = { 1, 2, 4} 4는 소수가 아니다.5 = { 1, 5} 2. 에라토스테네스의 체 모든 자연수는 소수들의 곱으로 표현이 가능하다.그래서 소수가 아닌 수들은 어떤 소수의 배수이다. 위에서 처럼 4는 소수가 아니다. 소수인 2의 배수이기 때문이다. 이를 이용하여 체로 소수를 걸러보자. 1) boolean 자료형의 flag 배열을 만들..
-
스택 구현하기 (Stack)Study/알고리즘 2019. 2. 21. 18:07
스택... 이론은 아주 빠삭한 자료구조라고 생각했는데, 구현 하려니깐 내가 이론이 참 얕다는것을 깨달았다. 1. Stack이란? 쌓는다. 말그대로 박스가 쌓여 있는 모습같은 데이터 구조.먼저 들어간 데이터가 마지막에 꺼내지기 때문에 LIFO (Last In First Out) 구조라고 한다. 2. 구현 할 4가지 기능 pop() : 스택의 top 노드를 꺼낸다. 만약 스택이 비어있으면, EmptyStackException을 날린다.push() : 스택에 데이터를 집어 넣는다. 만약 스택의 사이즈보다 데이터를 더 집어 넣으면, StackOverFlowError() 를 날린다.peek() : 스택의 top노드의 데이터를 알려준다.isEmpty() : 스택이 비어있는지 확인한다. 3. 구현 1234567891..
-
퀵소트 (Quick Sort)Study/알고리즘 2019. 2. 19. 14:28
손코딩 단골 두번째 퀵소트를 공부해야한다.pivot과 비교해서 얠 기준으로 왼쪽은 작은 값, 오른쪽은 큰 값으로 정렬한다.평균 시간 복잡도는 O(n log n) 이다. 정렬 되지 않은 배열 3, 9, 4, 7, 5, 0, 1, 6, 8, 2 로 정렬을 해봅시다. 1. pivot을 정한다. 보통 배열의 가운데 값을 선택한다. pivot = 5; 2. 배열의 왼쪽과 오른쪽 끝의 인덱스를 start, end로 둔다. start = 0, end = arr.lenth -1; 3. start 인덱스의 배열 값이 pivot보다 작으면 다음 인덱스로 넘어간다. arr[start] = 3 , pivot = 5, start++; 4. start 인덱스의 배열값이 pivot 보다 크면 멈춘다. arr[start] = 9, ..
-
피보나치 수열Study/알고리즘 2019. 2. 17. 20:49
면접 중 손코딩 단골 피보나치 수열 피보나치 수열은 a1=1, a2=1, an+2=an+1+an (n=1, 2, 3, ⋯) 라는 규칙을 갖는다. 1 1 2 3 5 8 13 21 34 55 … 이 수열을 재귀, 메모이제이션, 반복문으로 나타내보자 피보나치 수열을 푸는 방법 1 - 재귀 public static void main(String[] args) {// TODO Auto-generated method stubint input = 8;for (int i = 1; i