본문 바로가기

분류 전체보기

(30)
[Firebase] Function을 다뤄보자 Firebase Database만으로 앱을 구현하기 힘든 상황이 왔다. 결국 Backend 단에서 처리해줘야 하는 일들이 생겨나게 되었고, App에서 모든것을 처리해주기 버거운 상황이다. Firebase Function을 쓰면 Node.js 기반으로 Function 을 만들어서 사용할 수가 있는데, 유료이다. 무료버전 Firebase사용자들은 할 수 없다. 어차피 회사에서 쓰는 계정이 이번에 유료로 바뀌었기 때문에 공부도 할 겸 해보도록 하자. 공식 홈페이지 글은 다음과 같다. https://firebase.google.com/docs/functions?authuser=0 Firebase용 Cloud Functions | Firebase Documentation 의견 보내기 Firebase용 Cloud ..
텐서플로우설치방법 텐서 플로우 설치 방법 1. Python 설치 2. PyCharm 이나 아나콘다 설치 - pycharm은 인텔리제이에서 만든 IDE로 안드로이드 스큐디오와 Look & 단축키가 동일하여 편리함 - 아나콘다는 파이썬 딥러닝을 위한 개발환경 모두를 갖춰놓은 플랫폼이다. 3. PyCharm이나, 아나콘다 모두 가상 환경을 제공함. 4. 가상환경을 이용하는 이유는? Python의 경우 버전에 따라 라이브러리가 달라서, 되고 안되는 내용들이 많다. 때문에 특정 작업이나 예제 코드를 할 때, 1회성으로 가상 환경에 라이브러리를 설치해서 구현하는 것이 좋다. 6. pip3 install tensorflow 명령어로 설치
[Kotlin] 개발노트 0. Retfotit2 http://devflow.github.io/retrofit-kr/ Retrofit - 한글 문서 A type-safe HTTP client for Android and Java devflow.github.io 1. Retrofit2 사용시 build() 중 에러 발생할 경우 아래와 같이 추가해주면된다. ( 2일동안 삽질함..) android { ... compileOptions { targetCompatibility = "8" sourceCompatibility = "8" } } okhttp3 를 사용하기 때문에 추가해줘야한다고 하는데, 저게 무슨상관인지는 좀더 연구해봐야할듯. 2. 에러 해결하고 data get 할 때 아래와같이 onFailure가 발생하는 경우 02-03 22..
[Kotlin] 람다 표현식 fun sum (x1 : Int, x2 : Int) : Int { return x1 + x2 } fun Calculator(a : Int, b : Int, p : (Int, Int) -> Int) { println("$a , $b -> ${p(a,b)}") } fun Square( a:Int, p : (Int) -> (Int)) { println("$a, ${p(a)}") } fun printInfo(p : () -> Unit) { print("Calcuator version : ") p() } fun main() { // 기본적인 호출 방식 Calculator(2,1, { c : Int, d : Int -> c + d}) // 타입 추론이 가능하다면 자료형을 생략 가능 Calculator(2,1, { ..
[Android] APK 디컴파일, 리패키징 1. APK 를 추출한다. 마켓의 ExtractApk 앱이 가장 유명하다. 다른걸로 추출해도 됨.. 2. PC로 추출된 APK를 복사한다. 3. JADX 툴을 이용하여 디컴파일된 코드를 확인한다. https://github.com/skylot/jadx GitHub - skylot/jadx: Dex to Java decompiler Dex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub. github.com 여러가지 방법이 있지만 JADX 가 가장 쉽게 코드를 확인하는 방법중 하나이다. 4. 혹시나 코드를 수정해서 다시 리패키징하여 테스트해보고 싶다면? APKTool을 이용해야한다. https..
WebRTC 알아 보기 1. WebRTC란 Browser에서 실시간으로 Video/Audio 커뮤니케이션 및 파일 공유가 가능하도록 하는 Open Source 기술이다. P2P 통신을 사용하고 있으며, WebRTC가 탑재된 Browser라면 별도의 Plug in 없이도 사용할 수 있다는 장점이 있다. 현재 Android 및 IOS 에서도 제공되기 때문에, 관련된 기술이 많이 사용되고 있다. 2. ICE (Interactive Connectivity Establishment) : Browser간에 P2P가 가능하도록 해주는 Framework, 방화벽 통과나 공인 IP가 없는 기기와의 통신 등을 위해 ICE candidate를 제공함 WebRTC 관련해서 가장 이해하기 쉽게 설명된 블로그. 이보다 더 자세히 설명할 수 없을 것 같..
[Android] Navigation drawer 사용하기 Android Studio 에서 New project 생성하여 Drawer 샘플로 생성을 하면, 기본 Drawer 사용법을 확인 할 수 있다. Drawer 하나 추가하기 위해서 해야할 작업이 뭐이리 많은 것인지 -_- Flutter가 그립다. 예제코드를 보면, Drawer 에 고정된 3개의 Fragment를 선언해놓고, navigation을 통해서 전환하는 방식을 사용했다. 하지만 내가 진행할 프로젝트에서는 Drawer에 있는 항목은 앱 진입 시 서버에서 가져온 카테고리들을 동적으로 보여주고, 선택시마다 해당 카테고리에 내용들을 변경해서 보여주는 방식이었다. 때문에 Drawer를 navigation과 연동할 필요는 없었기 때문에 Drawer를 추가하는 방법에 대해서만 작성하려고 한다. 1. activit..
[Android] Androidx Jetpack Compose 체험하기 안드로이드 Jetpack 라이브러리 중 Compose라는 것을 알게 되어 테스트를 해보려고 합니다. developer.android.com/jetpack/compose/tutorial?hl=ko Android 개발자 | Android Developers 이 사례에서는 텍스트 요소의 제목이 매우 짧았습니다. 그러나 텍스트 요소의 제목이 긴 경우도 있으며, 긴 제목으로 인해 앱의 모양이 이상하게 바뀌지 않아야 합니다. 첫 번째 텍스트 요소를 developer.android.com XML을 이용하여 UI를 구성하지 않고, Jetpack Compose 함수들을 이용하여 원하는 요소를 말하면 Compose 컴파일러가 알아서 UI를 만들어주는 라이브러리입니다. 살짝 훑어보니, 제가 작년부터 빠져있는 Flutter ..
[Flutter] Flutter 압축 패키지 사용 서버로부터 파일을 가져올 때 보안을 위해서 zip 파일을 가져와서 사용하기로 했다. 이에 따라 flutter 의 압축 패키지를 사용하기 위해 검색해보았다. pub.dev/packages/archive archive | Dart Package Provides encoders and decoders for various archive and compression formats such as zip, tar, bzip2, gzip, and zlib. pub.dev 글 작성 시점 좋아요 128개에 해당하는 archive 패키지를 사용하기로 했다. 필요한 파일은 json 인데, 이를 passward가 적용된 zip으로 압축했고 이를 get으로 가져와야한다. httpClient의 get으로 받아온 데이터를 파일로 ..
[Kotlin][Kotlin in action] 1. 코틀린이란? 서론 코틀린은 왜 만들어졌을까? 이런 질문에 대한 답으로 난 처음에, 안드로이드 진영에서 사용하는 JAVA가 오라클의 라이센스 문제로 인해 대체 언어로 만들어졌다라고 답을한적이 있다. 왜그랬을까? 지금생각해보니 참 바보같은 답변이다. 코틀린을 만든 곳은 구글이 아니기 때문이다. 코틀린은 제트브레인이라는 회사에서 만든언어인데, 왜 그리 답변했는지 아직도 부끄러울뿐이다. 코틀린 강의를 처음 듣게 된것은 작년 여름 회사에서 진행했던 코틀린 교육을 들었을때이다. 왠일로 강사들이 만들어주는 PPT 출력물이 아닌 시중에서 판매되는 실제 코틀린 책을 가지고 강의가 진행되었고, 덕분에 책 한권을 다 읽게 되었다. 당시 자바만 해왔던 나에게 코틀린은 신선한 충격을 주었다. (물론 대학교 2학년때 파이썬을 처음 접했을때만..