전체 글 (912) 썸네일형 리스트형 [ Security ] 보안 업데이트 자동 적용과 의존성 취약점 자동 점검 예를 들어 Ubuntu 서버라면 OS 보안 패치는 unattended-upgrades로 자동 적용할 수 있고, Docker 이미지까지 포함하면 Trivy나 Grype로 이미지·파일시스템 취약점을 정기 스캔할 수 있습니다. 애플리케이션 의존성은 언어별 도구를 쓰는 게 좋습니다. Python은 pip-audit, Node.js는 npm audit 또는 pnpm audit, Java는 OWASP Dependency-Check나 Snyk, Rust는 cargo audit, Flutter/Dart는 dart pub outdated와 외부 취약점 DB 연계를 조합할 수 있습니다.실무에서는 보통 이런 식으로 구성합니다.매일 또는 매주 OS 보안 업데이트 확인GitHub Dependabot/Renovate로 라이브러리.. [ PlantUML ] PlantUML 설치 및 사용 VS Code에서 PlantUML을 사용하면 텍스트로 UML을 작성하고 바로 미리보기·PNG/SVG 내보내기를 할 수 있습니다. 현재도 가장 널리 쓰이는 VS Code 확장은 jebbs.plantuml의 PlantUML입니다. Visual Studio Marketplace1. 확장 설치VS Code에서:Ctrl + Shift + X검색창에:PlantUML을 입력하고 PlantUML (jebbs) 을 설치합니다.명령 팔레트에서 직접 설치할 수도 있습니다.Ctrl + Pext install plantuml``` :chatgpt-content-reference{index="1"}### 2. `.puml` 파일 만들기예를 들어 프로젝트에 다음처럼 구성하는 것을 권장합니다.```textproject/├── src.. [ HAProxy ] Caddy 사용하기 Caddy의 기본 사용법은 외부에서 들어오는 80/443 포트를 Caddy가 받고, Caddy가 내부 서비스로 전달하도록 구성하면 됩니다.예를 들어 FastAPI가 8000, ThingsBoard가 8080에서 실행되고 있다면 전체 구조는 다음과 같습니다.Internet │ ├── HTTP :80 └── HTTPS :443 │ ▼ Caddy │ ┌─────┴─────┐ ▼ ▼ FastAPI ThingsBoard :8000 :8080Caddy가 HTTPS 인증서 발급·갱신과 HTTP→HTTPS redirect를 자동으로 처리합니다. 공식 문서에서도 도메인이 Caddyf.. [ HAProxy ] Caddy, HAProxy, Nginx 조합 Caddy, HAProxy, Nginx 조합은 어떻게 구성하는 것이 좋을까?웹 서비스를 외부에 공개하려고 하면 보통 다음과 같은 요구사항이 생긴다.HTTPS 적용Let's Encrypt 인증서 발급 및 갱신Reverse Proxy여러 도메인 또는 서브도메인 라우팅Load BalancingHTTP뿐 아니라 MQTT, PostgreSQL 등의 TCP 서비스 Proxy이때 자주 등장하는 프로그램이 Caddy, Nginx, HAProxy다.세 프로그램 모두 일부 기능이 겹치기 때문에 처음에는 무엇을 선택해야 할지 애매할 수 있다. 특히 Caddy를 단순히 HTTPS 인증서를 관리하는 프로그램으로 생각하면 HAProxy나 Nginx와 어떻게 조합해야 하는지가 더 헷갈린다.이 글에서는 세 프로그램의 역할과 대표적인.. [ Minio ] 설치하는 방법 가장 편한 방법은 Ubuntu + Docker Compose로 구성하는 것입니다. 다만 2026년 현재 MinIO 배포 방식에 큰 변화가 있습니다. 기존 오픈소스 minio/minio 저장소는 2026년 4월 25일에 archived되어 더 이상 유지보수되지 않고, 현재 공식 제품은 MinIO AIStor Free/Enterprise입니다. AIStor Free는 단일 서버에서 무료 사용 가능하지만 라이선스 파일이 필요합니다. (GitHub)1. MinIO 서버 구조보통 이렇게 구성합니다.Application │ │ S3 API ▼MinIO :9000 │ └──── /data ├── bucket1 ├── bucket2 └── .... [ Linux ] 고정 ip 사용하기 Ubuntu 콘솔에서 IP 주소를 할당하는 방법은 임시 할당(재부팅 시 초기화)과 영구 할당(Netplan 설정) 두 가지 방식이 있습니다.1. 네트워크 인터페이스 이름 확인먼저 설정을 적용할 인터페이스 이름(예: eth0, enp3s0 등)을 확인합니다.Bash ip link show2. 임시 IP 할당 (ip 명령어)테스트나 즉각적인 연결이 필요할 때 사용하며, 재부팅 시 설정이 사라집니다.고정 IP 추가:Bash sudo ip addr add 192.168.1.100/24 dev enp3s0인터페이스 활성화:Bash sudo ip link set enp3s0 up기본 게이트웨이 추가:Bash sudo ip route add default via 192.168.1.1 dev enp3s03. 영구 IP.. [ Git ] Gitea 설치하고 사용하기 Gitea는 Go 언어로 작성된 가볍고 빠른 오픈소스 셀프 호스팅 Git 서비스입니다. 리소스 소모가 적어 가벼운 서버나 NAS, 로컬 환경에서도 Docker Compose를 이용해 손쉽게 구축할 수 있습니다.Gitea 설치 (Docker Compose 기준)1.작업 디렉토리 생성 및 docker-compose.yml 작성:PostgreSQL 데이터베이스 연동 구성.작업할 디렉토리를 생성하고 docker-compose.yml 파일을 작성합니다.YAML version: "3"networks: gitea: external: falseservices: server: image: gitea/gitea:latest container_name: gitea environment: -.. [ SSH ] ssh로 파일 시스템 연결하기 (vscode SSH 대비 가벼움) SSHFS란?SSHFS는 SSH/SFTP 연결을 이용해 원격 리눅스 폴더를 Windows 드라이브처럼 보이게 하는 방식입니다.예를 들어 Raspberry Pi의:/home/daewon/project를 Windows의:R:\로 연결합니다. 그러면 Windows VS Code에서 R:\를 열고 일반 폴더처럼 파일을 편집할 수 있습니다.Windows VS Code ↓ 파일 열기·저장R: 드라이브 ↓ SSH/SFTPRaspberry Pi /home/daewon/project파일을 저장하면 Raspberry Pi의 원본 파일이 바로 변경됩니다. 별도의 동기화나 업로드 과정은 없습니다. SSHFS는 대부분의 SSH 서버에 기본 제공되는 SFTP를 사용하므로, Raspberry Pi에는 일반적으로 SSH .. 이전 1 2 3 4 ··· 114 다음