Heroku 에 Deploy 시킨 App 들이 잘 동작하다가 30분정도 지나면 잘 끊기는 현상이 발생한다.

원인은 Heroku 내부에서 각 App 마다 동작하는 엔진인 dyno 가 30분이 지나면 sleep모드로 진입하여서 발생하는 현상이다.


Dyno 의 Sleep을 방지하려면 30분이전에 deploy 된 App URL 을 주기적으로 연결하여, sleep 모드에 돌입하지 않게 하는 여러 방법이 있다.

  • hubot-heroku-keepalive
    • Hubot 에서 사용가능한 모듈로 되어 있어서 config 설정시 HUBOT_HEROKU_KEEPALIVE_URL 을 넣어 주면 된다.
  • Kaffeine
    • Heroku Deploy URL을 넣어주면 해당 사이트에서 주기적으로 URL에 연결을 하여, sleep 모드에 돌입하지 않게 해주는 프로젝트

Reference: https://quickleft.com/blog/6-easy-ways-to-prevent-your-heroku-node-app-from-sleeping/

Posted by leechwin
,

Windows Chrome 에서 일부 페이지에서 글자가 흐릿하게 나와서 읽는데 불편한 경우가 있다.


Chrome 의 DirectWrite 기능 때문인데 다음과 같이 해당 옵션을 disable 하면 글자가 선명하게 나온다.

  • Chrome 주소창에 chrome://flags 를 입력
  • DirectWrite 사용 중지를 선택
  • 브라우져를 재시작하면 옵션이 적용되게 된다.

하지만 Windows Chrome 52버전부터 이옵션이 사라지게 된다. :(

Reference: http://nuli.navercorp.com/sharing/blog/post/1132689


'Web' 카테고리의 다른 글

[Bootstrap] Input 태그의 Clear 버튼  (0) 2016.12.16
[FONTAWESOME] icon 제공 라이브러리  (0) 2016.12.16
[Chrome] Cache 삭제  (0) 2015.12.31
DOMNodeRemoved event  (0) 2015.12.30
[Chrome] Debugging Asynchronous JavaScript  (0) 2015.12.21
Posted by leechwin
,

Ubuntu 에서 Node.js 설치 및 설정 방법에 대해 알아보자.


설치를 위해서는 nodejs 사이트에서 패키지를 다운받는 법도 있지만, apt-get 을 통하여 설치도 가능하다.


Node.js 는 버전이 다르기 때문에 다음을 참고하여 원하는 버전을 다운받는다.

  • 4.xx
    • curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
      sudo apt-get install -y nodejs
  • 5.xx
    • curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
      sudo apt-get install -y nodejs


Nodejs 심볼릭 링크 생성

    • ln -s /usr/bin/nodejs /usr/bin/node


NPM Config 설정

  • npm registry
    • npm config set registry http://registry.npmjs.org/
  • npm directory 설정
    • mkdir ~/global-modules npm config set prefix '~/global-modules'

    • 시스템 변수 등록
      • ~/.profile 파일에 다음을 추가
        • export PATH=~/global-modules/bin:$PATH
      • 업데이트
        • source ~/.profile
  • npm proxy 설정
    • npm config set proxy http://111.111.111.111:8081 npm config set https-proxy https://111.111.111.111:8081 npm config set strict-ssl false npm config set registry http://registry.npmjs.org/

    • 위와 같이 설정한 값은 ~/.npmrc 파일에 저장된다.


Reference


Posted by leechwin
,

Ubuntu 를 새로 설치하고 apt-get 등의 작업을 할때 Bad header line 이라는 에러와 함께 패키지 정보를 가져오지 못하고 에러가 발생하는 경우가 있다.

이때에는 apt-get clean 이후 apt-get update 등을 수행해도 제대로 동작하지 않는다.

이를 해결하기 위해서는 다음과 같이 수행한다.

  • Update Manger > Settings... > Ubuntu Software > Download from > Main Server
  • 아래의 명령으로 source list를 삭제한 후 새로 update를 수행
    • sudo rm -rf /var/lib/apt/lists/* && sudo apt-get update

위의 순서대로 수행하면 apt-get update 가 에러없이 수행된다.


만약 사내등에서 Proxy 를 쓰고 있다면 다음과 같이 proxy 설정을 해주어야 한다.

  • /etc/apt/apt.conf 파일에 해당 프록시 주소를 설정한다.
    • Acquire::http::Proxy "http://111.111.111.111:8080/"; Acquire::https::Proxy "https://111.111.111.111:8080/";

  • 이후 apt-get clean 과 apt-get update 를 수행한다.


Reference: http://askubuntu.com/questions/162782/apt-get-update-bad-header-line-on-all-udpates

Posted by leechwin
,

Bash Strict Mode

OS/Linux 2016. 1. 3. 20:09

Bash Shell Script 작성시 다음과 같이 시작하면 안전한 스크립트를 작성 할 수 있다.

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
  • set -e 옵션
    • 첫번째 에러에서 스크립트를 취소(0이 아닌 상태로 종료하는명령어)하는 옵션
    • 스크립트 에러시 정상종료상태인 0을 리턴받아 다음 스크립트가 진행된다면 마지막 스크립트까지 진행되는 경우 원하지 않는 결과가 수행될 수 있다.
  • set -u 옵션
    • 정의 안 된 변수 사용시 에러 메세지 출력후 강제 종료하는 옵션
  • set -o pipefail 옵션
    • pipeline으로 실행된 경우 에러발생시 에러코드 및 메시지를 전달하는 옵션

Reference


Posted by leechwin
,

[Chrome] Cache 삭제

Web 2015. 12. 31. 16:32

크롬 Cache를 삭제하는 방법

  • Ctrl + Shift + Delete
  • Menu > Settings > Privacy > Clear browsing data...
    • 인터넷 사용 기록
    • 다운로드 기록
    • 쿠키 및 기타 사이트/플러그인 데이터
    • 캐시된 이미지 또는 파일
    • 비밀번호
    • 양식 데이터 자동완성
    • 호스팅된 앱 데이터
    • 콘텐츠 라이센스
  • 설정후 Clear browsing data 버튼을 클릭하면 적용된다.

참고로 브라우져의 시크릿 모드(Ctrl + Shift + N)에서는 캐쉬가 남지 않는다.

'Web' 카테고리의 다른 글

[FONTAWESOME] icon 제공 라이브러리  (0) 2016.12.16
[Chrome] 웹페이지의 글자가 흐릿하게 나오는 경우  (0) 2016.01.08
DOMNodeRemoved event  (0) 2015.12.30
[Chrome] Debugging Asynchronous JavaScript  (0) 2015.12.21
Gravatar  (0) 2015.08.26
Posted by leechwin
,

DOMNodeRemoved event

Web 2015. 12. 30. 15:56

DOM Element 가 삭제될때 이벤트를 받고 싶다면, DOMNodeRemoved 이벤트를 캐치하면된다.

element.addEventListener('DOMNodeRemoved', function() {
    // code
});

참고: http://help.dottoro.com/ljqkbipq.php

'Web' 카테고리의 다른 글

[Chrome] 웹페이지의 글자가 흐릿하게 나오는 경우  (0) 2016.01.08
[Chrome] Cache 삭제  (0) 2015.12.31
[Chrome] Debugging Asynchronous JavaScript  (0) 2015.12.21
Gravatar  (0) 2015.08.26
Asynchronous Module Definition (AMD)  (0) 2015.02.27
Posted by leechwin
,

리눅스에서 sh 파일을 실행할때 가끔 다음과 같은 에러가 발생하는 경우가 있다.

  • /bin/bash^M: bad interpreter: No such file or directory

VI로 확인을 해보아도 스크립트내용은 이상이 없는데, 다음 명령어로 해당 sh 파일을 열어보도록 하자.

  • vi -b <file>

확인을 해보면 개행마다 ^M이라는 이상한 문자가 붙어있는 것을 볼 수 있다.

원인으로는 이 파일이 아마도 윈도우즈에서 생성되어서 개행마다 carriage return character 인 "^M"이 붙어서 리눅스에서 실행시 에러를 낸다.

참고로 윈도우즈의 개행은 CR LF 이고, 리눅스에서는 LF 이다.

  • CR (carriage return)
  • LF (line feed)
위의 해결책은 vi -b 로 진입하여 CR에 해당하는 "^M" 문자를 모두 삭제하거나, 리눅스에서 새로 파일을 만들어 작성하여 실행하면 제대로 동작한다.

vi 에서 수정시에는 다음을 참고한다.
  • :%s/^M$//
  • 참고로 ^M 문자는 Ctrl + V, Ctrl + M을 차례로 누르면 된다.



Posted by leechwin
,

Eclipse Mars (4.5.1)을 다운 받고 나서 Java 개발 셋팅을 하던중 자주 사용하던 dejavu sans mono 폰트가 기본으로 깔려 있지 않은 것을 확인했다.

Dejavu Sans Mono 폰트가 기존에 쓰던 기본 폰트중 쓸만해서 쓰다보니 적응되서 다른 폰트는 어색하기에, 해당 폰트를 다운로드 받아서 설치해보도록 하자.

  • 자신이 원하는 폰트를 다운로드 받는다.
    • Dejavu Sans Mono 폰트의 경우 아래의 링크에서 다운 받을 수 있다. 설치 원하는 폰트를 다운로드 받도록 하자. 일부 폰트는 설치 및 적용까지 된다.
  • 다운 로드 받은 폰트를 압축을 푼다.
  • Eclipse 에서 font 설정을 위해 Preferences 설정으로 이동
    • General > Appearance > Colors and Fonts > Java > Java Editor Font
  • Font 설정에서 좌측 하단의 다른 글꼴 표시를 클릭
    • 일부 폰트는 압축 해제 및 설치까지 되는데, 설치까지 자동으로 되었다면 아래 글꼴 검색에서 바로 검색되어 바로 적용이 가능하다.
  • 다운로드 받은 폰트파일을 다음 경로로 복사한다.
    • Windows 10의 경우 제어판\모양 및 개인 설정\글꼴
  • 폰트 파일을 복사한 뒤에 해당폰트를 클릭하여 원하는 폰트를 선택하고 표시 버튼을 클릭한다.
  • Eclipse 의 Font 설정 창을 다시 돌아가서 해당 폰트를 검색하면 검색되는것을 볼 수 있고, 바로 선택하고 확인을 하면 적용이 되는것을 볼 수 있다.


Posted by leechwin
,

Java Application 이나 IDE 가 실행중에 멈춰있거나, 알수없는 이유로 일정 동작에서만 멈추는 경우 JVM 에서 지원하는 Thread Dump 를 통해 어디가 문제인지 짐작해 볼 수 있다.


jps- v 혹은 ps 로 명령으로 현재 실행 중인 Java Application 의 pid 를 알아낸후, jstack 으로 스레드 덤프를 확보가능하다.

  • jps -v : jvm 관련 프로세스보기
  • jstack [pid] : 해당 프로세스 덤프확보



Posted by leechwin
,