Pnpm: Fast & efficient 패키지 관리자
·
프로그래밍/도구
TL;DRhard-link 기반의 효율적인 의존성 관리 툴이다.빠른 속도, 적은 용량을 사용하는 패키지 관리자이며 MonoRepo에 유용하다. Pnpm (Performant npm)공식문서의 Motivation 항목이다.아래의 그림으로 Pnpm의 특징을 이해할 수 있다.중앙 저장소에 의존성을 설치한다.그리고 /node_modules에서는 hard-link를 통해 중앙 저장소를 참조한다.한 번만 설치하면 되기 때문에, 속도와 용량이 줄어드는 건 당연한 이야기이다.모노레포를 운용하게 된다면, 이 효율성은 더욱 체감이 될 것이다. 그렇다면, npm과 yarn은 이 문제를 몰랐을까?  Npm, Yarn과 /node_moduels의 투쟁기Npm과 Yarn의 초기버전에도 이러한 문제를 인지하고 있었다.그래서 종속모..
Variable 회고 일지
·
프로그래밍/기본기
서론Variable(변수)는 변하는 값이라는 뜻이다.프로그래밍에서의 변수라는 개념도 개념적으로는 동일하다. 프로그래밍을 처음으로 시작한 2019년 3월부터,졸업을 앞둔 2025년 2월까지 개발 피지컬은 조금씩 늘어왔다. (여전히 못한다.) 그리고 변화양상은, 내가 개발에 있어서 기본적인 정의들을 어떻게 대했는가에서 드러난다. 대학생활의 마무리를 지으며,'변수'에 대한 관점의 변화를 회고하려 한다.  변수란 무엇인가?Wiki백과에서는, "하나의 값을 저장할 수 있는 기억공간"이라고 서술한다. 변수의 목표는 값을 재사용하는 것이다.우리가 원하는 '단어'로 값을 사용하고 싶은 것이다.그렇다면 다음의 조건을 충족해야 한다. 1. 메모리 어딘가에 저장되어야 한다.2. 변수이름으로 그 값을 찾아낼 수 있어야 한다...
UV: Rust 기반 python_manager
·
프로그래밍/도구
서론python의 패키지 관리자는 pip -> poetry -> pdm 등 많은 것들이 등장했고,Rust의 인기를 업고 uv가 등장했다. pip대비 10 ~100배의 속도 & python 설치 및 관리라는 매력적인 특성이 있다. 목표어떤 기능을 제공하는지 정리기존의 어떤 문제점을 해결했는지 이해  핵심 명령어1. 프로젝트 생성# 애플리케이션 생성uv init {app_name}# 라이브러리 생성uv init --lib {lib_name}# 확장 모듈 생성 (maturin: Rust, scikit-build-core: C계열)uv init --build-backend maturin {ext_name}배포용인 프로젝트와, 아닌 프로젝트를 구분할 수 있게 해준다.Rust나, C기반의 성능이 중요한 프로젝트를 ..
Statement와 Expression
·
프로그래밍/기본기
서론Statement는 한글로 '문'이고,Expression은 한글로 '표현식'이다. 프로그래밍을 해봤다면 조건'문', 반복'문' 등을 필히 들어 봤을 것이다.또한 '표현식'도 분명 들어봤을 것이다. Statement(문), Expression(표현식)에 대해 설명을 할 수 있는가?   목표Statement와 Expression의 차이점에 대해 이해한다.Expression의 특징 때문에 일어나는 일을 이해한다.  Statement란?프로그램을 구성하는 기본 단위이자 최소 실행 단위선언'문', 조건'문', 반복'문' 처럼 하나의 최소 실행 단위이다.;(세미콜론)은 하나의 Statement가 종료 되었음을 의미하는 것이다.조건문이나 반복문은, {}(중괄호)를 이용해서 범위를 표현하지 않는가?이를 block-..