일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- unique identifiers
- const
- Babel과 Webpack
- 학습내용정리
- 스코프
- peerdependencies
- DOM
- 자바스크립트 딥다이브
- 브라우저의 렌더링 과정
- 딥다이브
- 제너레이터와 async/await
- 올림픽 통계 서비스 최적화
- 자바스크립트 패턴
- 프로그래머스
- version management
- 커리어
- 모던 자바스크립트 Deep Dive
- package management
- middleware pattern
- 이벤트
- js pattern
- js pattern
- 자바스크립트
- 프론트엔드 성능 최적화 가이드
- mixin pattern
- pr review
- 새 코드 받아오기
- 블로그 서비스 최적화
- 이미지 갤러리 최적화
- 진행기록
- Today
- Total
목록Tech Books (53)
Dev Blog

Section 1 디자인 패턴 Section 2 프로그래밍 패러다임 Section 1 1.1 디자인 패턴 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것 1.1.1 싱글톤 패턴 싱글톤 패턴(singleton pattern) 은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴. 단 하나의 인스턴스를 만들어 이를 공유하는 방식으로, 보통 데이터베이스 연결 모듈에 많이 사용된다. 따라서, 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있으나, 의존성이 높아진다는 단점이 있다. 자바스크립트 예제 class Singleton { constructor() { if (!Singleton.instance) { ..

Repository 학습할 최적화 기법 이미지 지연 로딩 이미지 지연 로딩 라이브러리 적용 레이아웃 이동 피하기 화면상의 요소 변화로 레아이웃이 밀리는 현상 리덕스 렌더링 최적화 병목 코드 최적화 메모이제이션 적용 이미지 지연 로딩 react-lazyload라는 라이브러리를 이용하여 빠르게 이미지 지연 로딩을 적용해 볼 것입니다. 일반 컴포넌트도 이 안에 넣어 지연 로드할 수 있다는 것입니다. 이미지가 화면에 들어오는 시점보다 조금 더 미리 이미지를 불러와 화면에 들어온 시점에는 이미지가 준비되어 있도록 해야 합니다. 다행히 react-lazyload 라이브러리에서는 그렇게 할 수 있는 옵션을 제공해 주는데, 바로 offset이라는 옵션입니다. 이 옵션에는 얼마나 미리 이미지를 로드할지 픽셀 값으로 넣어..

Repository 학습할 최적화 기법 이미지 지연 로딩 이미지 사이즈 최적화 서버에 저장되어 있는 정적 이미지 최적화 폰트 최적화 커스텀 폰트 적용 최적화 캐시 최적화 불필요한 CSS 제거 사용하지 않는 CSS 코드 제거 이미지 지연 로딩 네트워크를 확인할 때는 명확한 흐름을 파악할 수 있도록 네트워크에 throttling을 적용합니다. banner-video는 페이지에서 가장 처음으로 사용자에게 보이는 콘텐츠인데 가장 나중에 로드되면, 사용자가 첫 화면에서 아무것도 보지 못한 채로 오랫동안 머물게 되므로 사용자 경험에 좋지 않을 겁니다. 동영상의 다운로드를 방해하는, 당장 사용되지 않는 이미지를 나중에 다운로드되도록 하여 동영상이 먼저 다운로드되게 하는 것입니다. 즉, 이미지를 지연 로드하는 것이죠...

Repository 학습할 최적화 기법 CSS 애니메이션 최적화 컴포넌트 지연 로딩 단일 컴포넌트 분할 컴포넌트 사전 로딩 이미지 사전 로딩 애니메이션 최적화 문제의 애니메이션 찾기 설문 항목을 클릭하면 해당 응답에 대해 필터링되고 막대 그래프의 배경 색과 막대의 가로 길이가 변합니다. 그런데 이 애니메이션을 계속 보다 보면 약간 이상하게 느껴집니다. 막대가 늘어날 때 부드럽게 늘어나지 않고 어딘가 살짝 끊기는 듯한 느낌이 있습니다. 이런 끊김 현상을 쟁크(jank) 라고 합니다. 느끼지 못한다면, 개발자 도구를 열고 Performance 패널의 CPU 설정을 6x slowdown으로 설정하면 애니메이션이 끊기는 현상을 더 잘 확인할 수 있습니다. 애니메이션의 원리 일반적으로 사용하는 디스플레이의 주사율..

크롬, 사파리, 파이어폭스, 엣지 같은 에버그린 브라우저_evergreen browser 1의 ES6 지원율은 약 98%로 거의 대부분의 ES6 사양을 지원한다. ES6+와 ES.NEXT의 최신 ECMAScript 사양을 사용하여 프로젝트를 진행하려면 최신 사양으로 작성된 코드를 경우에 따라 IE를 포함한 구형 브라우저에서 문제 없이 동작시키기 위한 개발 환경을 구축하는 것이 필요하다. 또한 대부분의 프로젝트가 모듈을 사용하므로 모듈 로더도 필요하다. ES6 모듈(ESM) 은 대부분의 모던 브라우저(Chrome 61, FF 60, SF 10.1, Edge 16 이상)에서 사용할 수 있다. 하지만 다음과 같은 이유로 아직까지는 ESM보다는 별도의 모듈 로더를 사용하는 것이 일반적이다. IE를 포함한 구형 ..

48.1 모듈의 일반적 의미 모듈_module 이란 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 모듈이 성립하려면 모듈은 자신만의 파일 스코프(모듈 스코프)를 가질 수 있어야 한다. 자신만의 파일 스코프를 갖는 모듈의 자산(모듈에 포함되어 있는 변수, 함수, 객체 등)은 기본적으로 비공개 상태다. 다시 말해, 자신만의 파일 스코프를 갖는 모듈의 모든 자산은 캡슐화되어 다른 모듈에서 접근할 수 없다. 즉, 모듈은 개별적 존재로서 애플리케이션과 분리되어 존재한다. 모듈은 공개가 필요한 자산에 한정하여 명시적으로 선택적 공개가 가능하다. 이를 export라 한다. 모듈 사용자는 모듈이 공개_export 한 자산 중 일부 또는 전체를 선택해 자신의 스코프 내로 불러들여 재사용할 수..

47.1 에러 처리의 필요성 에러_error가 발생하지 않는 코드를 작성하는 것은 불가능하다. 따라서 에러는 언제나 발생할 수 있다. 발생한 에러에 대해 대처하지 않고 방치하면 프로그램은 강제 종료된다. try...catch 문을 사용해 발생한 에러에 적절하게 대응하면 프로그램이 강제 종료되지 않고 계속해서 코드를 실행시킬 수 있다. 직접적으로 에러를 발생하지는 않는 예외_exception 적인 상황이 발생할 수도 있다. 예외적인 상황에 적절하게 대응하지 않으면 에러로 이어질 가능성이 크다. 47.2 try..catch...finally 문 예외적인 상황이 발생하면 첫번째, 반환하는 값(null 또는 -1)을 if 문이나 단축 평가 또는 옵셔널 체이닝 연산자를 통해 확인해서 처리하는 방법과 두번째, 에러..

46.1 제너레이터란? ES6에서 도입된 제너레이터_generator는 코드 블록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 특수한 함수다. 제너레이터와 일반 함수의 차이는 다음과 같다. 1. 제너레이터 함수는 함수 호출자에게 함수 실행의 제어권을 양도할 수 있다. 2. 제너레이터 함수는 함수 호출자와 함수의 상태를 주고받을 수 있다. 3. 제너레이터 함수를 호출하면 제너레이터 객체를 반환한다. 46.2 제너레이터 함수의 정의 제너레이터 함수는 function* 키워드로 선언한다. 그리고 하나 이상의 yield 표현식을 포함한다. 이것을 제외하면 일반 함수를 정의하는 방법과 같다. 애스터리스크(*)의 위치는 function 키워드와 함수 이름 사이라면 어디든지 상관없다. 46.3 제너레이터 ..