Part 1. 알고리즘과 시간 복잡도코딩테스트를 위한 알고리즘 스터디 — 알고리즘 개념, 복잡도 분석, Big-O 표기법📌 목차알고리즘이란?시간 복잡도공간 복잡도시간 vs 공간 Trade-offBig-O 표기법Big-O 코드 예제복잡도 비교 & 실전 감각실전 팁 & 자주 하는 실수1. 알고리즘이란?알고리즘(Algorithm) 은 문제를 해결하는 절차/방법입니다.자주 쓰이는 문제 해결 방법은 패턴화되어 있습니다.코딩테스트에서는 이 패턴을 파악하고 적용하는 능력이 중요합니다.대표적인 알고리즘 패턴패턴설명대표 문제완전 탐색 (Brute Force)모든 경우의 수를 확인순열, 조합그리디 (Greedy)매 순간 최선의 선택거스름돈, 회의실 배정분할 정복 (Divide & Conquer)문제를 작게 나눠서 해결병..
리액트에서 제공하는 API 중 useMemo, useCallback, memo는 리액트에서 발생하는 렌더링을 최소화 하기 위해 최적화 기법으로 사용됩니다.이 세 가지가 모두 최적화 기법이라는것은 알지만 대부분은 정확히 언제 사용하는지에 대해서는 알아 보도록 하겠습니다. 먼저 컴포넌트는 다음과 같은 상황에서 리렌더링이 발생합니다.전달 받은 props가 변경될 때자신의 state가 변경될 때부모 컴포넌트가 리렌더링될 때 1. React.memo전달 받은 props의 변경이 아닌 다른 상황(2, 3번)으로 인해 리렌더링이 되는 부분을 방지하는 함수를 말합니다.컴포넌트를 만들고 React.memo()로 감싸주면 끝!const Item = ({ data, onClick }: { data: { id: string..
ISR(Incremental Static Regeneration, 증분 정적 재생성) 말이 다소 어렵게 보이지만 단순히 SSG방식의 응용이라 할 수 있는 방법입니다.ISR은 SSG방식에 정적인 페이지를 생성하는 방법에 revalidate를 통해 유효기간을 설정하여 유효기간이 지난 생태에서는 getStaticProps()를 통해 화면을 다시 그리고 페이지를 업데이트합니다.revalidate: 60초라고 했을때 60초 이내에 새로고침을 하더라도 동일한 데이터가 보입니다.유통기한이 끝난 60초 이후에 새로운 데이터를 받아오게 됩니다. export const getStaticProps = async () => { return { props: { }, revalidate: 3, // 초단위로, 3초..
SSG(Static Site Generation, 정적 사이트 생성)SSR의 단점을 해결하기 위한 사전 렌더링 방식빌드 시 API등으로 부터 데이터를 얻어, 페이지를 미리 사전 렌더링 해두는 방식 SSG 빌드시 흐름빌드 시 getStaticProps()라는 함수가 호출되며, 그 함수 안에서 API 호출 등을 수행하고, 페이지를 그리는데 필요한 props를 반환합니다. 그 뒤 이 props를 페이지 컴포넌트에 전달해서 화면을 그립니다.화면을 그린 결과는 정적 파일의 형태로 빌드 결과로 저장합니다. 빌드 결과는 .next 폴더 → server 폴더에서 확인 가능합니다. 기본 골격SSG가 필요한 Page에 아래와 같은 getStaticProps() 함수를 추가해 준다.// 기본 골격export const g..