Devleo’s Blog

👋 정보보안, AI, 블록체인, 프로그래밍을 공부하는 학생입니다.
현재 U.S. 8th Army에서 KATUSA로 군복무 중입니다.
 
📨 Contact - i[at]devleo[dot]us
 

Rocky Linux 9에서 Python 3.14 설치

sudo dnf update -y sudo dnf install tar curl gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make findutils -y sudo dnf groupinstall "Development Tools" -y cd /opt sudo wget https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tar.xz sudo tar -xf Python-3.14.0.tar.xz cd Python-3.14.0 sudo ./configure --enable-optimizations sudo make -j $(nproc) sudo make altinstall python3.14 --version

December 25, 2025 · 1 min · 47 words · Me

Hugo로 만든 정적 사이트 암호화하기 🔒

hugo-protector Hugo 블로그에서 민감한 콘텐츠를 AES-256-GCM으로 암호화하고, 방문자가 비밀번호를 입력하면 브라우저에서 직접 복호화하여 보여주는 라이브러리다. 왜 만들었나? Hugo와 같은 정적 사이트 생성기를 사용하면 빠르고 간단하게 정적 웹사이트를 만들 수 있다. 하지만 정적 사이트는 동적 사이트에 비해 기능이 제한적일 수 있다. 특히 자바스크립트를 통해서 서버와 통신을 한다던지, 로그인 기능을 제공하는 것은 어렵다. Hugo로 블로그를 운영하면서 특정 콘텐츠는 비공개로 유지하고 싶을 때가 있다. Hugo는 정적 사이트 생성기이기 때문에 서버 측 인증을 구현하기 어렵고, git에 소스를 저장할 때 민감한 내용이 평문으로 남으면 보안상 문제가 된다. 이때 필요한 것이 네이버 블로그, 티스토리 등에서 쓰이는 비밀 글 기능이다. Hugo 블로그의 모든 코드를 public으로 공개하고 싶고, commit history에는 비밀 글과 관련된 내역을 남기고 싶지 않은 사람들을 위해 hugo-protector를 개발하게 되었다. ...

December 8, 2025 · 7 min · 1440 words · Me

Nginx Proxy Manager로 딥 웹(Tor)에 정적 사이트 서빙하기 🧅

Tor 설치 및 Nginx Proxy Manager 세팅 sudo dnf install tor services: app: image: 'docker.io/jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt 위와 같이 docker-compose.yml를 작성하고 컨테이너를 실행한다. http://<host>:81 에 접속해서 기본 세팅을 마무리한다. 정적 파일 서빙 할 컨테이너 세팅 services: hugo-static: image: nginx:alpine container_name: hugo-static volumes: - <정적 파일 디렉토리>:/usr/share/nginx/html:ro restart: unless-stopped networks: - npm_net ports: - "<외부 포트>:80" networks: npm_net: external: true docker compose up -d 리버스 프록시 생성 sudo -i cat /var/lib/tor/hidden_service/hostname .onion 도메인을 확인한 후, Nginx Proxy Manager 웹 UI에서 Proxy Hosts 메뉴로 이동 후 Add Proxy Host 버튼을 클릭한다. ...

December 8, 2025 · 1 min · 113 words · Me

Linux에서 Matrix Synapse 서버 설치하기

개요 이 글과 비슷한 내용이다. 나는 홈서버를 Xpenology 환경을 사용할 때도 있고 일반 리눅스 환경을 사용할 때도 있어서 다시 정리하는 글이다. Synology NAS가 아닌 일반 Linux 서버 환경에서 Docker를 활용해 Matrix Synapse 서버를 설치하는 방법을 다룬다. Synapse Homeserver 생성 mkdir {data,db};sudo docker run --rm \ -v ./data:/data \ -e SYNAPSE_CONFIG_PATH=/data/homeserver.yaml \ -e SYNAPSE_SERVER_NAME=<서버 주소> \ -e SYNAPSE_REPORT_STATS=no \ matrixdotorg/synapse:latest generate homeserver.yaml 설정 수정 data 폴더 안의 homeserver.yaml 파일에서 server_name: "..." 밑에 다음 내용을 추가한다. enable_registration: true enable_registration_without_verification: true enable_group_creation: true database: name: sqlite3 args: database: /data/homeserver.db 위의 내용을 삭제하고 아래 내용으로 replace 한다. ...

October 30, 2025 · 2 min · 325 words · Me

Icecast 서버로 인터넷 라디오 방송국 만들기 ❄️

서문 지금으로부터 약 3년 전, 딥 웹을 탐험하던 중 장르 별로 음악을 실시간 스트리밍할 수 있는 인터넷 라디오 방송국 사이트에 들어갔다. 딥 웹 특유의 음산한 느낌과 함께 희안한 장르의 음악을 들으니 나도 이런 서비스를 만들어보고 싶다는 생각이 들었다. 그렇게 생각만 하다가 몇 개월 전 드디어 실행에 옮기게 되었다. 그때는 Icecast같은 실시간 송출 프로그램의 존재를 전혀 모른 채 nodejs로 이를 구현하려고 했다. 무언가 만들어지기는 했는데 (당시 커밋), 청취자가 음악을 들을 수 없을 수준으로 소리가 끊겼다. 한계를 느껴 이 프로젝트는 잠시 제쳐두었던 중, 며칠 전에 vlc 플레이어에서 이런 기능을 발견했다. ...

October 27, 2025 · 3 min · 523 words · Me

Synology NAS에 Matrix Synapse 설치하기

도메인 관련 설정 채팅 서버를 운영하고 싶은 subdomain을 세팅한다. 제어판 > 로그인 포털 > 고급 > 역방향 프록시에서 위와 같이 설정한다. 연결성 관련 설정 사용자 지정 머리글 (커스텀 헤더) 생성 시 websocket을 선택하여 위와 같이 설정한다. 제어판 > 네트워크 > 연결성에서 HTTP/2 활성화를 체크한다. 제어판 > 보안 > 고급에서 HTTP 압축 활성화를 체크한다. Synapse 컨테이너 세팅 File Station에서 docker 폴더 밑에 synapse 폴더를 만든다. ...

July 12, 2025 · 2 min · 226 words · Me

📱 Pocophone F1 커스텀 롬 설치 가이드

2021.03.05. 작성된 글입니다. 1. 설치 전 주의사항 1.1 서문 📢 본 노션 페이지는 Xiaomi Pocophone F1에 Android Custom ROM을 설치하는 방법에 대해 쉽게 기술한 페이지입니다. Poco F1 뿐만 아니라 다른 Xiaomi 스마트폰에도 비슷하게 적용될 수 있으나 필자는 Poco F1 사용자로, 해당 스마트폰에 최적화된 방법에 대해 다루고 있습니다. 1.2 주의사항 ⚠️ Custom ROM 작업을 하다가 “벽돌” 상태가 되거나, 스마트폰이 정상적으로 작동하지 않는 상황에 대해 책임을 지지 않으며, warranty void가 됨을 미리 알려드립니다. ...

July 11, 2025 · 4 min · 640 words · Me

맥북에서 R Studio 설치 오류 해결 💡

2022.03.08. 작성된 글입니다. R 설치 이곳에서 모든 버전을 볼 수 있고, 여기서 m1 맥을 위한 R을 설치할 수 있다. R Studio 설치 R 언어를 쉽게 다룰 수 있도록 R Studio를 설치할 것이다. 이곳에서 맥 버전을 다운받을 수 있고, Intel 기반이라 m1에서는 rosetta 위에서 돌아가게 된다. R Studio 설치 에러 해결 dyld[12119]: terminating because inserted dylib '/Library/Frameworks/R.framework/Resources/lib/libR.dylib' could not be loaded: 이런 식의 에러가 난다면 아래의 명령어를 통해 해결할 수 있다. cd /Applications/Rstudio.app/Contents/MacOS mv rsession rsession-x86 ln -s rsession-arm64 rsession xattr -r -d com.apple.quarantine /Applications/RStudio.app

June 18, 2025 · 1 min · 84 words · Me

스마트폰에 Debian 설치하기

23.11.28에 작성된 글입니다. 준비물 Android 스마트폰 PC 케이블 주의사항 가이드를 정확하게 따라오지 않으면 스마트폰이 부팅되지 않는 벽돌현상이 발생할 수 있다. 반드시 스마트폰의 모든 데이터를 백업한 후 진행해야 한다. 필자는 손실된 데이터에 대해 책임지지 않는다. 삼성 스마트폰 사용자라면 삼성 KNOX 워런티가 깨진다. 순정으로 복구해도 삼성 헬스, 삼성 페이 등 KNOX 관련 앱들을 **영구적으로 사용할 수 없게 된다. 스마트폰을 가볍게 이 작업은 선택사항이지만 더 가벼운 환경에서 서버를 사용하고 싶으면 진행할 것을 권장한다. 삼성의 OneUI, 샤오미의 MIUI (현 HyperOS), Oppo의 ColorOS 등의 사용자 인터페이스는 각 제조사 별 자체 기능과 개성을 더하기 위해 순정 Android를 개조하여 만든 것인데, 이 때문에 배터리가 빨리 닳거나 느려지는 현상이 발생할 수 있다. ...

June 16, 2025 · 3 min · 518 words · Me

정체불명의 글자?

사건의 발단 고등학교 때 만든 발표 자료들을 살표보던 중, 수학 시간에 Fast Fourier Transform에 대해 발표한 자료를 보다가 사건이 시작되었다. 대략적으로 푸리에 급수, 변환, 활용 예시, DFT, FFT에 대해 설명하고 FFT의 원리를 활용한 프로그램을 개발한 것이 내용이다. FFT의 원리를 활용해 간단한 Audio Visualizer를 웹으로 구현했고, 발표 후반부에 직접 시연을 하기 위해 위와 같이 링크를 첨부했다. 분명히 내 기억으로는 해당 repository의 github pages가 활성화가 되어있는데 링크를 접속해보니 404가 떴다. ...

March 2, 2025 · 2 min · 320 words · Me