-
linux에서 대량의 파일을 보다 빠르게 지우기
주기적으로 실행되는 스케쥴 중에 대량의 파일을 삭제해야 하는 작업이 있었다. 데이터 수집 등의 작업으로 누적된 로그/캐시 파일들을 작업 완료 후 삭제를 해야하는 작업이었다. 그런데 파일의 수가 워낙에 많다보니 지우는 작업에 소요되는 시간이 너무 길었다. 어차피 서비스 서버가 아니고 스케쥴로 처리되는 작업이니 시간이 조금 오래 걸려도 큰 문제될 것은 없었으나 그래도 시간을 조금이라도 줄여보고자 자료를 찾아보다 Efficiently delete large directory containing thousands of files라는 글을
-
NFS로 연결된 디스크에서 Gulp Watch 사용시 파일 변경 감지가 느릴 때
얼마 전부터 프로젝트에서 Lumen을 사용하고 있다. Laravel을 사용하려고 하다가 경량 프레임워크에 더 끌려서 Lumen을 사용중이다. 사실 이 부분에 관련해서 약간의 후회(고민)를 하고 있다. lumen은 아무래도 자료도 부족한 면이 있고 Laravel 모듈과의 연동이 원활하지 않은 부분이 있어서 불편한 면이 있다. Lumen에는 Laravel에서 기본적으로 제공하는 기능 중 많은 부분이 제외되어 있는데 그 중 하나가 Elixir이다. 하지만 Elixir를 Lumen에 연결하는 것은 크게 어렵지 않다. Elixir는 Gulp
-
chmod로 권한 변경시 디렉토리(또는 파일)만 적용하기
chmod로 디렉토리 또는 파일의 권한을 변경할 때 하위에 포함된 파일들까지 일괄 적용을 하기 위해 -R 옵션을 사용할 수 있다. 그런데 이 경우는 하위의 모든 디렉토리와 파일에 적용된다. 아래는 하위의 디렉토리만 또는 파일만 적용하도록 하는 방법을 안내한다. # 하위 디렉토리만 포함 find /path/to/base/dir -type d -exec chmod 755 {} + chmod 755 $(find /path/to/base/dir -type d) find /path/to/base/dir -type d -print0 | xar
-
php-fpm opcache로 인한 Nginx - 502 bad gateaway 오류
얼마 전부터 서비스 사용자로부터 이상한 오류 보고를 비주기적으로 받고 있다. 특정 페이지에 접속시 502 Bad gateaway 오류가 난다는 것이다. 하지만 그 오류가 나는 페이지에 특별히 눈에 띄는 부분은 없다. 게다가 동일한 프로그램이 몇개의 폴더에서 동시에 사용 중임에도 꼭 한군데서만 동일한 문제를 일으킨다. 게다가 일시적으로 발생하고 사라지지 않고 한번 오류가 발생하면 그 후에 해당 페이지에 접속하면 해결 전까지는 계속 502 에러를 보인다. 게다가 해당 오류가 발생하는 조건을 알 수 없어 오류 재연이 불가능한 상황이라 원
-
Generic Type으로 인스턴스 생성
java에서 Generic Type은 유용하고 다양한 곳에서 사용한다. 예를 들어 안드로이드에서 findViewById 사용시 Generics을 이용해 Type Casting 없애기처럼 사용도 가능하다. 이 글의 주제는 Generic Type으로 해당 class의 인스턴스를 얻는 방법에 대한 것이므로 Generic Type에 대한 기본적인 내용은 다루지 않는다(설명이 길다). 우선 class로 인스턴스를 생성하는 가장 기본적인 방법부터 보자. Class clazz = String.class; try { String a = (Stri