[학습 기록] Day68: 미니프로젝트2 시작

💡 pnpm이란?

pnpm은 Node.js에서 사용하는 패키지 매니저
자주 사용하는 npm, yarn이랑 같은 역할을 함.

🤔 그럼 왜 npm이나 yarn 대신 pnpm을 쓰는 거야?

✅ 1. 훨씬 빠르고 가볍기 때문

  • pnpm은 패키지를 중복으로 설치하지 않고, 링크(link) 해서 써.
  • 예를 들어, 같은 라이브러리를 client랑 server에서 쓰면,
    • npm은 각각 설치함 → 용량 낭비
    • pnpm은 한번만 저장소에 설치하고, 필요한 곳에 심볼릭 링크로 연결함 → 속도 빠름, 용량 아낌

🧠 비유:

npm은 책 복사해서 두 권 만드는 느낌,

pnpm은 책 하나 만들고 여러 곳에 공유 링크 거는 느낌이야.

 

✅ 2. 모노레포에 최적화

  • 프로젝트가 client, server, lib처럼 나뉘어 있을 때,
  • pnpm workspace를 쓰면 이걸 하나의 프로젝트처럼 관리할 수 있어!
  • 루트에서 한 번에 실행하고, 공통 의존성도 관리 가능함.

✅ 3. 더 안전한 설치

  • pnpm은 node_modules를 정리된 방식으로 만들어서,
  • 잘못된 의존성 설치나 버전 충돌을 줄여줘.
  • 특히 팀 프로젝트에서 "어? 이거 왜 내 환경에선 다르게 작동하지?" 같은 문제가 줄어듦.

🛠️ 기본 사용법

npm install -g pnpm
pnpm install          # 의존성 설치
pnpm add react        # 패키지 추가
pnpm remove axios     # 패키지 삭제
pnpm dev              # 실행 스크립트 (package.json에 정의한 것)

 

📦 우리가 사용한 구조 (예시)

vbnet
복사편집
pnpm-workspace.yaml
client/   👈 프론트엔드
server/   👈 백엔드
lib/      👈 공통 타입이나 유틸

  • 루트에서 한 번에 의존성 설치 및 실행 가능
  • 공통 설정, 공통 코드도 한눈에 관리 가능

"pnpm은 더 빠르고, 가볍고, 모노레포에 딱 맞는 최신 패키지 매니저야.

특히 client, server처럼 여러 패키지를 하나의 프로젝트처럼 관리할 수 있게 도와줘!"

 
 

회고

오늘은 드디어 내 인생 두번째 개발 프로젝트에 들어간다.
오늘은 서비스 기획과 노션환경 정리, 초기 빌드 환경 셋팅까지만을 마쳤다. 사실 탄탄한 기획이 빠른 결과물을 완성한다고 본다~~!
 
그리고 당연하지만...툴은 한번 다뤄본다고 체화되지는 않는 것 같다..^^
git으로 협업하는게 오랜만이라 금세 다 까먹어버려서 ㅋㅋㅋㅋㅋㅋ.... 팀원분이 pull request올린 것을 내가 바로 머지 해버렸다.
리뷰 하는것부터 다시 배워가는 하루ㅎㅎ.....
 
이 외에도 pnpm이라든가, 타입스크립트와 같이 처음 접해보는 스택을 이번 프로젝트에서 다 다루게 될 것 같다.
아직 부족한게 많은 나지만.... 이번 프로젝트는 저번에 비해 기간도 팀원도 더 널널하기에 개인공부 할 시간도 가질 수 있을 것 같다는 생각이 든다. 개인공부 시간때 틈틈이 pnpm, 타입스크립트, 리액트를 야금야금 공부해서 기여할 수 있도록 해야지!!
 
무엇보다 이런 프로젝트 경험이 굉장히 많으신듯한 팀원분이 계셔서 진행이 아주 매끄럽게 되었다. 
나도 내가 할 수 있는 역량을 최대한 발휘해야겠다.
api를 다루는 것도 각자 역할을 분담해서 하는 것도 모든 게 낯설기만 하지만 견뎌내보자ㅜ^ㅜ