목록분류 전체보기 (103)
우찬쓰 개발블로그
pram에 ?hl= 추가 ex) https://play.google.com/store/games?hl=en Android Apps on Google Play Enjoy millions of the latest Android apps, games, music, movies, TV, books, magazines & more. Anytime, anywhere, across your devices. play.google.com language list https://serpapi.com/google-languages
* 엉클 밥 블로그 포스팅을 공부겸 직접 번역해본 글입니다. 원본 블로그 링크 (오역은 댓글로 알려주세요!) Clean Coder Blog The Clean Architecture 13 August 2012 Over the last several years we’ve seen a whole range of ideas regarding the architecture of systems. These include: Though these architectures all vary somewhat in their details, they are very similar. They all have blog.cleancoder.com 지난 몇년동안 우리는 시스템 아키텍처에 대한 많은 범위의 아이디어를 보아왔습니다. ..
1. 자바 코드는 바이트 컴파일러에 의해 바이트 코드로 변경된다. 2. 바이트 코드는 이미 최적화가 되어있는 중간 언어이므로 손쉽게 기계어로 변경 가능하다. (JIT 컴파일러등에 의해) 3. 2.2 프로요 전 까지는 앱이 구동되는 와중에 실시간으로 자바 코드를 CPU에 맞게 변환되었다. 4. 2.2 프로요 부터는 JIT컴파일러 도입. 코드 최초 실행 시점에 바이트 코드를 기계어로 변경하고 캐시에 저장했다. 5. JIT(Just In Time)컴파일은 실행시점에 소스코드를 번역한다. 설치는 빠르지만 실행시점에 느리다. 번역한 정보를 메모리에 올려야 하기 때문에 메모리를 많이 먹는다. 6. AOT(Ahead Of Time)컴파일은 설치시점에 소스코드를 번역한다. 설치가 느리고, 번역을 해서 따로 파일을 저장..
View에 대한 하나의 애니메이션이 끝나고 다음 애니메이션, 그 다음 애니메이션.. 몇개를 연달아 호출하는 요구사항이 있었다. 공식 안드로이드 라이브러리를 찾다보니.. Listener를 각각 다는 방법 말고는 없는것 같아서 편의성 클래스를 하나 만들었다. (못찾은 걸수도..) https://gist.github.com/WoochanLee/934893722316a120f9955e4fd637dc4a Android Animation Chain Android Animation Chain. GitHub Gist: instantly share code, notes, and snippets. gist.github.com AnimationChain.kt 사용 방법 val animationChain = Animation..
안드로이드 웹뷰에서 특정 Web element가 존재하느냐에 따라서 다른 처리가 하고 싶은 경우가 있을 수 있다. 그럴경우 다음과 같은 방법을 써보자. webView.evaluateJavascript("(function() { var element = document.getElementById('desireId'); return element.innerHTML; })();") { html -> val isElementExist = !(html.equals("null") || html.equals("undefined")) if (isElementExist) { ... } else { ... } } 출처 : https://stackoverflow.com/a/51509696/9797457
/Applications/Android\ Studio.app/Contents/MacOS/studio
잠깐 개인적으로 리액트를 만지게 되었는데 모르던 귀찮은 에러들이 많았다. 대표적으로 교차 출처 리소스 공유(CORS)와 관련된 에러인데, 이것은 api서버쪽에서 헤더에 Access-Control-Allow-Origin을 열어주지 않는 이상 브라우저단에서 막아버리기 때문에 클라쪽에서는 방법이 없다. 그나마 해결책이 중간에 프록시서버를 두는 방법인데, 리액트 프로젝트를 사용한다면 간단하게 처리할수 있다. 다음과 같은 상황을 가정해보자. 네이버에서 코스피지수를 크롤링하려고 한다. 근데 axios로 다음과 같은 url을 호출해보니.. https://m.search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EC%BD%94%EC%8..
저자 - 로버트 C. 마틴 (Uncle Bob) 코드를 클린하게 짜는 방법에 대해 소개한 책. 클린 시리즈에서 가장 유명하다. 변수명과 메소드명을 어떻게 신경써야 하는지, 함수는 왜 작게짜야하고 왜 파라미터수를 줄여야 하는지 등 디테일하게 이상적인 코드에 대해 설명하고 있음. 물론 아주 이상적인 얘기를 하고 있기 때문에 모든 좋은 프로그램들이 이 것을 지키고 있진 않음. 하지만 적어도 어떻게 짜야 더 유지보수와 가독성에 좋은지 가이드를 잘 하고 있음. 앞에는 몰입해서 읽었지만 뒤로갈수록 예제가 디테일해져서 읽기 힘들어 지는 책이긴 했다.
개인 토이프로젝트를 하다가 겪은 일이다. Storage에 이미지를 저장하긴 했지만, 너무 비정상적으로 높은 저장된 바이트가 나왔고, 심지어 Storage에 있는 모든 파일을 지워보았지만 이 수치가 떨어지지 않았다. 좀 들여다보니 한가지 힌트를 볼 수 있었는데, 그것은 바로 Container Registry에 사용한 스토리지가 포함된다는 것이다. 이것이 왜 배포할때마다 쌓이고 있는지에 대한 의문은 아래 링크에서 알 수 있었다. https://stackoverflow.com/a/64310577/9797457 간단히 요약하자면, 내가 Firebase Functions를 배포할때마다 옛날 artifects들이 지워지지 않고 쌓이고 있다는 소리다. 그래서 해결 방법을 보자. Firebase Storage에 들어간..