Published On

FrontEnd 기본 지식


주요 JS 라이브러리 비교

  • Angular는 framework이지만 자주 사용되기 때문에 넣었습니다.
특징ReactAngularVue.jsSvelte
아키텍처라이브러리, 컴포넌트 기반완전한 프레임워크, 컴포넌트 기반라이브러리, 컴포넌트 기반컴파일러 기반, 컴포넌트 기반
러닝 커브중간높음낮음중간
성능가상 DOM 사용, 빠름가상 DOM 미사용, 성능 최적화 필요반응성 시스템, 적당함컴파일러 기반, 매우 빠름
유연성높음중간높음높음
타입 지원TypeScript 지원 가능기본적으로 TypeScript 사용선택적 TypeScript 사용선택적 TypeScript 사용
생태계매우 풍부매우 풍부풍부제한적
커뮤니티매우 크고 활발매우 크고 활발크고 활발작고 성장 중

React의 주요 특징

특징설명
컴포넌트 기반 아키텍쳐유지 보수성을 높이고, 복잡한 UI 관리
가상 DOM실제 DOM 변경 최소화, 성능 최적화
단방향 데이터 흐름디버깅 강점
JSXHTML과 JS 결합 사용

Flexbox vs Grid

특징FlexboxGrid
차원1차원 레이아웃2차원 레이아웃
사용 목적단일 축 아이템 정렬복잡한 행과 열 레이아웃 설계
유연성작은 컴포넌트 레이아웃전체 페이지 및 복잡한 구조

RESTful vs GraphQL

특징RESTfulGraphQL
데이터 요청고정된 엔드포인트, 여러 요청단일 엔드포인트, 한 번의 요청
데이터 형식JSON 주로 사용JSON 형식, 스키마 사용
유연성필요한 데이터만 받을 수 없음필요한 데이터만 요청 가능

상태관리 라이브러리

특징Redux ToolkitZustand
작성 방식보일러플레이트 코드 많음간결한 코드
유연성미들웨어 지원, 복잡한 상태 관리심플한 상태 관리

Next.js 웹 성능 최적화 기법

기법설명
Next.js Image이미지 최적화
코드 스플리팅불필요한 코드 제거
레이지 로딩필요한 순간에만 로드
트리 쉐이킹미사용 코드 제거(기본 활성화)
최소화코드 최소화(기본 활성화)
압축파일 압축(기본 활성화)

이벤트 버블링과 캡처링

개념설명
이벤트 버블링하위 요소에서 상위 요소로 이벤트 전파
이벤트 캡처링상위 요소에서 하위 요소로 이벤트 전파

Static Generation vs SSR

개념설명
Static Generation빌드 시 HTML 생성, 빠른 로드
Server-Side Rendering요청 시 HTML 생성, 최신 데이터

CSR vs SSR

특징CSR (Client-Side Rendering)SSR (Server-Side Rendering)
렌더링 위치클라이언트서버
초기 로드 속도느림빠름
SEO낮음높음
유연성높음중간

렌더링 과정

단계설명
1. 브라우저 요청URL 입력, 브라우저가 서버에 요청
2. 서버 응답HTML, CSS, JS 파일 전달
3. 브라우저 파싱HTML 파싱 후 DOM 트리 생성, CSSOM 트리 생성
4. 렌더 트리 생성DOM + CSSOM 합쳐서 렌더 트리 생성
5. 레이아웃렌더 트리를 기반으로 요소 위치 계산
6. 페인트화면에 픽셀로 렌더링

Webpack vs Vite

특징WebpackVite
번들링 방식전통적 번들러개발 시 미니멀 번들링, 프로덕션 시 번들링
속도느림빠름
설정복잡함간단함
HMR (Hot Module Replacement)있음더 빠름

Hot Module Replacement (HMR)

개념설명
HMR모듈이 변경될 때 전체 페이지를 새로 고침하지 않고도 런타임 중에 모듈을 교체할 수 있는 기능

Virtual DOM이란?

개념설명
Virtual DOM가상 메모리에서 실제 DOM의 사본을 만들어 변경 사항을 반영 후, 최소한의 변경만 실제 DOM에 적용

React의 상태 관리 방법

방법설명
useState컴포넌트 내부 상태 관리
useReducer복잡한 상태 로직 관리
Context API전역 상태 관리

CSS-in-JS의 장점과 단점

측면장점단점
장점동적 스타일링 가능, 스코프 문제 해결런타임 오버헤드, 스타일링 로직이 JS에 포함

프로미스(Promise)와 async/await 비교

측면Promiseasync/await
가독성낮음높음
에러 처리then, catchtry, catch
  • 단, 다수의 비동기 처리를 할때는 Promise.all()을 사용하는게 좋습니다.

CORS란?

개념설명
CORS다른 도메인에서 자원에 접근할 때 발생하는 보안 정책

웹 접근성이란?

개념설명
웹 접근성장애를 가진 사람들이 웹 콘텐츠에 접근할 수 있도록 설계하는 방법

Throttling과 Debouncing

측면ThrottlingDebouncing
동작 원리정해진 시간 간격마다 함수 실행지정된 시간 동안 호출이 없으면 함수 실행
사용 예스크롤 이벤트검색 입력