워드프레스 child theme 만들기

워드프레스에 Google Analytics를 적용하려면 head 태그에 스크립트를 삽입해야하는데 테마 파일을 직접 수정하는 경우 테마 업데이트를 할 때마다 작업을 다시 해줘야하는 번거로움이 있다. 자식 테마를 생성하면 이런 문제를 해결할 수 있는데, 여기서는 다른 내용들은 전부 생략하고 오로지 구글 어낼리틱스를 적용하기 위한 최소한의 작업만 다루도록 한다 1. 자식 테마를 위한 디렉터리 생성 wp-content/themes에 원하는 이름으로 디렉터리를 생성한다. […]

워드프레스 child theme 만들기 Read More »

머신러닝 공부 다시 시작

2년 전쯤 ‘밑바닥부터 시작하는 딥러닝’, ‘프로그래머를 위한 선형대수’ 책과 케라스를 가지고 딥러닝을 잠깐 공부했었는데 다른 일이 많아서 우선순위도 밀리고 흥미를 잃었다가 요즘 다시 공부하고 했다. 이번에는 이론적인 배경을 깊게 파고들기보다는 핵심개념과 텐서플로 위주로 진행하고 있는데 머릿속에 정리가 잘 되는 느낌이다. 모두를 위한 딥러닝 강의를 보면서 진도를 나가고 있는데 이론과 실습의 분량과 난이도가 나에게는 딱 맞는

머신러닝 공부 다시 시작 Read More »

비디오 세대

요즘에는 강의뿐만 아니라 단순한 설정작업에 관한 자료들도 영상 설명이 검색되는 경우가 많은데, 이런 게 좀 낯설고 이해가 안 가면서도 (그냥 텍스트로 후다닥 훑어보면 될 걸 왜 굳이?) 반대로 생각해보면 이미 영상으로 정보를 얻는 게 익숙한 사람들이 텍스트 자료를 보면 너무 많은 부분이 생략되어있다고 느낄 수도 있을 것 같다. 그리고 이전 세대들에게는 영상을 재생하는 행위 자체에

비디오 세대 Read More »

macOS 캘린더 앱에서 구글 계정 추가 시 캘린더 중복 등록 현상

캘린더앱에서 구글 계정을 추가했더니 똑같은 캘린더가 두 개씩 나타나는 현상이 발생했다. 정확한 원인은 모르겠고, 계정을 삭제했다가 시스템 환경설정 앱을 통해서 계정을 다시 등록했더니 정상적으로 추가되었다. 왠지 계정 등록 이벤트를 두 개의 앱에서 각각 핸들링했던게 아닌가 싶다.

macOS 캘린더 앱에서 구글 계정 추가 시 캘린더 중복 등록 현상 Read More »

[영화] Baby Driver (2017)

넷플릭스에 뭐 볼 거 없나 찾아보다가 예전에 영화 소개 프로에 나왔던 게 생각나서 봤던 영화. 별로 재미 없다. 왜 평점이 높은지는 잘 모르겠음. 항상 이어폰을 꽂고 있다는 특이한 설정과 힙한 음악으로 뭔가 ‘느낌’을 내보고 싶었던 것 같긴 한데, 뭐 하나 제대로 진행되거나 마무리된 게 없어보인다. 등장 인물들도 ‘이 정도 했으면 대충 얘네들 어떤 애들인지 알겠지?

[영화] Baby Driver (2017) Read More »

네트워크 스토리지에 .DS_Store 파일 생성 방지

아래 명령을 터미널에서 실행하고 맥에서 로그아웃하고 다시 로그인한다. defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE 다시 원래대로 하려면 마지막의 TRUE를 FALSE로 바꿔준다. defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE   참고: https://support.apple.com/en-us/HT208209

네트워크 스토리지에 .DS_Store 파일 생성 방지 Read More »

Product Flavor에 따라 google-services.json 파일 따로 적용하기

Firebase 서비스를 연동할 때 테스트 프로젝트와 실서비스 프로젝트를 구분해서 운영하게 되는데, 이 때 각 프로젝트를 위한 google-services.json 파일이 따로 나오게 된다. 테스트용 빌드와 배포용 빌드를 product flavor로 구분하고, 각 빌드에 따라 google-services.json 파일을 따로 적용할 수 있다. 별도로 설정할 부분은 없고, product flavor 디렉토리에 json 파일을 각각 넣어두면 자동으로 적용된다. 예를 들어 내부 테스트와 배포용

Product Flavor에 따라 google-services.json 파일 따로 적용하기 Read More »

Android에서 Base64 URL safe encode

Base64로 인코딩된 문자열을 URL에 담아서보내는 경우가 있다. 이 때 URL에서 사용되는 +, / 문자를 -, _로 치환시키는 등의 처리를 하게 되는데 이런 방식이 Base64 URL Encoding이다. Java에서는 Java 8부터 API로 제공된다. https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html java.util.Base64 클래스 getUrlEncoder() 메서드를 호출해서 Base64.Encoder 객체를 가져오는 방법으로 사용한다. 안드로이드에서는 API 26부터 지원된다. https://developer.android.com/reference/java/util/Base64.html 그렇다면 min sdk 버전이 26 미만이면 외부 라이브러리를

Android에서 Base64 URL safe encode Read More »

Float/Double형의 값을 다룰 때 주의할 점 (NaN)

아래 코드를 실행하면 콘솔에는 NaN이 출력된다. double x = 0.0; double y = 0.0; double num = x/y; System.out.println(num); // NaN 출력 이렇게 연산 결과가 NaN(Not-a-Number)이 되는 경우에 대해서는 별도의 처리를 해주어야 한다. 그렇다면 그 값이 Double.NaN과 같은지 비교하면 될까? System.out.println(num == Double.NaN); 위 코드는 false를 출력한다. 그런데 아래 코드는 true를 출력한다. System.out.println(num.equals(Double.NaN)); 사실 어떤

Float/Double형의 값을 다룰 때 주의할 점 (NaN) Read More »