blog.stackframe.dev

전체 글 (61)

fallocate 함수 사용법과 예제

fallocate()는 리눅스 전용의 파일 공간 할당에 관련된 작업을 하는 함수이다. 블록 할당, 해제, 초기화 등 여러가지 작업을 할 수 있지만 그만큼 사용하는 방법도 복잡해지기 때문에 정리한다.

real 타입과 numeric 타입 비교 문제

PostgreSQL 데이터베이스의 테이블에서 특정 실수 값인 레코드를 찾으려고 WHERE val = 123.4 이런 식으로 쿼리를 했으나 어떤 레코드도 나오지 않았다. 하지만 분명 해당 값은 존재했다. 약간의 삽질 끝에 비교가 되지 않는 이유를 알아냈다.

[Nginx] IP로 접속 시 인증서가 노출되지 않게 하기

Nginx를 사용중인 서버에 HTTPS 포트인 443에 도메인 대신 IP로 접속하면 가장 먼저 설정된 HTTPS 서버의 인증서가 전달되고 브라우저에는 인증서 경고가 뜬다. 이때 인증서를 확인하는 것으로 이 서버에 어떤 사이트가 설정되어 있다는 정보가 노출될 수 있다.

Postfix를 DNS 서버 실행 이후에 시작하기

나는 DNS 서버와 메일 서버를 동일한 컨테이너에 넣어서 관리한다. 문제는 Postfix가 DNS 서버인 PowerDNS보다 먼저 실행되어 메일 서버 도메인을 찾지 못하고 실행에 실패한다는 것이다.

알리발 step down 컨버터 UART 통신으로 전압, 전류 가져오는 방법

이전 글인 슈퍼 커패시터로 라즈베리파이용 무정전 전원장치 만들기에서 사용했던 step down 컨버터이다. 이 컨버터는 단순히 현재 전압과 전류를 표시할 뿐만 아니라 UART 통신을 통해 가져올 수 있다. 하지만 상품 설명을 보면 통신 방법이 매우 빈약하게 설명되어 있다.

슈퍼 커패시터로 라즈베리파이용 무정전 전원장치 만들기

가끔씩 누전차단기가 내려가서 서버로 사용중인 라즈베리파이가 꺼져버리는 경우가 있다. 이 때문에 전원이 복구될 때까지 전기를 공급해주는 방법을 연구해보았다.

mime_content_type() 함수로 파일 MIME 타입 알아내기

파일 업로드를 구현할 때 특정 타입의 파일만 업로드 가능하도록 제한하고 싶은 경우가 있다. 이걸 구현하기 위해 파일 이름에서 확장자를 분리하거나 브라우저로부터 파일을 업로드 할 때 전달되는 MIME 타입을 사용하는 경우가 많다. 하지만 이 방법들은 사용자의 입력을 순순히 받아들인다는 점에서 악용 될 가능성이 존재한다.

UNLOGGED 테이블

PostgreSQL에는 MySQL, MariaDB의 MEMORY 스토리지 엔진 같은 기능이 존재하지 않는다. 그래서 캐싱이나 임시 데이터 저장 용도로 PostgreSQL을 사용하면 오버헤드가 꽤 있다.

[Arch Linux ARM] CPU 최대 클럭 고정 문제 해결방법

Arch Linux ARM은 각 플랫폼마다 고유의 패치가 들어간 리눅스 커널 패키지(linux-raspberrypi4, linux-aarch64-chromebook...)외에도 아키텍쳐가 같은 다양한 플랫폼에서 실행 가능할 수도 있는 리눅스 패키지(linux-aarch64, linux-armv7...)도 제공한다. 문제는 이 다양한 플랫폼에서 사용할 수 있는 리눅스 패키지는 CPU 클럭을 최대로 고정시켜 버린다는 것이다.

라즈베리파이 블루투스 장치가 표시되지 않는 문제 해결방법

아치리눅스 환경에서 UART 기능을 사용하기 위해 문서를 읽어보고 설정하려 했더니 이미 /dev/ttyAMA0 장치가 표시되고 있고 블루투스는 장치 자체가 나오지 않았다.

1 2 3 4 5 6 7