개발환경-설정

1.타입스크립트의 이해 🔗공식홈 1.1. 정의 자바스크립트에 타입(type)을 추가한 확장 언어로 새로운 언어가 아니다. 1.2. 설치 https://www.typescriptlang.org/ko/download/ 웹브라우저는 자바스크립트 만을 해석할수 있으므로 타입스크립트로 개발후 자바스크립트로 변환(compile) 해야 한다. 다양한 방법중 NodeJs를 사용하도록 한다. 1.2.1. 프로젝트 환경설정 빈 폴더 생성 후 vscode로 열기 터미널 창에 아래의 명령어 실행 // 타입스크립트 설치 로컬/전역중 택일 //// 로컬 npm install … 더 읽기

설치

Info: 📁 완성파일 01. 개요 Info: 🤔 타입스크립트란? 타입스크립트(TypeScript)는 마이크로소프트에서 개발한 자바스크립트의 상위 집합 언어이다. 타입스크립트는 자바스크립트의 모든 기능에 더해서 정적 타입, 클래스, 인터페이스, 상속 등을 지원한다. 타입스크립트는 자바스크립트 코드로 컴파일되며, 이를 통해 자바스크립트로 작성된 어플리케이션을 쉽게 타입스크립트로 변경할 수 있다. 자바스크립트 문법에 타입을 표기하는 방식이며 자바스크립트의 superset (상위확장) 이라고도 한다. 브라우저에서 실행되지 않으며 자바스크립트 … 더 읽기

5-reactquery설정

1-TanStackQuery설치 1-1-패키지설치 https://tanstack.com/query/latest/docs/framework/react/installation 이동 설치 npm i @tanstack/react-query 1-2-파일생성 next-with-supabasecomponentsquery-provider.tsx 파일생성 QueryPrivider 컴포넌트 작성 'use client'; import {QueryClient,QueryClientProvider} from '@tanstack/react-query'; import React, {ReactNode, useState} from 'react'; const QueryProvider = ({children}: {children: ReactNode}) => { const [queryClient] = useState( () => new QueryClient({ defaultOptions: {queries: {staleTime: Infinity}}, }) ); return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>; }; export default QueryProvider; … 더 읽기

6-logout

1-Profile.tsx 1-1-UI요소 추가 1-1-1-프로필 이미지가 없을 경우 사용자명 렌더링하기 next-with-supabasecomponentsProfile.tsx Image 컴포넌트를 수정한다 **… **</Link> ) : (** ****<> {data?.image_url ? ( <Image src={data.image_url || ''} alt={data.display_name || ''} width={50} height={50} className="rounded-full" /> ) : ( <div className="h-[50px] w-[50px] flex items-center justify-center"> <h1>{data.email}</h1> </div> )} </>**** …** 테스트 1. 이미지 데이터가 null이면 email 이 렌더링된다. … 더 읽기

4-프로필테이블생성인증연동

1-수파베이스_테이블편집 1-1-테이블생성 수파베이스 대시보드로 이동 테이블이름생성 데이터 타입 지정 – 이미지의 순번대로 수행 컬럼추가-email, display_name, image_url 확인 1-2-함수작성하기 수파베이스 대시보드 아래 이미지와 같이 설정한다 begin insert into public.profiles(id,email,display_name,image_url) values( new.id, new.raw_user_meta_data->>'email', new.raw_user_meta_data->>'user_name', new.raw_user_meta_data->>'avatar_url' ); return new; end 확인 3-트리거작성 Info: 💡 트리거란? 데이터베이스에 미리 지정된 조건이 충족되거나 특정 테이블에 삽입,수정,삭제 등의 변경 이벤트 발생시 DBMS(DataBaseMagamentSystem) … 더 읽기

3-oauthsupabase설정

1-Supabase_project_생성 https://supabase.com/dashboard/projects 2-nextJs .env.local 파일 생성 Next.js에서 서버측 인증설정 – 아래 링크에서 단계별 안내를 따라한다 🔗https://supabase.com/docs/guides/auth/server-side/nextjs 🔗https://supabase.com/docs/guides/auth/social-login/auth-github 수파베이스 패키지 설치 npm install @supabase/supabase-js @supabase/ssr 환경변수 설정 – .env.local NEXT_PUBLIC_SUPABASE_URL=<your_supabase_project_url> NEXT_PUBLIC_SUPABASE_ANON_KEY=<your_supabase_anon_key> 각 변수의 값은 가이드 문서에서 확인할 수 있다. 자신의 환경변수에 맞는 값을 확인하여 수정한다 lib/supabase/server.ts 생성 import { createServerClient } from '@supabase/ssr' import { cookies … 더 읽기

2-oauthnext설치

1-Next 설치 npx create-next-app@latest . 2-shadcn 설치 공식홈 shadcn(샤드씨엔) 이란? ShadCN은 미리 제작된 UI컴포넌트를 제공하는 라이브러리이다. Next와 연동이 간편하고 Tailwind CSS와의 통합을 지원하여 스타일링을 쉽게 할 수 있다. https://ui.shadcn.com/docs https://ui.shadcn.com/docs/installation/next npx shadcn@latest init 3-다크모드 테마 설치 https://ui.shadcn.com/docs/dark-mode/next npm install next-themes 2단계의 파일생성후 코드를 복사붙여넣기 //chatcomponentstheme-provider.tsx "use client" import * as React from "react" import { … 더 읽기

1-supabase기초

1-Supabase Supabase는 오픈 소스 백엔드 서비스 플랫폼으로, Firebase의 대안으로 자주 사용됩니다. 주로 프론트엔드 개발자들에게 빠르고 효율적인 백엔드 구축을 가능하게 해줍니다. 1-1-주요 기능 PostgreSQL 데이터베이스 Supabase는 PostgreSQL을 기반으로 하며, 관계형 데이터베이스를 쉽게 설정하고 관리할 수 있습니다. SQL 쿼리를 활용해 복잡한 데이터 작업도 처리 가능. 실시간 기능 데이터베이스에 변화가 생기면 이를 실시간으로 클라이언트에 반영할 수 있습니다. 예: … 더 읽기

함수

1. 함수란?  여러 동작을 묶어놓은 명령어 덩어리 입니다 1.1. 함수의 성분 🔑매개변수,인수,return 함수는 매개변수,인수,리턴의 3요소가 있습니다. Info: 함수는 정해진 기능을 수행하는 기계와 같습니다. 믹서기의 예를 들어 보겠습니다. 아래의 믹서기는 어떤 것이든 재료만 넣으면 무조건 갈아서 섞어 줍니다. 이때 믹서기의 기능을 자바스크립트에서는** 함수라고 부릅니다. 이때 믹서기에 넣을 재료를 자바스크립트에서는 인수라고 부릅니다. 믹서기는 재료를 넣는 곳과 결과물이 … 더 읽기

변수와자료형

1. 변수 1.1.변수란? ✅ 변수(상수)란? 데이터(값/자료)를 저장 할 수 있는 메모리 공간 변하는 값은 변수 let, var 변하지 않는 값은 상수 const ✅ 변수 사용 이유 변수를 쓰는 이유는 코드의 재활용성을 높여준다. 1.2.변수의사용 1.2.1. 선언과할당 let currentYear; //올해 연도의 변수 선언 let name; // 이름의 변수 선언 let age; // 나이의 변수 선언 let currentYear, … 더 읽기