본문 바로가기
반응형

분류 전체보기213

pnpm Catalog로 monorepo workspace 패키지 버전 통일하기 📒 pnpm catalog로 monorepo workspace 패키지 버전 통일하기여러 프로젝트를 monorepo로 묶으면 반드시 공통으로 사용하는 패키지가 있기 마련입니다.예를 들자면 react, typescript, prettier, eslint, @types/.... 등등등아무래도 하나의 workspace에서 중복되는 패키지들을 동일한 버전으로 통일하면 여러모로 관리하기 용이하다고 생각되는데요.이럴 때 pnpm Catalog protocol을 사용한다면 이러한 고민들을 한방에 해결할 수 있습니다. 📌 pnpm Catalog란?pnpm Catalog는 workspce 기능으로, 의존성 버전 범위를 정의해 둔 상수입니다.패키지들의 버전을 pnpm-workspace.yaml에 catalog로 정의해 .. 2025. 3. 23.
Turborepo와 PNPM으로 Monorepo 시작하기 📒 Turborepo와 PNPM으로 Monorepo 시작하기요즘엔 모놀리식 혹은 멀티레포 구조보다 중복 코드와 의존성 관리 측면에서 유리한 모노레포 구조가 많이 사용됩니다.모노레포 구조를 구축하는 방법엔 여러 가지가 있지만 저는 Turborepo로 손쉽게 환경을 구축하는 방법을 소개합니다. 📌 Turborepo란?Turborepo는 Vercel에서 개발한 JS/TS 모노레포 빌드 시스템입니다.기존 모노레포 관리 도구인 Lerna나 Nx와 유사하지만, 더 빠르고 효율적인 빌드 성능을 제공합니다. 주요 장점은 다음과 같습니다.캐싱 및 병렬 실행같은 작업을 여러 번 실행하지 않고 결과를 캐싱하여 불필요한 중복 빌드를 방지여러 패키지의 빌드를 병렬로 실행하여 속도 최적화효율적인 의존성 분석각 패키지의 의존성.. 2025. 3. 16.
2025년 React Native 현황과 CLI vs Expo 비교분석 📒 2025년 React Native 현황과 CLI vs Expo Go 비교분석2023.07.13 - [React-Native] - React Native 장단점과 CLI, Expo 비교와 후기이 글을 쓴 지도 어언 1년 하고도 6개월이 지났습니다. 그동안 플러터가 치고 올라오며 RN은 이제 죽었나 생각이 들 때마다 무언가 하나씩 등장하며 엎치락뒤치락하는 상황이 반복되었습니다.정말 짧은 시간이었지만 그동안 RN이 0.76 버전까지 올라오며 어떤 변경점들이 있었는지 알아보고, 이제는 Expo를 마음 놓고 사용해도 될지 알아보겠습니다. 📌 Hermes Enginehttps://reactnative.dev/architecture/bundled-hermesHermes는 Meta에서 개발한 React Nati.. 2025. 1. 15.
[NextJS, NestJS] 오픈프차 - 프랜차이즈 정보 분석 🎙️ 오픈프차 - 프랜차이즈 정보 분석공정거래위원회의 가맹사업 정보공개서를 기반으로 창업 전, 프랜차이즈 본사 정보, 브랜드의 매출, 가맹점 수, 인테리어 금액, 창업 비용 정보를 편리하게 확인할 수 있습니다.1차 완성 후 회원, 로그인, 게시판 기능을 추가하려 했으나 취업하는 바람에 계속해서 미뤄지고 있습니다.완성도 2달 전에 했는데 이제서야 올리고 있네요. 원래 남들 돈 얼마버나 관심이 많아 관련 유튜버를 즐겨보는데, 특정 프랜차이즈 본사 분석하는 영상을 보며 순간적으로 아이디어를 얻게 되었습니다.아이디어 떠오르자마자 바로 만들기 시작해 프론트, 백엔드 개발과 배포까지 2주 정도 소요되었습니다.나름 구경하는 재미가 있으니 한번 씩 들려주세요~~URL오픈프차Github FrontendGithub Ba.. 2025. 1. 10.
[React Native] Android Native-Module Event Listener 만들기 📒 [React Native] Android Native-Module Event Listener 만들기Native 모듈을 만드는 것은 간단하지만 여기에 Event Listener가 더해진다면?찾아보아도 딱히 참고할 만한 예제도 없고, 업무 준비와 공부도 할 겸 제가 A부터 Z까지 만들어보고 기록합니다. 📌 폴더 및 파일 생성안드로이드 네이티브 모듈을 만들기 위해서는 자바 혹은 코틀린 파일을 다음과 같은 경로로 생성해주어야 합니다./android/app/src/main/java/패키지명/ 저는 모듈의 이름을 Event로 지었습니다.📌 모듈 파일 생성// EventModule.javapackage com.패키지명.event;import android.os.Handler;import android.os... 2025. 1. 10.
2년 차 주니어 프론트엔드 개발자 이직 후기 📒 2년 차 주니어 프론트엔드 개발자 이직 후기24년 6월 말에 퇴사.여행, 휴식, 공부를 하며 지내다 10월부터 취업 준비를 시작.12월에 이직 성공까지의 일들과 느낀 점을 회고해 봅니다. 📌 타임라인🔎 24.07 ~ 24.09, 퇴사부터 이직 준비 전출근의 압박도 사라졌고, 아직 도전은 해보지 않았기에 이직은 손쉽게 할 수 있을 거란 오묘한 가능성에 취해 살았습니다.거기에 첫 해외여행도 가보며 매일매일이 행복이었던 시간.그러나 아주 조금씩 덮쳐오는 취업의 압박에 조금씩 공부하며 휴식이 계속되는 나날들.그래도 어느정도 준비는 해놓았기에 여유는 있어, 이력서는 넣지 않고 하고 싶은 것만 하고 지냈습니다. 🔎 24.10 ~ 24.12, 이직 준비와 성공좀 쉬다보니 이제는 불안하기도 하고 일이 하고 .. 2025. 1. 7.
package.json scripts의 생명주기 스크립트, NPM LifeCycle Hook 📒 package.json scripts의 생명주기 스크립트, NPM LifeCycle Hook이번에 이직을 하게 되어 기존 코드를 이리저리 파악해 봤습니다.리드분과 Q&A를 하던 중 package.json scripts의 생명주기에 대한 이야기를 스치듯 들었고, 궁금해서 자세히 찾아보게 되었습니다. 📌 package.json의 scripts"scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint"},위는 next.js에서 흔히 보던 스크립트 필드입니다.해당 스크립트를 실행시키기 위해 사용하는 패키지 매니저에 따라 npm run dev / yarn dev / pnpm dev와 같.. 2024. 12. 30.
[ubuntu, fail2ban] 로그인 실패 횟수에 따라 IP 차단하기 📒 [ubuntu, fail2ban] 로그인 실패 횟수에 따라 IP 차단하기한 번씩 개인 서버에 들어가 로그인 시도 정보를 확인하면 정말 하루종일 무작위 공격을 시도하는 것을 확인할 수 있습니다.괜히 전기요금 더 나올 것 같아 방어하려고 찾아보던 중 fail2ban이란 툴을 발견했습니다. 📌 fail2banfail2ban은 SSH 로그인 실패 횟수에 따라 IP를 차단시켜 주는 툴입니다.무작위 공격 특성상 IP를 차단하는 것만으로도 어느 정도 예방이 가능합니다. 🔎 설치$ sudo apt update$ sudo apt install fail2ban -y 🔎 설정파일 수정기본 설정 파일을 복사해 줍니다.$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.lo.. 2024. 12. 10.
Github-Actions Playwright Test Report 결과 PR Commnet로 남기기 📒 Github-Actions Playwright Test Report 결과 PR Commnet로 남기기Github Actions 파이프라인에서 Playwright로 E2E 테스트를 진행하고, 테스트 결과 및 소요 시간을 Pull Request Comment로 남기는 방법을 소개합니다. 📌 Playwright Report output 설정playwright.config.ts 파일에서 테스트 결과 report를 다음과 같이 설정해 주었습니다.export default defineConfig({ ... reporter: process.env.CI ? [["json", { outputFile: "results.json" }]] : "line", ...});Github Action 환경에서 돌아갈 때는.. 2024. 12. 1.
반응형

오픈 채팅