: 실행 컨택스트 내에서 현재 실행 중인 함수나 메서드를 호출한 객체를 참조하는 특별한 키워드this를 사용하여 해당 객체의 속성에 접근하거나 수정할 수 있다.this의 값은 함수를 호출하는 방법에 따라 달라진다.JavaScript의 모든 함수는 this를 가지고 있다
Git은 여러 개발자가 원활하게 협업할 수 있도록 돕는 강력한 분산 버전 제어 시스템이다. Git은 코드베이스에 대한 변경 사항을 추적함으로써 개발자가 다양한 버전의 코드를 효과적으로 관리하고 조정할 수 있도록 하고, 개발 프로세스가 체계적으로 유지되도록 한다.또한 작
: 주어진 배열에서 고정 크기의 윈도우(창문)를 이동하면서, 윈도우 내의 정보를 처리하는 알고리즘 기법배열이나 리스트와 같이 순차적인 자료구조에서 연속적인 구간을 처리해야할 때 유용하다.구간의 합, 최댓값 또는 최솟값, 유사도를 구하는 데 활용될 수 있다.주어진 배열의
1차원 배열 문제나 문자열 문제에서 많이 사용한다.한 배열에서 부분 배열을 다루거나, 한 배열에서 각각 다른 위치에 있는 두 개의 원소의 값을 가지고 계산할 때 사용한다.1차원 배열에서 각자 다른 원소를 가리키는 2개의 포인터를 사용하여 목표값을 구한다.완전 탐색 O(
: 메모리에 저장된 UI의 이상적인 또는 "가상"적인 표현으로, React DOM과 같은 라이브러리에 의해 "실제" DOM과 동기화되는 프로그래밍 개념Virtual DOM과 Internals - React실제 DOM은 UI의 현재 상태를 나타내는 트리 구조이다.UI가
문제 단어 퍼즐은 주어진 단어 조각들을 이용해서 주어진 문장을 완성하는 퍼즐입니다. 이때, 주어진 각 단어 조각들은 각각 무한개씩 있다고 가정합니다. 예를 들어 주어진 단어 조각이 [ba, na, n, a]인 경우 ba, na, n, a 단어 조각이 각각 무한개씩 있습
다이나믹 프로그래밍 : 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 한다. 즉, 한 번 해결한 문제는 다시 해결하지 않는다. (효율성 ↑) 완전 탐색을 이용했
문제 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면
포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된
모동숲 마켓에서 사용하는 여러번 사용하는 버튼 디자인은 크게 3가지가 있다.1\. 민트색 버튼 2. 흰색 버튼 3. 회색 버튼TailwindCSS를 사용해서 만들면서 그때 그때 className을 복사해서 만들었는데, 디자인이 겹치기 때문에 버튼 컴포넌트를 만들어서 재
MyPage 컴포넌트에는 boolean 값을 가지는 상태가 2개가 있다. 프로필을 수정 중인지 아닌지를 나타내는 상태 isEditing 모달이 열려있는지 닫혀있는지를 나타내는 상태 isModalOpen 두 상태 모두 같은 기능을 하는 토글 상태이므로 재사용 가능한 u
부트캠프를 수료하고 2월 20일부터 1일 1알고리즘을 푸는 스터디를 해온지 벌써 3달 차가 되어간다.쉬운 문제부터 시작해서 조금씩 실력을 키워나가자는 생각으로 프로그래머스 Lv.1 문제의 정답률이 높은 문제부터 낮은 문제까지 순서대로 풀어갔고, 4월 말쯤에 드디어 레벨
Next.js는 페이지마다 head 요소를 추가하고 메타 데이터를 추가할 수 있다.Next.js에서 제공하는 특수한 컴포넌트인 <Head> 컴포넌트를 import한다.원하는 페이지에 <Head> 컴포넌트를 추가하고, 그 안에 필요한 태그들을 작성하면 된다.&
이제 홈 화면에서 더미 데이터가 아닌 MongoDB 데이터베이스에 있는 데이터들을 가져와서 보여주도록 하자. 이 작업 또한 새로운 API 라우트를 생성하고 handler 함수를 작성하여, API를 이용해 데이터를 fetch해오도록 할 수 있지만.. 이 방식은 불필요한
Next.js에서는 pages/api 폴더를 사용하여 API 엔드포인트를 생성할 수 있다.pages/api 폴더 안에 있는 JavaScript 파일들은 API 라우트로 간주되며, 해당 파일들의 이름 = 엔드포인트 경로가 된다.예를 들어, pages/api 폴더 안에 u
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.예를들어F(2) = F(0) + F(1) = 0 + 1 = 1F(3) = F(1) + F(2) = 1 + 1 = 2F(4) =
Next.js는 서버 측 렌더링(SSR)을 지원하여 기본적으로 모든 페이지를 사전에 렌더링(pre-render)한다. 서버 사이드 렌더링은 페이지의 HTML 마크업을 미리 생성하여 클라이언트에 전달하는 방식이다.이로 인해 Next.js 애플리케이션은 브라우저로 전송되는
Firestore의 보안 규칙은 커스텀 언어를 활용하는데, CEL(Common Expression Language) 기반 언어를 사용하며, match와 allow 문을 사용하여 조건부로 액세스 권한을 부여할 수 있다.보안 규칙 언어 - Firebasee.g.servic
React는 페이지를 컴포넌트로 분해하여 관리할 수 있게 한다. 그리고 이러한 컴포넌트들은 재사용할 수 있기 때문에 매우 효율적이다. Next.js에 헤더나 네비게이션 바, 푸터와 같이 모든 페이지에서 재사용되는 컴포넌트를 레이아웃으로 적용하고 싶다면 어떻게 해야할까?
1. 프로젝트 생성 프로젝트를 생성하면 pages, public, styles 폴더를 확인할 수 있다. Next.js 앱에 index.html이 없는 이유 Next.js 앱은 일반 React 앱과 똑같이 public 폴더를 가지고 있으며, 이 폴더는 정적인 파일을