오늘의 금소니 #7

1. Nix란?

최근 개발 프로젝트를 참여하면서 새로운 기술 스택에 대해 공부가 필요하여 정리하고자 합니다.
요즘 워낙 다양한 플랫폼을 이용하고 있다보니 이를 한 번에 제어할 수 있는게 있을까 싶어서 알아보던 중 Nix 운영체제를 알게 되었습니다.
Nix란? 유닉스 계열 운영체제에서 소프트웨어 설치와 시스템 설정을 코드로 관리하는 선언적 패키지 관리자입니다.
여기서 선언적 패키지 관리자란? 원하는 상태에 대해 코드로 적어두면 프로그램이 그 상태를 만들어주는 도구입니다.
즉, 프로그램 설치와 개발 환경을 원하는 대로 작성한다면 재현할 수 있게 해주는 도구입니다.
다들 개발을 하다보면 다양한 환경에서 사용하고 이를 맞추다보면 정말 많은 시간을 보내기도 합니다.
그리고 가끔은 이 과정에서 호환성때문에 문제가 발생하곤 합니다.
Nix를 사용한다면 이를 설정 파일에 정리하여 동일한 환경으로 만들 수 있습니다.
예를들어 제가 개발을 하고 싶은 프로젝트가 아래와 같은 개발 스택으로 사용한다면 이를 설정파일에 적용할 경우 협업하는 개발자가 동일한 개발 환경을 구성할 수 있습니다.
- Python 3.21
- Node.js 22
- PostgreSQL 17
저는 오히려 반대 입장에서 협업하는 개발자가 생성한 개발 환경을 통해 손쉽게 구성할 수 있었습니다.
사용은 간단하게 사용하고 있는 개발 장비에서 Nix를 설정한 뒤 프로젝트 내에 있는 Nix 설정파일(flake.nix)을 실행하여 구성할 수 있습니다.
2. Caddy란?

다음으로는 이번 프로젝트에서 처음으로 사용하는 Caddy 웹 서버에 대해서 알아봤습니다.
Caddy란? 복잡한 서버 설정없이 웹 서비스를 안전하게 공개할 수 있게 도와주는 현대적인 웹 서버라고합니다.
웹 서버에는 정말 많은 종류가 있습니다.
그 중에서 대부분 많이 사용하는 웹 서버가 Apache와 Nginx이고 이 두 웹 서버는 저도 많이 사용했습니다.
Caddy라는 웹 서버는 이번에 처음 사용해봤는데 여러가지 면에서 편리하게 사용할 수 있다고 합니다.
Caddy 웹 서버의 장점은 아래와 같습니다.
1) 설정 파일이 매우 쉽다.
: 타 웹 서버에 비해 설정 파일 작성이 간단하고 가독성이 좋습니다.
2) HTTPS를 자동으로 설정해준다.
: 타 웹 서버에 비해 HTTPS를 적용하는 과정이 훨씬 쉽고 간단합니다.
3) 빠르게 배포가 가능하다.
: 초보자도 쉽게 접할 수 있고 위 과정을 포함하여 간단하고 빠르게 배포할 수 있습니다.
반면 단점은 아래와 같습니다.
1) 상용화 서비스에는 적합하지 않다.
: 간단한 서비스에는 적합하나 복잡하고 대형 서비스에는 부족한 면이 있습니다.
2) 설정이 다양하지 않다.
: 복잡하거나 다양한 설정의 경우 타 웹 서버에 비해 부족합니다.
3) 커뮤니티가 부족하다.
: 타 웹 서버에 비해 역사가 짧아 비교적 커뮤니티가 부족합니다.
저의 경우에는 이번 개발 프로젝트는 자체적으로 사용할 예정이며, 규모도 작아 Caddy 웹 서버를 사용하는데 적합하였습니다.
실제 설치하여 간단한 웹 서비스를 띄우는데 타 웹 서버에 비해 설정도 간단하고 더 편리하게 사용할 수 있었습니다.
'오늘의 소니' 카테고리의 다른 글
| 오늘의 금소니 #9 -월드컵 남아공전 패배, 조별 리그 탈락?, EOL과 EOS의 차이 (0) | 2026.06.26 |
|---|---|
| 오늘의 금소니 #8 - Proxy와 Reverse Proxy의 차이 (0) | 2026.06.23 |
| 오늘의 금소니 #6 - 국내 주식 시총 1위 추월의 순간(SK 하이닉스, 삼정전자) (0) | 2026.06.22 |
| 오늘의 금소니 #5 - 키 미노 나마에 와(feat, 김민호 남한에와), 상추야 왜 안 자라니... (0) | 2026.06.22 |
| 오늘의 금소니 #4 - 멕시코전 너무 아쉽다, 이전에 살던 사람의 우편 (0) | 2026.06.19 |
댓글