발생일: 2021.05.25 키워드: 홈어시스턴트, Home Assistant, HA 문제: 홈어시스턴트 이미지를 SD 카드에 구워서 라즈베리 파이에서 구동하려고 한다. 가이드에 나온대로 SD 카드를 포맷하고 balenaEtcher 에서 타겟을 설정했는데, 아래와 같은 오류가 발생했다. EBUSY: resource busy or locked, open '/dev/rdisk2 on Mac 해결책: SD 카드를 Disk Utility 에서 포맷했는데, 이 때 APFS 로 포맷한 것이 문제였다. Mac OS Extended (Journaled) 으로 포맷해야 한다. APFS 로 포맷된 상태에서는 디스크 유틸리티에 다른 포맷 옵션이 나오지 않는다. 아래와 같이 커맨드라인에서 실행하면 된다. $ sudo disk..
발생일: 2021.03.10 키워드: 구글 앱스 스크립트, 구글 앱 스크립트, Google Apps Script, gas, background, setTimeout 문제: 구글 스프레드시트와 슬랙, 구글 앱스 스크립트로 간단한 자동화 태스크를 구축해뒀다. 슬랙을 API 창구로, 구글 앱스 스크립트를 앱 서버로, 스프레드시트를 디비로 사용하고 있다. 예를 들면 이런 작업이다. 1. 슬랙에서 /find_stock_price 같은 슬래시 명령을 치면 2. 구글 앱스 스크립트에서 요청을 받아서 3. 스프레드시트의 값을 수정하거나 조회한 후에 슬랙으로 응답해주는 것이다. 태스크가 조금 복잡해지면서 작업의 응답 시간이 길어지게 됐다. 문제는 슬랙 커맨드의 타임아웃이 3초라는 것... 슬랙 요청에 대해 짧은 응답을 ..
발생일: 2020.07.25 키워드: 엘라스틱서치, elastic search 문제: 엘라스틱서치로 검색을 구현하려고 한다. 시작하기 문서를 찾아서 봤는데, 너무 이해하기 쉽게 잘 설명해준다. 아래는 노트해둔 것. 해결책: 엘라스틱 서비스 - Kibana 시각화 도구 - Elastic Search 검색 도구 - Beats, Logstash 수집 도구 - 이거 합해서 엘라스틱 스택 기타 기능 - 엘라스틱 사이트 서치: 사이트 URL 넣으면 색인 모두 만들어줌. 자동완성과 검색 제공하는 자바스크립트 모듈만 넣으면 된다고 함 - 엘라스틱서치 사이트에서 support matrix 라고 검색하면 지원환경 알 수 있음 - 엘라스틱서치 7버전부터 JDK를 같이 포함하고 있어서 자바 설치 안해도 됨 디렉토리 설명 - ..
발생일: 2020.04.09 키워드: 스케치, sketch, 컬러 스페이스 문제: 디자이너가 스케치에서 작업해준 컬러를 크롬에 적용했는데, 컬러 코드가 동일한데도 색상이 눈에 띄게 다르다. 왜 그런 걸까? 해결책: 프로그램마다 사용하는 컬러 스페이스가 다르기 때문이었다. (좀 찾아보니 컬러 스페이스는 색 공간, 색 영역, 컬러 프로필, 컬러 프로파일, 디스플레이 프로필 같은 용어로 쓰인다. 여기선 통일해서 컬러 스페이스라고 표기했다) 크롬을 포한한 브라우저의 컬러 스페이스는 일반적으로 sRGB 이고, 스케치는 기본적으로 모니터의 컬러 스페이스를 사용한다. 우린 iMac을 사용하고 있는데, 디스플레이 속성 메뉴에 가보면 어떤 컬러 스페이스가 적용되어 있는지 알 수 있다. 디자이는 기본적으로 iMac 컬러 ..
발생일: 2019.05.13 키워드: 인증서, https, ssl, letsencrypt, cordova, phonegap, 코르도바, 폰갭, certbot, 자가 서명 인증서, self-signed certificate 문제: 로컬 환경에서 https 를 구성하기 위해 자가 서명 인증서를 만들어 적용했다. (자가 서명 인증서는 https://ohgyun.com/429 참고) 브라우저에서는 잘 테스트했는데, 시뮬레이터에서는 동작하지 않는다. 왜 그럴까? 해결책: 우리 서비스는 코르도바 기반의 하이브리드 앱으로 구현되어 있다. 코르도바 보안 가이드에 따르면, 자체 서명된 인증서는 보안에 취약하기 때문에 기본적으로는 허용하지 않는다고 한다. 디버깅 옵션을 주면 된다고 하는데, 실제 환경과 비슷하게 테스트할 ..
발생일: 2019.03.02 키워드: Google Apps Script, 구글 앱스 스크립트, clasp 문제: 구글 앱스 스크립트를 로컬에서 개발하고 싶다. 기존엔 파일이 크지 않아 온라인에서 수정하거나, 수정 사항이 좀 있을 땐 에디터에 복사해서 수정하고 붙여넣곤 했다. 규모가 조금 커지다보니 더 이상 귀찮아서 못하겠다. 뭔가 도구가 있을 테다. 해결책: 유후. 로컬에서 개발하고 배포할 수 있는 clasp 라는 도구가 있다. 진작에 찾아볼 걸. https://github.com/google/clasp npm 으로 바로 설치할 수 있다. $ sudo npm i @google/clasp -g 구글 계정에서 Apps API 권한을 허용해준 다음, https://script.google.com/home/us..
발생일: 2018.10.29 키워드: jenkins, 젠킨스, manage jenkins, reload configuration in command line, 설정 업데이트 문제: 젠킨스의 설정 파일인 config.xml 을 직접 변경하고 나면, Manager Jenkin (Jenkins 관리) 메뉴에 들어가서 Reload Configuration from Disk 버튼을 눌러야 실행 중인 젠킨스에 반영된다. CLI로 바로 업데이트 할 수 없을까? 해결책: 터미널에서 아래와 같이 호출하면 된다. $ java -jar jenkins-cli.jar -s [JENKINS_URL] -auth [ID:PW] reload-configuration 난 젠킨스가 실행되고 있는 환경에서 바로 실행해서 아래와 같이 loc..
발생일: 2017.01.03 키워드: crontab, 크론탭, 크론, cron, 스케쥴, 첫 평일, first weekday, 젠킨스, jenkins 문제: 해당 달의 첫 평일(비즈니스 데이)에 태스크를 실행하는 젠킨스 크론 스케쥴을 정의하려고 한다. 해결책: 음... 설명하기 좀 복잡하다. 여튼, 아래처럼 하면 된다.ㅎㅎㅎ H 10 1-3 * 1 H 10 1 * 2 H 10 1 * 3 H 10 1 * 4 H 10 1 * 5 참고: http://www.switchplane.com/blog/how-to-run-a-cron-job-on-the-first-weekday-of-the-month/
발생일: 2016.05.26 키워드: 동시성, 병렬성, concurrency, parallelism 문제: iOS의 GCD(Grand Central Dispatch) 문서를 보다 보니, 동시성은 병렬성과 같지 않다는 문구를 보았다. Concurrency is not Parallelism: https://talks.golang.org/2012/waza.slide 헷갈린다. 해결책: 아래 이미지에서 두 개념의 차이를 한 눈에 이해할 수 있다. (출처: https://www.raywenderlich.com/60749/grand-central-dispatch-in-depth-part-1) 간단하게 정리하면 아래와 같다. Cuncurrency (동시성) - 독립적으로 실행하는 프로세스들을 구성 - 한 번에 여러 ..