Next.js 시작하기 - 간단한 Login 페이지 만들기 (3) React-Query
React-Query 사용하기 지금부터 간단한 Login api를 React-query를 사용하여 구현해볼 예정이다. 앞서 언급했듯이, React-Query는 프론트엔드 api 사용에 있어 다양한 편의기능을 제공해 준다. 대표적으로 data가 갱신되면 useState를 사용할 필요 없이, 해당 data의 상태 변화를 확인하고 랜더링이 되는 기능부터,...
React-Query 사용하기 지금부터 간단한 Login api를 React-query를 사용하여 구현해볼 예정이다. 앞서 언급했듯이, React-Query는 프론트엔드 api 사용에 있어 다양한 편의기능을 제공해 준다. 대표적으로 data가 갱신되면 useState를 사용할 필요 없이, 해당 data의 상태 변화를 확인하고 랜더링이 되는 기능부터,...
라이브러리와 프레임워크의 차이 라이브러리는 개발 주도권이 개발자에게 있고, 프레임워크는 개발 주도권이 프레임워크에 있다. 리액트를 선언형 프로그래밍이라 하는 이유는? 선언형 어떤 로직으로 어떻게 코드를 짜야 페이지가 그려질 수 있는지에 대하여 생각하기 보다, 컴포넌트나 데이터의 배치를 통해 무엇이 렌더링될지에 대해 고려하는 것이 선언형 UI의 특...
다형성 다형성이란 제네릭과 같이 특정 객체가 하나의 타입이 아닌 여러 가지 타입으로 표현될 수 있어서 재사용 가능한 형태로 구현될 수 있는 것을 말한다. 타입 시그니쳐 function functionName (parameter1: type, parameter2: type): returnType { return value; } 함수, 서브루...
HTML, CSS !Doctype의 역할 메타 태그 <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="페이지에 대한 요약 설명"> <...
HTTP란? 텍스트 기반 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. HTML, text, 이미지, 음성, 영상, 파일, JSON, XML 등 다양한 종류의 데이터를 전송할 수 있다. Stateless 서버에서 상태를 관리하지 않는 것을 뜻한다. 각 요청이 독립적으로 실행되고, 이전 요청에 대한 정보를 알지 못한다. 장점은 ...
자바스크립트란? 자바스크립트는 클라이언트 사이드에서 동작하는 싱글스레드 프로그래밍 언어이며 인터프리터 방식으로 동작한다. 싱글 스레드이지만 오래 걸리는 작업들은 브라우저 내부의 Web APIs에서 비동기+논블로킹으로 처리할 수 있다. 이벤트 루프 이벤트 루프는 call stack, callback queue, Web APIs 등을 모니터링하며 ...
멘토링을 찾고 있었던 당시… 당시 필자는 1년째 재직중이었다. 입사 당시 프론트엔드 개발자로 입사를 하였지만, 서버 관리와 여러 현장 대응에 더 많은 시간을 보내고 있었고, React를 사용한 개발 업무는 거의 전무했다. 프론트엔드부터 백엔드, DB, 서버 구축까지 다양한 업무를 수행하다 보니 프론트엔드에 대한 전문성을 쌓을 수 있을지 의문이 들었...
MUI App Bar로 레이아웃 구성 모든 페이지가 공유하는 App Bar를 layout.tsx에 배치한다. // src/components/Header import { AppBar, Box, Toolbar, Typography, Button, IconButton } from '@mui/material'; import MenuIcon from '@...
Next.js의 라우팅 방식 Next.js에서는 자동 라우팅을 지원한다. 파일 혹은 폴더를 생성하는 것으로 라우팅이 가능하다. App Router: 폴더명 기반. 폴더 하위에 page.tsx/layout.tsx가 존재하면 해당 폴더명으로 라우팅 경로 생성. Pages Router: 폴더와 파일명 기반. Next.js 공식 홈페이지는 App Rou...
Zustand 설치 npm install zustand import { create } from 'zustand' const useStore = create((set) => ({ count: 1, inc: () => set((state) => ({ count: state.count + 1 })), })) Jest 설치...