전체 글 536

[안드로이드] WebView에서 세션 쿠키 활성화 하기 (소셜 로그인)

다른 곳에서 개발한 웹을 웹앱으로 만들다가 소셜 로그인이 안되길래 이곳 저곳 찾아보았다. 실제 브라우저에서 로그인 과정 (1) 네이버로 로그인하기 클릭 (2) 현재 창에서 팝업이 떠서 네이버 로그인 (3) 팝업이 닫히고 로그인 완료 앱 내에서 로그인 과정 (1) 네이버로 로그인하기 클릭 (2) 네이버 로그인 페이지가 열림 (3) 창이 닫힘, 로그인 페이지가 다시 보임 webView.setSupportMultipleWindows(true)가 되어있지만 팝업이 뜬다는 신호는 오지 않았다. 직접 컴퓨터 브라우저로 실행해보니 동일 증상은 '다른 탭에서 열렸을때' 발생했다. 해결방법은 다음과 같다. webViewClient = object: WebViewClient() { override fun shouldOve..

[Python] 코사인 유사도를 이용한 영화 추천 알고리즘 만들기

오늘은 영화 시놉시스를 바탕으로 영화 추천 알고리즘을 만들어 보려고 한다. 내가 "베테랑"이라는 영화를 좋아했다고 할때, 이와 가장 유사한 영화순으로 추천을 해 줄것이다. 필요한 절차는 다음과 같다. (1) 영화 시놉시스에서 주요 단어를 추출하기 (2) 불용어(의미없는 단어) 제거하기 (3) TF-IDF를 구하여 문서(영화)별로 어떤 단어가 중요하게 사용되었는지 구하기 (4) 각 문서마다 "베테랑"과의 코사인 유사도를 계산하여 유사도가 높은 순으로 결과 정렬하기 첨부파일 전체 코드 + data.json 다운받기 영화 시놉시스에서 주요 단어를 추출하기 시놉시스는 네이버에서 대충 긁어왔다. 첨부파일 data.json 을 참고하면된다. 데이터의 제일 마지막에 비교하고자하는 영화 "베테랑"을 넣고 Konlpy의..

[안드로이드] Context 사용 범위 정리

오늘도 LeakCanary에서 메모리를 모니터링하다가.. 해결방법을 찾던 중 좋은 글을 봤다. 적절한 Context의 사용은 GC가 제대로 동작하게 만들어 Memory leak을 예방할 수 있다. 표 출처: sodocumentation.net/android/topic/2687/memory-leaks Application Context Activity Ctx. Service Ctx. ContentProvider Ctx. BroadcastReceiver Ctx. Dialog 보여주기 X O X X X Activity 시작 X O X X X Layout Inflation X O X X X Service 시작 O O O O O Broadcast 전송 O O O O O BroadcastReceiver 등록 O O..

[안드로이드] Nested RecyclerView 구현시 스크롤 문제 해결하기

Horizontal, Vertical 방향이 혼재된 Nested RecyclerView를 구현하다 보면 세로 스크롤을 하는 도중 가로 스크롤로 넘어가는데 자연스럽지 않거나 그 반대 상황이 생긴다. 그럴때 기본 RecyclerView 대신 아래의 커스텀 RecyclerView를 사용하면 조금 더 자연스러워 진다. 간단하게 주석으로 무슨일을 하는지 적어두었다. 원 코드 출처는 여기이다. public class OrientationAwareRecyclerView extends RecyclerView { private float lastX = 0.0f; private float lastY = 0.0f; private boolean scrolling = false; public OrientationAwareRec..

[안드로이드] 에뮬레이터 감지 하는 법 (Detecting Emulator Device)

framgia님의 Android Emulator Detector [https://github.com/framgia/android-emulator-detector] 를 약간 수정해서 안드로이드 에뮬레이터를 판별하는 클래스를 만들어서 공유하려한다. 지원 Emulator 테스트가 끝난 Emulator들은 다음과 같다! LD Player NOX Bluestacks Genymotion MEmu KoPlayer GameLoop NetEase MuMu Player Andy Telephony 정보를 받지않고도 거를 수 있는데, 이건 Architecture가 x86이나 i686 기반으로 되어있으면 걸러버리기 때문이다. 하지만 이때문에 인텔 칩셋을 사용하는 휴대폰은 실제 디바이스임에도 불구하고 걸려버리는 수가있긴하다. (..

Python 배열 슬라이싱 공략 (Numpy)

python의 놀라운 점 중 하나는 배열을 간단한 문법으로 완전히 마음대로 가지고 놀 수 있다는 거다. 다른 언어들이 내가 과일을 깎는 정도의 효율성이라면...(매우 서툴러서 거의 네모가됨) python의 배열 슬라이스 능력은 마치 라떼 유행했던 Fruit Ninja라는 게임을 연상케한다! 그리고 numpy 같은 라이브러리를 활용하면 더욱 다양한 작업을 할 수 있다. NLP를 아주 겉만 살짝 맛보면서 matrix[:, 2] 막 이렇게 생긴걸 봤는데 배열 자르기를 내가 정말 모르는구나...생각이들어서 이렇게 정리를 해보려한다. 배열 선언하기 1차원 배열을 선언하는 방법은 다음과 같다. # python array = [0] * 8 # [0, 0, 0, 0, 0, 0, 0, 0] array = [2 * i f..

NLP 노트

단어의 표현 방법 Word Representation 국소 표현 Local Representation: 단어를 기호로 취급, 정수 등 특정값을 매핑하여 단어를 표현, Discrete Representation - Bag of Words(BoW), N-gram, One-hot Vector 분산 표현 Distributed Representation: 단어의 의미와 뉘앙스 표현가능. 주변 단어를 참고하여 단어를 표현, Continuous Representation - Word2Vec, LSA, GloVe 카운트 기반의 단어 표현 # Bag of Words 빈도 수 기반의 표현방법. 단어의 등장 순서를 전혀 고려하지 않음 ("Bag"). scikit learn의 CountVectorizer를 이용하면 쉽게 만들..

나/이슈 2021.03.03

Udacity 무료 강의 모음

www.guru99.com/udacity-free-courses.html 160 Best Udacity Free Courses in 2021 Details Last Updated: 12 February 2021 Udacity is a for-profit institution that promotes online teaching of various courses. It is an online education provider that offers online courses, known as Massive Open Online Courses. The courses offered by Udacity www.guru99.com Udacity 무료 강의 모음이다. 깊이가 있지 않지만 시각화를 잘 해줘서 볼만했던걸..

나/이슈 2021.02.26

[Python] 마방진 그리기 / 검산하기 with numpy

극한탈출 999 오늘 트위치에서 라는 방탈출게임 게임방송을 보다 저런 퍼즐을 발견했다. 1~9까지 핀이 주어지고 가로, 세로, 대각선의 합이 15가되도록 만드는건데 찾아보니 이것을 마방진이라고 부른다! 마방진...영어이름도 Magic Square...11차마법진을 그릴수있다면 정말 멋질거야.... 마방진 그리는 방법 마방진을 그리는 방법은 아래 사진과 같다. 인터넷에 원리라고 떠돌아다니는 건데....원리는 잘 모르겠다 ㅋㅋㅋ 암튼 파이썬으로 마방진 생성기를 만들어 보자. 11차 마방진이든 111차 마방진이든 그릴수 있도록 말이다. 파이썬으로 마방진 그리기 numpy 라이브러리를 사용할 것 이므로 코드 최상단에 import numpy as np 를 까먹지말자. 난 까먹었지만. def get_next(m, ..

[안드로이드] RecyclerView를 잘 사용하기 위한 팁들.

ListView가 널리 쓰일때부터 RecyclerView, 그리고 지금은 DiffUtil을 이용한 ListAdapter를 사용하기 까지! 수 년간 안드로이드를 개발해왔는데, RecyclerView에 대해서 계속 당하기만 한 기억뿐이다. 잘몰라서 그렇다. 그래서 이번에 RecyclerView에대해서 공부 할 거리를 찾아보다 발견한 짧은 글을 간단히 번역해 보기로 했다. 원문: proandroiddev.com/recyclerview-pro-tips-part-1-8a291594bafc 1. 런타임에 RecyclerView 내의 아이템 크기가 변하지 않는다면 setHasFixedSize(true)를 사용해라. RecyclerView 내의 아이템의 높이가 모두 균일하다면 RecyclerView.setHasFixe..