본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

Nix 학습 곡선을 제대로 오르는 법

~11 min · nix, wisdom, learning

Level 0입문자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

Nix는 이 퀘스트의 패키지 관리자 가운데 중도에 포기하기 가장 쉬운 도구야. 아래 원칙을 따르면 언어와 생태계를 천천히 익히는 동안에도 실제 작업에 써먹을 수 있어.

nix shell부터 시작해. Nix를 설치하자마자 개발 흐름 전체를 바꾸려고 하지 마. 새 도구를 잠깐 시험할 때만 nix shell을 써 보고, 자연스러워지면 실제 프로젝트용 flake를 작성해. 그것까지 익숙해진 다음 nix-darwin을 살펴봐.

Channels를 건너뛰고 flakes로 가. nix-channel --add로 대표되는 오래된 channels 방식은 예전 안내서에 많이 나오지만 재현성을 해치기 쉬워. 새 코드는 현대적인 flake 기반 흐름을 사용하니 처음부터 그것을 배워.

search.nixos.org/packages를 활용해. 명령줄의 nix search도 작동하지만 웹 화면이 더 빠르게 훑기 좋고, flake에 쓸 정확한 속성 이름도 보여 줘.

첫 flake는 작동하는 시작점에서 출발해. MikaelFangel/nixos-config, srid/haskell-flake, numtide/devshell 같은 예제는 첫날부터 실행되는 구성을 제공해. 빈 파일에서 모든 것을 만들기보다 검증된 시작점을 조금씩 바꿔.

필요한 학습 시간을 받아들여. Nix는 조용한 오후 한 번으로 익힐 도구가 아니야. 하루 20분씩 2주처럼 꾸준한 시간을 잡아. 다른 패키지 관리자는 커피 한 잔 사이에 기본을 익힐 수 있지만, Nix는 한 계절에 걸쳐 익숙해지는 도구야.

Code

시험한 뒤 프로젝트에 반영하는 순서·bash
# Day 1: 그냥 시도
nix shell nixpkgs#ripgrep   # 한 시간 쓰고 종료

# Day 5: 한 도구 짜리 flake 작성
# (새 repo 의 root 에)
echo '{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  outputs = { self, nixpkgs }: {
    devShells.aarch64-darwin.default =
      (import nixpkgs { system = "aarch64-darwin"; }).mkShell {
        packages = with (import nixpkgs { system = "aarch64-darwin"; }); [ ripgrep ];
      };
  };
}' > flake.nix
nix develop

# Day 30: nix-darwin 이 Mac 전체 관리

External links

Exercise

앞으로 2주 동안 Nix를 한 가지 구체적인 습관에 연결해. (a) 실험용 도구를 전역 설치하는 대신 'nix shell' 쓰기, (b) 프로젝트 하나에 flake.nix 작성하기, (c) Zero to Nix 따라가기 중 하나만 골라 매일 해. 세 가지를 한꺼번에 벌이지 않으면 Nix가 피하고 싶은 도구가 아니라 믿고 쓰는 도구로 바뀔 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.