본문 바로가기
오늘의 소니

오늘의 금소니 #7 - Nix란?, Caddy란

by 금소니 2026. 6. 22.
반응형

오늘의 금소니 #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 웹 서버를 사용하는데 적합하였습니다.

 

실제 설치하여 간단한 웹 서비스를 띄우는데 타 웹 서버에 비해 설정도 간단하고 더 편리하게 사용할 수 있었습니다.

반응형

댓글