Kubernetes를 처음 검토할 때는 보통 장점부터 눈에 들어온다.자동 복구, 오토스케일링, 롤링 업데이트, 서비스 디스커버리, 선언형 배포 같은 기능은 분명 매력적이다. 컨테이너 기반으로 여러 서비스를 운영한다면 Kubernetes가 사실상 표준처럼 느껴지기도 한다.그런데 실제로 도입을 검토하다 보면 기능보다 먼저 알아두어야 할 부분이 있다.K8S를 도입한다는 것은 애플리케이션뿐 아니라 K8S라는 플랫폼 자체도 계속 운영한다는 뜻이다. 설치하고 서비스를 올리는 것보다, 그 이후 몇 년간 어떻게 유지할 것인지가 더 중요할 수 있다.1. Kubernetes는 한 번 설치하고 오래 쓰는 제품이 아니다기존 서버 소프트웨어는 특정 버전을 설치한 뒤 몇 년 동안 유지하는 경우가 많다.Kubernetes는 조금 ..
오랜만에 Android Studio를 켜서 3.6.2로 버전업을 하였더니 빌드가 실패한다. 아래와 같은 에러들이 보인다. 숫자는 프로젝트마다 조금씩 다른 듯, Git branch와는 관계가 없다. ERROR: Uninitialized object exists on backward branch 45 Caused by: java.lang.VerifyError: Uninitialized object exists on backward branch 45 기존에는 Oracle JDK를 1.8을 설치하여 쓰고 있었는데 Android Kotlin 관련 업데이트와 충돌을 하는 듯 싶다. Jetifier 빌드 툴 동작중 문제가 된다. Jetifier가 무엇인지는 아래 링크 참조 https://developer.androi..
Google IO 2017에서 새로 발표된 Android Studio 3.0 canary 1 버전에는 새로운 Android profiler가 탑재되었다. 이 프로파일러를 동작시키기 위해서는 com.android.toos.build 버전을 2.4 이상으로 올려야 하는데, 업데이트 후 싱크 시 스튜디오에서 다음과 같은 오류가 발생하였다.Failed to notify build listener 이럴 경우 gradle daemon에 업데이트 된 사항이 적용되지 않아 그런 것으로, daemon을 재시작하면된다. Android studio를 재시작하여도 되고, 스튜디오의 터미널 창을 열어 커맨드 명령으로 종료시킬 수 있다. 커맨드 명령은 아래와 같다.[Windows] > gradlew --stop[Linux]> ...
Tensorflow 1.0부터 윈도우(MS Windows)에서 설치하여 사용할 수 있게 되었습니다. 설치시 겪었던 몇가지 주의점을 기록하였습니다. 다른 분들에게 참고가 되면 좋겠습니다. CUDA 지원에 대해CUDA 8.0만을 지원하므로 그 이전 버전은 호환되지 않는다. 자신의 비디오 카드가 CUDA 8.0을 지원하지 않으면 CPU only 버전으로 설치해야 한다. (참고 : https://github.com/tensorflow/tensorflow/issues/8161)비디오카드마다 지원되는 CUDA 버전이 다르므로 아래 사이트에서 확인해야 한다.http://developer.nvidia.com/cuda-gpusPython 버전64Bit만 지원하므로 Python 32bit을 사용했었다면 지우고 다시 설치해..
그누보드5에서 아이코드(www.icodekorea.com)와 연동하여 SMS를 사용자들에게 전송할 수 있다.그런데 아이디와 비번을 바르게 입력하였는데도 인증이 되지 않는 경우가 있어 한참 고생하였다.원인은 간단했는데, 패스워드 길이 문제였다.아이코드에서는 패스워드에 10자 이하의 길이 제한이 있다고 안내하고 있으나, 홈페이지에서 회원 가입 시 10자보다 더 길게 입력되고 로그인도 잘 된다. 따라서 비밀번호를 10자 이내로 줄이고 그누보드에서 연동 시 정상 작동함을 확인하였다.검색을 많이 했지만 나오지 않아 특별히 블로그에 포스팅을 남긴다...
이번에는 '함수형 사고'를 읽었습니다. 책이 두껍지 않지만 내용이 어려운 편이고 코드 예제가 많아 가볍게 통독하였는데에도 보름정도 걸린 듯 합니다. 예전에 폴리글랏 프로그래밍 책을 통해 함수형 프로그래밍 언어가 영역을 넓혀가고 있다는 이야기를 알았었고, 최근에 Java 8에 추가된 함수형과 관련된 부분들과 자바스크립트, 스칼라를 공부하기도 하였었습니다. 그러나 문법적인 내용들만 조금씩 익혔을 뿐, 함수형으로 생각하고 함수형에 맞게 프로그램을 만들 수 있겠다는 생각은 별로 들지 않았습니다. 어떻게 해야 함수형 언어들의 특성을 잘 살려 프로그램을 짜낼 수 있을지 모르겠어 답답하였는데, 우연히 이 책의 제목만 보고 마음에 들어 구입해보게 되었습니다. 생각하는 방법을 알려줄것 같았습니다.이 책의 처음은 함수형은..
누워서 읽는 알고리즘국내도서저자 : 임백준출판 : 한빛미디어 2015.10.20상세보기'누워서 읽는 알고리즘'은 출간된지 오래되었는데 복간되어 다시 나왔습니다. 학생 때 도서관에서 봤다가 이번에 구매해서 읽어보게 되었습니다. 오! 하하! 13년이나 되었네요. 세월이 지났음에도 책에서 이야기하는 알고리즘들이 여전히 우리에게 사용되고 있다는 점에서, 알고리즘이라는 것이 얼마나 중요한 것인지 실감하게 됩니다. 특히 요즈음 IT 취업 시장에서는 코딩 능력에 대한 평가가 많이 이루어지고 있고, 알고리즘을 얼마나 알고 있는지가 상당히 중요하게 여겨지고 있습니다. 문제 해결 능력을 보겠다는 것이죠. 꼭 취업이 아니더라도 개개인의 능력 향상을 위해서는 훈련이 필요한 부분이라고 생각합니다. 이 책은 다른 알고리즘 서적들..
임백준의 대살개문국내도서저자 : 임백준출판 : 한빛미디어 2016.05.01상세보기임백준님은 다양한 개발 관련 책을 번역하시고 스스로도 책을 쓰시는데, 대부분 선택했을 때 후회됨이 없었습니다. 이처럼 좋은 지식과 정보를 계속해서 한국에 공급해 주고 계신데, 이번에 나온 '대살개문'이라는 특이한 이름의 책은 그동안 지디넷에 연재하였던 칼럼 글들을 몇가지 주제별로 엮어낸 책입니다. 이미 지디넷으로 거의 읽어봤기에 쉽고 빠르게 읽을 수 있었고 사기 전에도 그럴 것이라 생각하였습니다. 다만 이렇게 책으로 구매하게 된 것은 칼럼 내용들이 워낙 좋았었고, 책으로도 가지고 있으면 좋겠다는 생각이 들었기 때문입니다. 첫 글의 제목은 '야근은 미친 짓이다'로 시작합니다. 사람이 하루에 집중력을 발휘할 수 있는 시간은 2..
안드로이드에는 런쳐(홈 앱)에 위젯을 사용자 마음대로 설치할 수 있다. 사용자는 주어진 기능이기 때문에 원하는대로 사용하려고 하게되는데, 많이 설치하면 할수록 런쳐가 사용하는 메모리가 커진다는 것을 잘 이해하지 못하는 것 같다. 개발자들도 위젯을 개발해 보지 않으면 위젯의 생명 주기를 잘 이해하지 못하곤 한다.위젯은 런쳐의 메모리를 사용한다.그렇다. 위젯은 런쳐의 메모리를 사용하고 지속적으로 점유한다. 그런데 런쳐는 사실상 계속 살아있는 앱이므로 런쳐의 메모리가 커지면 가용램이 줄어든다고 말할 수 있다 이는 곧 전체적인 폰의 성능 저하로 이어지게 된다. 만약 게임등에 의해 메모리 사용이 극대화 되고 가용램이 없게되면 LMK(Low Memory Killer)에 의해 우선순위에 따라 프로세스들이 죽어가게 된..
안드로이드를 위한 Gradle 안드로이드국내도서저자 : 유동환출판 : 한빛미디어 2016.07.22상세보기Maven을 대체하는 강력한 빌드 툴, Gradle에 대해 책이 나와 읽어보게 되었습니다. 이 책은 안드로이드 앱을 만들기 위해 Gradle을 사용하는 방법에 초점을 맞추고 있습니다. 처음 안드로이드 개발을 하다 보면 빌드를 어떻게 설정해야 할지 참 막막합니다. Gradle에 Android 특성이 플러그인 되어 있어 관련된 부분을 조정해야 하기 때문인데요, 이 책은 이런 경우에 이 책은 큰 도움이 될 것 같습니다.책은 가볍고 얇게 나와 이동 중에도 읽기 쉬웠고 빨리 읽을 수 있었습니다. 일단 한번 훑은 뒤 필요한 부분을 찾아 보거나, 여기서 본 지식을 바탕으로 웹에서 확장된 내용을 검색해 볼 수 있을..