전체 글246 [Node.js] 멀티코어 전략과 비동기 모델의 진화 Java 개발자가 Node.js를 파헤치다 — Week 2: 멀티코어 전략과 비동기 모델의 진화Week 1에서 Node.js의 싱글스레드 + 이벤트 루프 모델을 이해했다. 이번 주에는 "싱글스레드의 한계를 어떻게 극복하는가"를 다룬다. Worker Threads, Cluster 모듈로 Node.js가 멀티코어를 활용하는 방법을 살펴보고, Java 진영의 Spring WebFlux와 Virtual Threads까지 비교하며 두 생태계의 비동기 모델이 어떻게 진화해왔는지 정리한다.1. Worker Threads — Node.js도 멀티스레드가 된다싱글스레드의 치명적 약점: CPU-boundWeek 1에서 Node.js의 싱글스레드 모델이 I/O-bound 작업에 효율적이라고 했다. 하지만 CPU를 많이 쓰는.. Language/JS(Node.js) 2026. 3. 5. [Node.js] 비동기 프로그래밍 깊게 파기: Promise부터 동시성 제어까지 [Node.js] 비동기 프로그래밍 깊게 파기: Promise부터 동시성 제어까지1. Promise의 내부 상태와 에러 전파의 원리Promise는 단순한 콜백 헬 해결사가 아닙니다. 이는 비동기 작업의 상태를 관리하는 객체입니다.3가지 상태: Pending, Fulfilled, Rejected. 한 번 결정된 상태는 바뀌지 않습니다(Immutability).에러 버블링: .then() 체인 내부에서 발생한 에러는 중간에 .catch()가 없다면 계속 뒤로 전파됩니다.Unhandled Rejection: 최신 Node.js 환경에서는 .catch()하지 않은 에러가 발생하면 프로세스가 종료될 수 있습니다. 반드시 최종 단계에서 예외 처리가 필요합니다.2. async/await: 문법적 설탕 그 이상의 가치.. Language/JS(Node.js) 2026. 3. 2. [Node.js] 동시성 모델의 모든 것 Spring/Java 환경에서 일하다가 NestJS/Node.js를 병행하게 되면서, 그동안 "그냥 되니까" 넘어갔던 Node.js의 내부 동작 원리를 제대로 공부하기로 했다. Week 1에서는 Java와 Node.js의 동시성 모델 차이, 이벤트 루프의 실체, 그리고 실무에서 주의할 점까지 정리한다.1. 두 세계의 출발점: 요청을 어떻게 처리할 것인가웹 서버의 본질은 간단하다. 요청이 들어오면 처리하고 응답한다. 문제는 요청이 동시에 수천 개씩 들어올 때다. Java와 Node.js는 이 문제를 완전히 다른 방식으로 풀었다.Java: Thread-per-RequestJava의 전통적인 방식(Spring MVC + Tomcat)은 요청 하나당 스레드 하나를 할당한다.Client A ──→ [Thread-.. Language/JS(Node.js) 2026. 3. 2. [GIT] GIT을 통해 버젼관리를 하는 방법 (2026 개정판) 📋 주요 변경사항항목2022년2026년 개정기본 브랜치명mastermain (2020년 GitHub 기본값 변경)브랜치 전환git checkoutgit switch / git restore (Git 2.23+)Unstage 방법git reset HEAD [file]git restore --staged [file]인증 방식HTTPS 비밀번호PAT(Personal Access Token) 또는 SSH 키최신 Git 버전2.382.51 (2025년 기준)1. 버전관리의 구조: Git의 세 가지 영역Git의 Local Repository는 세 가지 영역(Three Trees) 으로 구성됩니다.Working Directory → Staging Area (Index) → Repository (HEAD) .. CS/Git 2026. 2. 27. [AWS] 초보자를 위한 Lambda 배포 가이드: 콘솔 vs 테라폼 (macOS 기준) [AWS] 초보자를 위한 Lambda 배포 가이드: 콘솔 vs 테라폼 (macOS 기준)AWS 람다(Lambda)는 서버를 관리할 필요 없이 코드만 올리면 실행되는 서버리스 서비스의 핵심입니다. 오늘은 AWS 콘솔에서 직접 만드는 방법과, 실무에서 필수인 테라폼(Terraform)을 이용한 자동화 방법을 정리합니다.1. AWS 콘솔에서 수동으로 만들기 (빠른 테스트용)가장 직관적인 방법으로, 람다의 개념을 익히기 좋습니다.서비스 접속: AWS 콘솔에서 'Lambda' 검색 후 접속함수 생성: [함수 생성] 버튼 클릭 -> 새로 작성 선택기본 정보:함수 이름: my-test-lambda런타임: Python 3.12기본 실행 역할: 기본 Lambda 권한을 가진 새 역할 생성 선택테스트: 생성된 함수 페이지.. Infra/AWS 2026. 1. 14. 2025년 회고록, "무너지지 않기 위해 버텨낸 해" 2026년 1월이 되어서야, 2025년 회고록을 작성하게 되었습니다.작년 한 해는 생각보다 숨 돌릴 틈이 없었습니다. 계획했던 일도 많았고, 예상하지 못한 일들은 더 많았습니다. 그 탓에 연말에 차분히 한 해를 돌아볼 여유를 갖지 못했고, 결국 이렇게 시간이 지나서야 글로 남기게 되었습니다. 그래도 지금이라도 돌아볼 수 있음에 감사한 마음이 듭니다.2025년은 제게 있어 무언가를 ‘이뤄낸 해’라기보다는, 무너지지 않기 위해 버텨낸 해였습니다.계획이 여러 번 수정되었고, 방향을 다시 잡아야 하는 순간들도 많았습니다. 그럼에도 불구하고, 그 과정 속에서 제 자신에 대해 이전보다 조금은 더 정확히 알게 된 한 해였다고 생각합니다. 치열하게 버텼던 순간들과 그 안에서 남은 생각들을 정리해봅니다.2025년에 마주.. 생각정리/회고 2026. 1. 4. Next.js 16: 핵심 변경 사항 및 추가 기능 정리 Next.js 16: 핵심 변경 사항 및 추가 기능Next.js 16의 가장 중요한 변화는 Turbopack 기본 번들러 채택과 React 19 및 React Compiler 지원으로 요약할 수 있습니다.성능 및 개발 경험(DX) 향상구분주요 내용설명기본 번들러Turbopack 기본 채택 (Stable)Rust 기반의 Turbopack이 이제 모든 앱의 기본 번들러로 사용됩니다. 기존 Webpack 대비 최대 4배 빠른 로컬 개발 및 2~5배 빠른 프로덕션 빌드 속도를 제공합니다.컴파일러React Compiler (Stable) 지원자동 컴포넌트 메모이제이션을 기본으로 지원하여, 수동으로 useMemo, useCallback 등을 사용할 필요 없이 불필요한 리렌더링을 줄여 성능을 향상시킵니다.캐싱Turb.. Framework/Nextjs 2025. 12. 5. React Native (RN) 앱에서 로컬로 빌드하고 Android 및 iOS 시뮬레이터에서 테스트하는 방법 필수 환경 설정 확인먼저, 빌드를 진행하기 위해 필요한 환경이 모두 설정되어 있는지 확인해야 합니다.Node.js 및 Watchman: 설치되어 있어야 합니다.React Native CLI: 프로젝트가 초기화된 상태여야 합니다.Android 개발 환경:Android Studio 설치.Android SDK 및 Platform Tools 설치.ANDROID_HOME 환경 변수 설정.Android 가상 장치(AVD) 생성.iOS 개발 환경 (macOS 필수):Xcode 설치 (App Store에서 가능).Xcode Command Line Tools 설치 (xcode-select --install).CocoaPods 설치 (iOS 종속성 관리): sudo gem install cocoapods팁: 환경 설정에 .. Framework/React & RN 2025. 12. 4. 2025 데브콘 후기 및 내용정리 요약 및 정리Session 2. 퍼스널 브랜딩 - 박상권왜 하냐?세상 살기 더 편해진다.외주, 면접 등 쉽다.창업하기 좋은 환경에 놓임.“무엇을 원하든 원하는 것을 얻을 수 있다.”나의 비전과 연결할 수 있을까?퍼스널 브랜딩퍼스널 브랜딩내가 해볼 수 있는 일들개발자 커뮤니티 : Node.js 쪽 유용한 정보들을 전달할 수 있어야 함.블로그 포스팅개발자 행사 발표자로 지식 나누기개발과 상관 없는 잡일도 해보고 행사 기획도 해보고워크샵 TF, 연말 송년회 사회 등액션 아이템결국, 퍼스널 브랜딩을 하려면 ROI가 높은 일들을 잘 해봐야 한다.현재 업무와 관련된 오픈소스는 무엇이 있을까?하나 잡고 파보자.검색 가능한 나 만들기이름과 내용들블로그 프로필 업데이트 & 링크드인 업데이트이력 관리하기 → Github에.. 카테고리 없음 2025. 11. 1. 백엔드 개발자를 위한 데이터 엔지니어링 첫걸음: ETL부터 Dagster+DBT까지 1. 기술 개요 요약데이터 엔지니어링은 데이터를 수집, 저장, 변환, 전달하는 전 과정을 시스템적으로 관리하는 기술 영역입니다.이 문서는 백엔드 개발자가 데이터 파이프라인을 이해하고 직접 구축할 수 있도록,ETL/ELT 개념부터 데이터 저장소 구조, 그리고 현대적 파이프라인 관리 도구인 DBT와 Dagster의 역할을 흐름 중심으로 정리합니다.2. 핵심 개념 정리구분개념설명대표 예시데이터 엔지니어링인프라 구축데이터가 흐를 수 있는 수집·저장·처리 시스템 전체 설계 및 운영Airflow, Dagster데이터 전처리원시 데이터 정제결측치, 오류를 제거하고 분석 가능한 형태로 변환Pandas, Spark데이터 마트주제별 데이터 저장소특정 부서나 목적에 맞게 데이터를 구성한 소규모 웨어하우스PostgreSQL,.. 카테고리 없음 2025. 10. 10. npm i (npm install)와 npm ci (npm clean-install) npm ci와 npm i는 모두 Node.js 프로젝트의 의존성 패키지를 설치하는 명령어이지만, 사용 목적과 동작 방식에 명확한 차이가 있습니다. 결론부터 말하면, 개발 환경에서는 npm i를, 배포나 협업 환경에서는 npm ci를 사용하는 것이 일반적입니다.주요 차이점구분npm i (npm install)npm ci (npm clean-install)기준 파일package.jsonpackage-lock.jsonpackage-lock.json의존성 변경 시 업데이트수정하지 않음 (불일치 시 오류)node_modules기존 폴더에 추가/변경항상 기존 폴더를 삭제 후 새로 설치속도상대적으로 느릴 수 있음일반적으로 더 빠름주요 용도개발 중 새로운 패키지 추가/업데이트CI/CD 파이프라인, 팀원 간 동일 환경 .. Language/JS(Node.js) 2025. 9. 23. Nest에서 Cron 서비스가 갑자기 돌지 않는다면? 1. 배경: 코드 구조 리팩토링과 QueryBuilder의 도입NestJS로 백엔드 서비스를 운영하다 보면, 엔티티(Entity) 클래스가 점점 비대해지는 문제가 생깁니다.예를 들어 특정 엔티티 안에 “날짜 범위 검색”, “OO별 필터링” 같은 쿼리 매핑 메서드를 static으로 붙여두면, 어느 순간 엔티티가 데이터 모델링과 쿼리 빌더 역할을 동시에 하게 됩니다.이를 해결하기 위해 팀에선 전용 QueryBuilder 클래스를 도입했습니다.// src/purchase/query-builders/Sample-query.builder.ts@Injectable({ scope: Scope.REQUEST })export class SampleQueryBuilder { private filters: FilterQu.. Framework/NestJS 2025. 9. 22. 이전 1 2 3 4 ··· 21 다음 반응형