이미지를 PDF로 만들기 & PDF 합치기 등

1. Image를 pdf로 변환하기 
- 온라인에서 image를 pdf로 변환하는 툴은 많으나, 사용하지 말길 권한다. 중요한 정보가 인터넷에 누출될 가능성이 있다.
- 예전에는 ImageMagick 으로 이미지를 pdf로 변환할 수 있었으나, 이제 더 편리한 도구가 나왔다. 
- Python에서 동작 가능한 img2pdf 가 그것이다. 
- 설치 (Python이 설치되어 있다고 가정하면)

$ pip install img2pdf 

- 실행

$ img2pdf 1.jpg 2.jpg 3.jpg --pagesize A4 -o out.pdf 

2. PDF 병합/분할/회전하기
- pdfsam 이라는 툴을 사용하면 된다. 무료버전도 있으므로 유용하다. 
- 다운로드: https://pdfsam.org/ko/ 

nmcli: Network Manager의 CLI 명령 요약

Network Manager의 CLI 명령어인 nmcli의 주요 사용예를 정리함. 


1. 네트워크 인터페이스 보기 

$ nmcli con show

NAME                UUID                                  TYPE      DEVICE

Wired connection 1  8e2a801b-6074-30bc-9039-8f90d51ad28d  ethernet  eno2

tun0                d0a9ab3e-5373-44e4-8312-ee088c35cdae  tun       tun0


2. 고정 IP로 변경하기 

$ nmcli con mod "Wired connection 1" connection.autoconnect yes

$ nmcli con mod "Wired connection 1" ipv4.address 192.168.1.206/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 1.1.1.1"  ipv4.method manual

$ systemctl restart NetworkManager.service



3. Wifi 상태 확인

# wifi 상태 확인
$ nmcli radio wifi

# wifi 켜기
$ nmcli radio wifi on

# AP 리스트 보기
$ nmcli device wifi list
# AP 연결
$ nmcli device wifi connect <My_AP> password <Some_Password>

4. nmtui 를 이용하면 복잡한 명령어를 외우지 않아도 됨. 

설치
$ sudo apt install nmtui 


$ nmtui




OpenVPN 세팅하기

OpenVPN 네트워크를 구축한 경험을 정리했다. 

OpenVPN은 VPN(Virtual Private Network) 솔루션 중에서 가장 많이 사용되고 있다. OpenVPN은 상업용 제품도 팔고, 클라우드 서비스도 제공하지만, 오픈소스인 Community Edition도 제공한다. 

이 글은 OpenVPN Community Edition의 설치와 운용에 대한 내용이다. 

Ubuntu 16.04(Xenial)에 Python 3.9 설치하고 mod_wsgi 빌드하기

나는 몇년 전에 개발된 Django 기반의 웹 프로젝트를 인수받아 운영하고 있다. 

프로젝트의 규모가 꽤 크고 공공기관 고객도 꽤 있어서 여간 신경쓰이는 게 아니다. 그런데 어느날 다음과 같이 Python을 업그레이드하라는 경고 메시지가 나오기 시작했다. 

Cryptography 모듈이 다음 버전부터 Python 3.5를 지원하지 않는다는 통보이다. 공공기관들은 나름대로 보안 규칙이 있어서, 보안 결함이 발견된 모듈에 대해서 업그레이드를 해주어야 한다. 그래서 Python 버전을 올리고 Cryptography 모듈도 버전을 올리면 되는데, 그것이  그리 간단한 문제가 아니다. 

Django Form의 Validation

Django의 폼 검증(Form Validation)은 데이터가 클린(Clean)될 때 이루어진다. 이 과정을 커스터마이징하는 것은 검증의 여러 단계에서 가능하다. 이 과정에서 ValidationError 예외를 일으키는 식으로 검증의 실패를 표현한다. 

기본적은 검증은 validator를 통해 이루어진다. validator는 인자 하나를 받아 검증한 다음, 실패하면 예외를 발생한다. 이 validator는 각 필드에 대해 to_python()과 validate()를 실행한 다음, 호출된다. 

경우에 따른 Git 명령어 (Git Cheatsheet)


Git은 코딩하는 사람들에겐 매우 요긴한 도구이지만, 난해한 개념 때문에 문제가 생겼을 때 대처하기 어려워하는 경우가 많다. 나 역시 마찬가지여서, 문제가 생겼을 때 해결했던 방법을 이 글에 기록하고자 한다.

먼저 Git을 쓰는 사람이라면 다음 개념은 명확히 알고 있어야 한다. Git을 쓸 때 우리가 다루는 공간은 크게 작업트리(Working Tree), 스테이징 영역(Staging Area), 로컬 저장소(Local Repository), 원격 저장소(Remote Repository) 4가지로 나눌 수 있다. 이 개념부터 명확히 이해해야 한다.


인기글