참고 - 머신러닝,텐서플로우 일단 한번 해봤습니다. - 딥러닝 강화학습으로 나보다 잘하는 쿠키런 AI 머신러닝의 개념 일반적인 프로그램은 개발자가 프로그램의 동작 방식을 직접 설계하는 방식이다. 하지만 자율주행 자동차라던지 프로그램에서 발생하는 변수들의 수가 셀 수 없이 많을 때는 개발자가 일일이 조건문으로 설계를 한다는 것은 거의 불가능에 가깝다. 이를 위해 프로그램이 스스로 학습하여 문제를 해결하는 방법이 머신러닝이다. 머신러닝의 학습 방법 1) 지도 학습 - 학습 데이터를 이용 학습데이터란 입력과 정답으로 된 데이터 셋을 가지고 학습하는 방법이다. 수많은 데이터 셋을 학습을 하고 나서 입력이 주어 질 때, 그 입력이 꿀벌일 확률 5% , 고양이일 확률 80%, 강아지일 확률 10% 각각 나오며 가장..
최근 "내일 오후 1시에 영화보자"라는 Text를 가지고 Calendar의 일정을 등록하는 프로젝트를 진행하고 있다. 해당 기능을 구현하기 위해서는 Text에서 시간, 장소 단어를 추출하는 머신러닝이 필요하다. 이러한 기능을 제공해주는 API가 있을까? Microsoft Azure (텍스트 분석 API) 테스트 주소 언어 감지,핵심어구 추출, 감정분석 글에서 가장 핵심인 단어 하나정도 추출하고 글의 언어와 긍정적인 글인지를 분석해준다. 하지만 주어진 API로는 구현하기 힘들것 같다... 가격 일단 인스턴스의 Web/Container가 무엇인지 정확히 모르겠다. ( JSP 실행되는..?) 일단 Azure 계정을 생성할 때 7일 무료버전, 신용카드 등록후 크레딧을 제공해주는 버전 등 무료로 사용해볼 수는 있..
Google Cloud Calendar API 설정 Step 1. 구글 콘솔 사이트 들어가기 Step 2. 프로젝트 만들기 Google Cloud Platfrom 에서 프로젝트를 생성해야 해당 Project ID를 통해 Calendar API 등 여러 API를 사용할 수 있습니다. Step 3. 프로젝트 이름을 입력하고 만들기를 눌러주세요. Step 4.라이브러리에서 Google Calendar API 설정 Step 5. 인증정보 만들기 사용자 인증 정보 만들기 위해 OAuth에 대해 사용자에게 동의를 구할 때 나오는 화면을 설정해 주어야 합니다. Google Cloud Platform G Suite 계정이 아니면 내부 User Type 선택이 불가능 하므로 외부로 설정합시다. 동의화면은 외부만 선택이 ..
이 포스팅은 Music Player 재생의 간단한 로직을 FLO 앱 챌린지에 맞춰 개발한 내용에 대해 제 생각을 정리한 글입니다. 부족한 부분이 있으면 댓글로 알려주시면 감사하겠습니다. 멜론 어플을 사용한 유저라면 다른 어플을 사용 중에도 음악이 재생되는 것을 알 수 있을 것이다. 이는 음악이 Service에서 무한히 재생이 되고 있다는 뜻. 보통의 Service는 어떠한 값도 반환하지 않고 서비스를 종료하는 요청 외에 외부 서비스 내 함수에 접근할 수 없다. 그런데 음악이 재생되고 있는 도중 멜론 앱을 다시 키면 현재 재생되고 있는 곡의 정보를 바로 보여준다. 왜? 답은 Bound Services 이다. Service와 Activity의 관계과 서버와 클라이언트 관계가 된 것처럼 Activity는 Se..
본 포스팅은 꾸준히 수정됩니다~ findViewById(R.id.sample_text).apply { text = viewModel.userName } //또는 sample_text.text = viewModel.userName 전체 프로젝트의 코드 중 UI의 데이터를 변경해주는 코드의 양이 적지 않다. DataBinding을 사용하면 불필요한 UI 변경 코드를 줄이면서 데이터를 변경할수 있고 메모리 누수 방지와 NPE 방지 등 좋은 점들이 많다. 예를 들어, 부모 레이아웃안에서 TextView를 찾아 viewModel의 userName 값을 대입해주는 코드도 DataBinding을 사용하면 xml에서 똑같은 기능을 구현할 수있다. 변경 후 .. activity_main.xml DataBinding 추가..
Jsoup Jsoup이란 Html을 가져오고 파싱을 도와주는 자바 라이브러리이다. 자바와 완벽히 호환이 되는 Kotlin으로 Jsoup을 사용해보자 implementation 'org.jsoup:jsoup:1.11.3' 파싱할 정보 이번에 파싱할 정보는 등수 별 당첨 인원이다. 당첨 번호의 목록은 api로 제공되지만 순위 별 당첨번호는 제공하지 않기 때문이다. 파싱할 Html 형식을 보면 가져와야할 데이터들은 - - 계층구조에 존재한다. 위와 같은 예로 A>B>C 계층 구조의 태그를 파싱할 때는 공백으로 구분한다. regex table tbody tr code val url = "https://dhlottery.co.kr/gameResult.do?method=byWin" val doc = Jsoup.co..
Firbase ML Kit - Translate = 기기별 번역 API [공식 문서] https://firebase.google.com/docs/ml-kit/translation 기기별 번역 API란 인터넷 필요없이 기기에서 실행이 되는 API인것 같다. 대신 번역 모듈을 (언어당 30MB) 다운받아야 하는 제한사항이 있고 여러나라 언어를 번역을 하는 경우 다운 받아야 하는 모듈의 용량을 클라이언트 기기가 다 짊어지게 되어있다. 그래서 인지 Firbase에서도 불필요한 모듈은 삭제하는 것이 좋다고 명시되어 있다. 총 59개의 언어를 지원하고 기기별 번역 API라서 번역하고자 하는 Text를 서버에 보내면서 번역 Text를 받아오는 다른 플랫폼의 번역 API와는 다르게 빠른 결과를 받아오는 현상을 기대할 ..
SharedPreferences Sqlite 처럼 대규모 혹은 여러개의 데이터를 저장할때가 아닌, 하나의 정보 들을 작게 저장하고 싶을 때 사용하는 클래스입니다. import android.content.Context import android.content.SharedPreferences class SharedPreferences(context: Context) { val PREFS_FILENAME = "appName.prefs" val SOUND = "Sound" val VIBRATION = "Vibration" val prefs: SharedPreferences = context.getSharedPreferences(PREFS_FILENAME, 0) var sound: Boolean get () =..
1. 'Okay. Google' 기능으로 앱 실행시키기 이 기능은 별다른 추가 없이 실행시키고자 하는 앱의 이름을 넣어서 부르면 된다. ex) 만약 앱 이름이 '점냥'이라면 "Okay Google 점냥 시작" 2. SpeechRecognizer 의 단순 인식 이 기능은 기기 내부 음성 인식 API를 이용하여 음성을 읽어 오는 클래스이다. 때문에 특정 기기에 음성 인식 API가 없다면 사용할 수 없다. 퍼미션 추가 * 안드로이드 마시멜로 이상부터 권한 허가를 요청하는 부분이 필요하다. RecognitionListener 생성 음성인식 API 호출시 발생하는 콜백 메소드 정의 RecognitionListener listener = new RecognitionListener() { @Override publi..
들어가기 전 Kotlin 1.4.20 Release에서 변경점이 생겼습니다. kotlin extensions plugin이 deprecated 된 점입니다. kotlin extensions plugin에는 synthetic views라는 뷰에 대해 접근하는 코드를 생략해주던 기능이 포함 되어 있었습니다. //Activity or Fragment name.text = "test" 그런데 새로운 버전에서는 dprecated 되었으니 계속 해당 기능을 이용할 수는 없습니다. 다른 대안이 있을까요? ViewBinding란? Android AAC 중 하나로 view의 접근하는 코드를 조금 더 쉽게 작성할 수 있게 도와주는 기능입니다. ex) findViewByID 대신 사용 할 수 있다. Gradle 설정 etc..