Java

Collection Sort Lamba in Java

Java 8 이전에서 객체나 Map 같은 것을 정렬하기 위해서는 Collections 을 사용해야만 했다. 예를들어 다음과 같은 소스다. 하지만 Java 8 에 도임된 람다(Lambda) 를 사용할 경우에 이를 간단하게 해결할 수 있다. 더 나가 람다는 타입을 정의하지 않아도 된다. 컴파일러가 타입을 추론(Inferring) 하게 된다. 따라서 다음과 같이 간단하게 쓸 수 있다.

HowTo

KVM Image 용량 증설하기

KVM 가상화를 운영하고 있는데, 운영중인 VM 하나가 용량이 부족해지는 상황이 발생했다. KVM 가상화 VM 의 용량은 결국 이미지 파일 한개임으로 이 이미지 파일의 용량을 늘려주면 VM 의 용량이 사실상 늘어나는 것으로 생각했다. 하지만 현시점(2023) 에서 검색을 해보니 다양한 방법들이 존재했다. 그 중에는 VM 이미지를 로컬에 마운트해서 늘려주는 방법도 존재했지만 너무나 복잡해 보였다. 좀 더 쉬운 방법이 없을까 해서 검색한 결과 가장 쉬워보이는 것을 발견했고 이 방법으로 손쉽게 VM 용량을 늘리는데 성공했다. VM 상태 용량을 늘리려는 VM 의 상태는 다음과 같다. […]

Java

G1 Collector 기본 설정

G1 GC 의 기본적인 목표는 짧은 STW 시간을 가지고 가는 것이다. 어짜피 STW 를 피하지 못할 바에야 이 시간을 짧게 가지고 가는게 유리하다. 여기서 구분해야할는게 있는데 STW 는 Young GC 일때도 발생한다. 하지만 그 시간이 매우 짧아서 못 느낄 정도일 뿐이다. Old GC 의 경우에는 Young GC 대비 STW 시간이 매우 길다. 그 이유는 Heap 메모리 전체를 청소해야하기 때문이며 청소해야할 공간이 클 수록 Garbage Collector 작동을 위한 자원 소모가 많아진다. 다음과 같은 목표를 갖는다. 여기서 주목해야하는 것이 Full GC 발생하지 […]

Docker

Docker, 클라이언트 TLS 인증서 설정

Docker 서버를 구축했으며, 도메인은 정식 도메인이 아닌 개인 도메인이며 인증서를 셀프 싸인 인증서를 만들어서 TLS 서버 설정을 했다고 치자. 이렇게 되면 Docker 가 TLS 를 이용해서 서버에 접속을 하기 위해서는 서버 TLS 인증서에 대응하는 클라이언트 인증서가 필요하게된다. Docker 클라이언트 인증서 Docker 는 클라이언트 인증서를 /etc/docker/certs.d 디렉토리에서 찾게 된다. 이 디렉토리에 Docker 레지스트리 서버 호스트 이름과 같은 이름으로 디렉토리를 생성하고 그 안에 클라이언트 인증서를 세팅하면 된다. 이러한 구조는 다음과 같다. 의외로 간단하다. 참고: Verify repository client with certificates

HowTo

Gitlab 백업/복원

Gitlab 을 업데이트 하면서 보여지는 백업 메시지들은 다음과 같다. 업데이트를 하기전에 데이터베이스와 설정 파일들을 백업하고 있다. 만일 전체 백업을 하고 싶다면 다음과 같이 명령어를 이용할 수 있다. 수행후 생성된 백업 파일은 /var/opt/gitlab/backups 디렉토리에 만들어 진다. 만일 복원을 해야 한다면 백업 디렉토리에 백업한 파일을 올려놓고 다음과 같이 하면 된다.

Uncategorized

거머리 같은 한국의 IT 프리 개발자들….

요즘에 자주 들리는 뉴스, 아니 어찌보면 몇해전부터 듣고 왔던 이야기들… 유리지갑 직장인들, 장시간 노동에 업계에 몇년을 있어도 실소득이 오르지 않는 기이한 현상. 이러다보니 너도나도 주머니에 들어도는 돈을 중요시하는 시점에서 살게된다. 이왕이면 연봉이나 복지에 안정적인 직장인 보다는, 아니 ‘안정적인 직장’ 이라는 개념이 없어진지 오래고 복지라는 것도 기껏해야 돈 몇푼 더 지원해주는 정도이다 보니 너도나도 이제는 실질적인 손에 쥐는 돈에 눈이 돌아갈 수밖에 없는 세상. 그런데, 문제는 그렇게 실질적인 손에 쥐는 돈을 얻기 위해서 지켜야하는 것들은 안중에도 없고 좋은 것만 가지고 갈려고하는 […]

HowTo

wp-cli 를 이용한 core, plugin 업데이트 하기

워드프레스(WordPress) 를 사용하고 있는데, 갑자기 화면을 통한 플러그인(Plugin), 코어(Core) 업데이트가 되지 않았다. 보통은 문제 없이 이것이 수행되었는데, 뭔가 문제가 있는건지 파악해봤지만 찾지지는 못했고 그냥 포기해야 하나 하는 찰라에 wp-cli 를 이용하면 업데이트를 모두 할 수 있다는 사실을 알게 됐다. wp-cli.phar 워드프레스에서 정식으로 배포하는 것 같지는 않다. github 에서 배포 받을 수 있는데, 간단하게 wp-cli.phar 파일을 다운로드 받으면 된다. 사용법 다운받은 wp-cli.phar 를 /usr/local/bin 으로 복사하고 워드프레스 설치한 계정으로 전환해서 사용하면 된다고 하지만 개인적으로 그냥 워드프레스가 설치된 계정에서 실행해도 된다. 위와같이 […]

MySQL

MySQL 모니터링을 위한 계정 권한

MySQL 에서는 각종 지표등을 제공하는데, 이러한 지표를 얻기 위해서는 MySQL 계정이 있어야 한다. 대부분 MySQL 계정을 생성하고 권한을 주는데, 습관처럼 “ALL PRIVLEGES” 를 주는 경우가 많다. 하지만 모든 시스템에서 계정은 최소한의 필요한 권한만 주도록 하는 것이 보안의 시작이다. 이 문서는 MySQL 모니터링을 위한 계정 권한에 대해 다룬다. 계정생성 MySQL 8.0 기준으로 계정 생성은 다음과 같다. 이렇게 생성을 하고 난 후에 이제 GRANT 명령어를 이용해서 권한을 줘야 한다. 모니링을 위한 권한 부여 ‘ALL PRIVILEGES’ 로 모든 권한을 줘는 안되며 모니터링을 위한 […]

HowTo

Mint Linux 21.1 설정

오랫동안 민트 리눅스(Mint Linux) 를 데스크탑 운영체제로 사용해왔다. 정확하게는 데스크탑 PC 를 새로 맞춤과 동시에 설치해서 써왔는데, 이번에 데스크탑 PC 를 교체하게 되면서 민트 리눅스를 재설치해야하는 상황이 되어 그 동안 써왔던 민트 리눅스 설정을 기록으로 남긴다. XFCE 데스크탑 민트 리눅스 데스크탑은 세가지가 존재하는데, 그중에서 XFCE 데스크탑을 사용했다. 이 XFCE 를 만진지도 거의 20년이 넘었다. 솔라리스의 CDE 를 닮아서 쓰기 시작해서 지금까지 쓰고 있다. XFCE 는 가벼우면서도 복잡하지 않는 데스크탑이다. 그러다보니 별로 설정할게 존재하지 않는다. 데스크탑이라는 것이 어짜피 설치하고 나면 쓰는 […]