축구 풋살 점수판 프로그램
https://score-board-fe.vercel.app/football 축구나 풋살에서 사용할 수 있는 점수판입니다. 업데이트 예정 기능 소리 기능 추가 휴식 시간 기능 추가 기능 설명 상단 - 전체 시간 표시 점수 표시 기능 팀 이름 변경 기능
- Develop/Made by powerku
- · 2023. 11. 3.
반응형
React Query란? React Query는 비동기 상태 관리 라이브러리입니다. React에서 서버의 데이터 fetch를 도와주고 관리할 수 있는 라이브러리입니다. React Query 장점 1. 적은 보일러 플레이트 코드 2. 캐싱 3. 중복 요청 방지 4. 오래된 데이터 업데이트 5. 로딩, 에러, 데이터 결과 처리가 쉽습니다. useQuery를 이용해서 직관적으로 사용할 수 있고, 보일러플레이트 코드 작아서 사용하기 간편합니다. 또, 캐시를 이용해서 데이터를 가지고 있어서 성능이 우수하고, 로딩 및 에러 처리 하기가 쉽습니다. 첫 번째 API 호출 시에 데이터를 캐시에 가지고 있습니다. 두 번째 동일한 API 호출 시 캐시에 가지고 있는 데이터를 즉시 반환합니다. 그 이후 다시 데이터를 조회한 ..
Socket.io 란? 웹 어플리케이션에서 양방향 통신을 가능하게 해주는 라이브러리 입니다. Socket.io 라이브러리와 Next.js 프레임 워크를 이용해서 실시간 채팅을 구현 하겠습니다. 실시간 채팅 만들기 1. Next.js 프로젝트 생성 npx create-next-app Next.js 설치하기 npx create-next-app Next.js 설치하는 방법에 대해서 알아보도록 하겠습니다. 설치하는 방법에는 두가지가 있습니다. npx create-next-app을 이용해서 한 번에 자동으로 설치하는 방법과 next.js에 필요한 라이브러리를 하나 powerku.tistory.com 2. axios, socket.io, socket.io-client 라이브러리 설치 npm install axios..
https://score-board-fe.vercel.app/football 축구나 풋살에서 사용할 수 있는 점수판입니다. 업데이트 예정 기능 소리 기능 추가 휴식 시간 기능 추가 기능 설명 상단 - 전체 시간 표시 점수 표시 기능 팀 이름 변경 기능
Next.js 에서 React와 TypeScript를 이용해서 타이머를 구현해보도록 하겠습니다. React Hook은 useEffect와 useMemo를 사용하였습니다. 1. 컴포넌트 렌더링 시 setInterval 함수를 통해서 1초 감소 2. setInterval 종료 3. 다시 재렌더링 이런 메커니즘으로 타이머가 진행 됩니다. 1분 이하에는 0.1초 단위로 시간이 내려갑니다. See the Pen React + TypeScript Starter by powerku (@powerku) on CodePen. 타이머 컴포넌트 timer.tsx const Timer = ({minute = 15, second = 0}: TimerProps) => { const [min, setMinute] = React.u..
useMemo란? useMemo는 리액트 훅 중의 하나입니다. Memoization 메모이제이션. 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술. 리액트에서 재 렌더링 될때 마다, 계산된 값을 캐시로 가지고 있기 때문에 동일한 계산을 반복하지 않고 이전 캐시된 값을 사용하여 성능 향상을 시킬 수 있습니다. 계산비용이 높거나, 컴포넌트가 불필요하게 자주 렌더링 되는 경우에 사용하면 좋습니다. useMemo 사용법 useMemo(calculateValue, dependency) 파라미터 caculateValue 계산하려는 값을 반환하는 함수 입니다. 반드시 return 값이 있어야 합니다...
next-auth에서 클라이언트 컴포넌트에서는 useSession 서버 컴포넌트에서는 getServerSession을 이용해서 현재 로그인된 유저 정보를 알 수가 있습니다. 오류 1: Unhandled Runtime ErrorError: React Context is unavailable in Server Components 하지만 아래와 같이 페이지 내에서 async, await을 사용하려고 하니 아래와 같은 오류가 발생하였습니다. const Page = async () => { const session = useSession(); if (!session?.user) { redirect("/board"); } const user = await prisma.user.findUnique({ where: {..
next-auth란? next-auth는 Next.js 프로젝트에서 소셜 로그인을 간단하게 구현할 수 있는 라이브러리 입니다. 국내에서는 구글, 카카오, 네이버, 페이스북, 애플 등 다양한 소셜 로그인을 이용하고 사용합니다. 해당 사이트가 늘어나면 늘어날 수록 로직은 달라지고 복잡해지는데 next-auth를 이용하면 한번에 쉽고 간단하게 구현 가능합니다. Next.js 프로젝트 구성하기 Typescript, tailwind, App Router 방식을 이용해서 구현할 예정입니다. 저는 shacdn이라는 라이브러리를 사용해서 버튼과 아바타 컴포넌트를 사용할 예정입니다. Next.js 설치하기 npx create-next-app Next.js 설치하는 방법에 대해서 알아보도록 하겠습니다. 설치하는 방법에는 ..
sitemap.xml 이란? 검색엔진 크롤러가 웹 사이트를 효율적으로 크롤링 하기 위해 정보를 작성해둔 파일입니다. 페이지 url, 최근 업데이트 날짜, 업데이트 주기, 우선순위 등을 작성합니다. Google에 자신의 웹사이트가 검색되기를 원하면 sitemap이 있으면 좋습니다. Next 13 에서 sitemap.xml 만들기 정적 sitemap 만들기 app/sitemap.xml https://powerku.tistory.com 2023-10-24T22:21:12+09:00 1.0 https://powerku.tistory.com/category 동적 stiemap 만들기 app/sitemap.ts import { MetadataRoute } from 'next' export default functi..
안녕하세요, 이제 코로나도 끝나고 미뤄둔 결혼식을 다들 하고 있어서 결혼식이 많은 시즌입니다. 이번에 친구 결혼식이 있어서 축하 기념으로 화환을 보냈는데, 결국 업체 실수로 인해서 배송 사고가 났습니다... 친구의 결혼을 제대로 축하해주지 못한 것 같아서 정말 마음이 아프고 속상했습니다. 그래서 화환 주문할 때, 체크해야 할 사항들에 대해서 한번 정리해보려고 합니다. 네이버에서 화환 업체를 골라서 주문을 하였습니다. 화환 주문 전 1. 결혼식 날짜/시간, 배송 예정시간 확인 2. 화환 도착 후에 사진을 찍어서 보내주는 업체인지 확인 3. 충분한 리뷰와 후기로 배송 실수가 있는 곳인지 확인 4. 고객센터 연락이 잘돼서 배송사고 시에 즉각 대응이 가능하고 상담 직원이 친절 한지 확인 화환 주문 이후 1. 화..
Next.js 설치하는 방법에 대해서 알아보도록 하겠습니다. 설치하는 방법에는 두가지가 있습니다. npx create-next-app을 이용해서 한 번에 자동으로 설치하는 방법과 next.js에 필요한 라이브러리를 하나하나 설치해서 직접 설정하는 두 가지 방법이 있습니다. 이번 글에서는 자동 설치에 대해서 알아보겠습니다. npx create-next-app을 이용하여 설치하기 1. 프로젝트 폴더를 생성할 폴더에서 커맨드창에서 아래 명령어를 입력합니다. npx create-next-app@latest 2. 프로젝트 구성 설정을 선택합니다. What is your project named? my-app Would you like to use TypeScript? No / Yes Would you like t..