supabase의 Auth Providers를 활용해서 소셜 로그인을 구현한 과정을 기록
객체 지향 프로그래밍(OOP) 먼저 작은 문제들을 해결할 수 있는 객체들을 만든 뒤, 이 객체들을 조합해서 큰 문제를 해결하는 상향식(Bottom-up) 해결법 가장 큰 특징 3가지는 아래와 같다. 은닉성 외부로의 노출을 최소화하여 모듈 간의 결합도를 떨어뜨려
자바스크립트는 프로토타입 기반 언어이다. 어떤 객체를 원형(prototype)으로 삼고 이를 복제함으로써 상속과 비슷한 효과를 얻는다. constructor 어떤 생성자 함수(constructor)를 new 연산자와 함께 호출하면 Contructor에서 정의된 내용을
개발하는 애플리케이션의 크기가 커지면 언젠간 파일을 기능별로 분리해야 하는 시점이 온다. 이때 분리된 파일 각각을 '모듈(module)'이라고 부른다.즉, 모듈은 스크립트 파일 하나를 의미하고 모듈을 관리하는 다양한 기능을 제공하는 시스템을 모듈 시스템이라 한다.유지
실행 컨텍스트란?실행할 코드에 제공할 환경 정보(변수 객체, 스코프 체인, this 등)들을 모아놓은 객체동일한 환경에 있는 코드를 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고, 이를 콜 스택에 쌓아 올렸다가, 가장 위에 있는 컨텍스트와 관련 있는 코드를
Model, View, Controller의 약자. 각각의 역할만 담당하면 되기 때문에 효율적이고 유지보수가 편해진다.Model데이터를 관리하고 가공View인터페이스 요소ControllerView와 Model을 연결하고 상호 작용을 처리Model에 데이터를 저장하고 C
클로저란? MDN에서는 "A closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment
<코드><풀이>brown을 2로 나누면 가로와 위, 아래를 뺀 세로의 합이 되고, 이 때 세로는 yellow의 높이가 된다.yellow의 높이는 최소 1이기 때문에 1부터 brown / 2까지가 되고, 높이가 가로 길이를 넘어설 수 없는 반복문을 돌면서,가로
<코드><풀이>인수로 주어진 answers 배열을 순회하면서 각 정답이 수포자들의 정답과 일치하는지 확인한다.수포자들의 정답은 일정한 숫자가 반복되는 값이기에 배열로 만들고 각 배열의 length로 나눈 나머지값으로 인덱스를 구할 수 있다.예를 들어, 1번이
<코드><풀이>주어진 sizes 배열 안에 각 명함을 긴 쪽이 0번 인덱스에 위치하도록 정렬하고,긴 변의 최댓값과 작은 변의 최댓값을 반환
데이터를 받아와서 리스트를 구현할 때, 처음 로딩 시간을 줄이고자 모든 데이터를 한 번에 받아오지 않고 여러 번에 나누어(스크롤 할 때마다) 가져오는 것을 구현하기 위해서 TanStack-query의 useInfiniteQuery() 훅을 사용해봤다.queryFn필수값

완전 이진 트리의 일종으로, 최댓값 또는 최솟값을 빠르게 찾아내기 위한 자료구조.효율적인 데이터 관리와 처리가 필요한 다양한 알고리즘과 시스템에서 사용되며, 주로 우선순위 큐를 구현할 때 사용됨우선순위 큐는 큐 자료구조에 우선순위 개념을 도입해 데이터가 들어오면 우선순
<코드><풀이>처음 반복문은 prices 배열의 각 요소를 순회하고 중첩된 반목문은 각 요소의 다음 인덱스부터 순회하면서 크기를 비교하고 count를 증가시키거나 answer에 push마지막 비교 요소에 다다르면 answer에 count를 pushcount를
<코드><풀이>다리를 건너는 트럭, 대기하는 트럭을 배열로 정리. 이 때, 다리를 건너는 트럭은 \[지나가는 시간, 무게]로 설정예제의 표와 같이 다리를 건너는 트럭, 대기하는 트럭이 모두 0이 될때까지 while문 반복되고 answer가 1씩 증가answe
<코드><풀이>priorities를 각 요소와 인덱스로 구성된 새로운 배열로 바꾼 후, 순회하면서 가장 큰 값을 찾아 정렬해나감반복문 안에 메서드가 사용되어 O(n^2)의 시간 복잡도를 가짐효율성이 좋지는 않지만 priorities의 길이의 제한 사항이 10
<코드><풀이>괄호를 나누어 순회하면서 '('는 1로, ')'는 -1로 바꾼다.앞에서부터 더해가면 괄호가 열릴 때는 1씩 더해지고, 닫히면 1씩 빠짐\-> 괄호는 계속해서 열 수 있기 때문에 양수로 증가하는 것은 상관 없지만 음수가 되면 올바른 구조가 아니고
<코드><풀이>progresses를 순회하면서 진행률이 100%가 되기까지 남은 날짜를 계산한다.남은 날짜를 순회하면서 앞에 있는 기능의 개발이 끝났는지 확인한다.i + 1의 날짜가 작다면 한 번에 배포할 수 있으므로 count를 올림i + 1의 날짜가 크다