분류 전체보기 1203

Kotlin 전역변수

코틀린으로 전역변수 선언하는 법을 보겠습니다. Firebase로그인을 사용할려면 아래의 2줄을 Activity마다 선언해줘야 하는게 매우 귀찮습니다. private lateinit var auth: FirebaseAuth auth = FirebaseAuth.getInstance() 그래서 전역변수 class 하나 만들고 class Auth{ companion object { private val TAG = Auth::class.java.simpleName private lateinit var auth: FirebaseAuth fun getUid() : String{ auth = FirebaseAuth.getInstance() return auth.currentUser?.uid.toString() } } ..

AndroidX 란

이번에 AndroidX 때문에 삽질 한시간 한 기념으로 AndroidX가 뭔지 한번 알아봤습니다. 안드로이드 서포트 라이브러리인데, 앞으로는 계속 andoirdx로 통합된다 어쩌고 하는 내용이고 사용법은 저기 밑에 Migrate to AndroidX 하고 build.properties 에서 android.useAndroidX=true android.enableJetifier=true 추가 끝. -- 자세한 내용은 아래 링크에 https://medium.com/daangn/support-library-androidx-%EA%B7%B8%EB%A6%AC%EA%B3%A0-jetifier-%ED%95%AD%ED%95%B4%EA%B8%B0-2fb558f56be Support Library, AndroidX 그리고 ..

3 - Queue

그럼 큐는 뭘까요 얘는 앞뒤가 뚫려있는 원통같은 형태입니다. 처음 넣은 것이 가장 처음으로 나옵니다. 상담 전화를 할 때 앞의 대기자가 00명입니다. 라고 나올 때, 처음에 전화연결 한 사람부터 꺼내서 연결시켜주는 것을 생각하면 됩니다. 얘를 코드로 구현해보겠습니다. 여기서 아래와 같이 실행을 시켜주면 p = Queue() p.enqueue(1) p.enqueue(2) p.enqueue(3) print(p.dequeue()) print(p.dequeue()) print(p.isEmpty()) print(p.dequeue()) print(p.isEmpty()) print(p.dequeue()) print(p.isEmpty()) 아래와 같이 나옵니다. 1 2 False 3 True None True

2 - Stack

흔히들 듣는 스택에 상식 수준의 간단한 설명입니다. stack은 원통 같은 곳에 데이터를 하나씩 쌓는다고 생각하시면 됩니다. 원통에 1,2,3,4 순서로 들어갔으니, 꺼낼 때는 4,3,2,1 이런 형태로 나옵니다. 얘는 실제로 어디에 쓰여 있을까요? 저희가 지금 쓰고 있는 브라우저가 대표적인 예입니다. stack을 간단하게 파이썬으로 구현해보면 아래와 같습니다. 얘를 node를 이용해서 처리해봅니다. 이런 식으로 Stack을 구현해볼 수 있습니다.

1 - Linked List

가장 처음으로 설명하고 가는 애가 Linked List입니다. Stack이나 Queue 그리고 다른 것을을 Linked List를 이용해서 구현해볼텐데, Linked List라는 애가 뭘까요? 각 노드가 데이터를 가지고, 포인터로 다음 노드나 이전 노드를 가르키는 형태의 자료구조 형태입니다. 아래와 같이 생긴 형태인데요 근데 이걸 왜 쓰냐하면 자료구조를 배우는 이유와 같습니다. 메모리의 효율적인 사용을 위해서입니다. 앞으로 stack이나 queue에서도 계속 사용하고 있으니, 유의깊게 봐 주셨으면 좋겠습니다. 일단 linked list를 파이썬으로 구현해보겠습니다. 위와 같은 코드로 노드를 연결해서 아래와 같이 나오게 할 수 있습니다. Linked List를 이용해서 다양한 것들을 구현해보겠습니다.

루팅(rooting)이란?

Rooting이란 - 루팅이란, 안드로이드 기기의 관리자 권한을 획득하여, 마음대로 시스템을 조작할 수 있는 것을 말합니다. HW 성능 조작, 통신사 기본 앱 삭제, 시스템 권한을 이용하여 다양한 조작 등이 가능해지므로, 금융과 핀테크 관련 앱들은 rooting된 디바이스를 위협으로 간주합니다. 악의적인 목적을 가진 공격자들은 rooting 여부를 숨기기 위해서 다양한 시도를 하며, 아래와 같은 방식으로 루팅 탐지와, 루팅 탐지 우회를 합니다. 이번 프로젝트에서, 루팅 탐지와 루팅 탐지를 우회하는 방법 및 대책에 관하여 기술하겠습니다. Rooting 탐지란 - 루팅 탐지에는 다양한 방법들이 사용되며, 대표적으로 아래와 같은 방법들을 사용할 수 있습니다. - su 명령어 탐지 - 프로세스 리스트 탐지 - ..

10 - Firebase Join, Login, Database, Layout

일단 LoginActivity로 와서 singInWithEmailAndPassword 만들어주고 그리고 join_button을 누르면 JoinActivity로 가 줘서 JoinActivity layout을 만들어주고 JoinActivity에서 만들어주고, JoinInfoActivity를 만들어주고 JoinInfoActivity layout 처리해주고 여기에, Database를 사용해줍니다. 사용 세팅을 해주고 implementation 'com.google.firebase:firebase-firestore:20.2.0' 적용시켜주고 users 만들어서 nickname 입력한 값을 db로 던져줍니다. 여기까지 하면 끝 :)