npm은 자바스크립트 라이브러리 저장소(npm레지스트리)와, 프로젝트가 의존하고 있는 라이브러리들의 버전을 지정하는 방법(package.json)을 제공한다. dependencies 현재 프로젝트를 실행하는 데(런타임시) 필수적인 라이브러리들이 포함 프로젝트를 npm에 공개하여 다른 사용자가 해당 프로젝트를 설치하면 dependencies에 들어 있는 라이브러리도 함께 설치됨(전이 의존성) $ npm install react devDependencies 개발, 테스트 시엔 필요하지만 런타임에는 필요 없는 라이브러리들이 포함 (ex. 테스트프레임워크, prettier, eslint) 프로젝트를 npm에 공개하여 다른 사용자가 해당 프로젝트를 설치하면 devDependencies에 포함된 라이브러리들은 제외..

https://medium.com/geekculture/10-tricks-to-optimizing-the-performance-of-angular-app-d998d48ca634 를 해석한 글입니다. 10 Tricks to Optimizing the Performance of Angular app — Keep learning, keep building and keep growing :) medium.com 1. ChangeDetectionStrategy.OnPush Change detection은 JS와 관련 프레임워크에서 가장 기본적인 기능 중 하나이며 데이터가 변경되었을 때 DOM을 업데이트하여 변경사항을 반영하는 기능이다. 앵귤러는 Zone.js를 사용하여 각 비동기 이벤트를 monkey-patch하..
ElementRef, TemplateRef, ViewRef, ComponentRef and ViewContainerRef을 통해 dom을 조작하는 방법에 대해 알아보자 @ViewChild component/directive class 안에서 추상화에 접근하기 위해선 Angular에서 제공하는 @ViewChild, @ViewChildren이라는 DOM쿼리라는 매커니즘을 사용한다. @ViewChild는 하나, @ViewChildren은 여러개의 쿼리를 반환한다. // 기본 사용 형태 @ViewChild([reference from template], {read: [reference type]}); // example @Component({ selector: 'sample', template: ` I am s..
새로운 observable 구독하기 switchMap vs concatMap vs mergeMap vs exhaustMap switchMap: Cancles the current subscription/request and can cause race condition, use for get requests of cancelable requests like searches 새로운 Observable이 방출되면 구독중이던 Observable을 취소하고 새로운 Observable을 구독함 concatMap: Runs subscriptions/requests in order and is less performant, use for get, post and put requests when order is impo..

해당 포스팅은 https://blog.angular.io/version-9-of-angular-now-available-project-ivy-has-arrived-23c97b63cfa3 를 해석하고 개인적으로 찾아본 내용을 추가한 글입니다. Angular 9으로 업데이트 되면서 가장 큰 변화는 Ivy 컴파일러를 기본 렌더링엔진으로 변경되었다. Ivy는 사이즈감소, 속도 증가, 유연성 증가에 초점을 두어 개발되었다는데, 이를 위해 모든 컴포넌트가 돔트리를 구성하는 지시자를 컴파일하는 증가형 돔을 사용하였다. Virtual DOM과 Incremental DOM에 대한 내용은 아래 두 블로그에 자세히 나와있어 링크 참조 바랍니다. https://alexband.tistory.com/58 https://blog..