일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- BFS
- 패스트캠퍼스
- 코딩테스트
- html/css/js
- 프론트엔드개발자
- KAKAO
- git
- 자바스크립트
- github
- Javascript
- 너비우선탐색
- 컴퓨터과학
- cpu
- LinkSnap
- 호이스팅
- 백준
- DFS
- 야놀자
- 부트캠프
- CSS
- 그리디
- 컴퓨터공학
- js
- computerscience
- 국비지원
- 국비지원취업
- nodejs
- CS
- 알고리즘
- 코테
- Today
- Total
목록FrontEnd (190)
My Boundary As Much As I Experienced
타입스크립트에서 extends 키워드는 주로 두 가지 주요 용도로 사용된다.인터페이스 확장과 조건부 타입에서의 활용이다. 또한, 클래스를 상속할 때도 사용되지만, 여기서는 타입스크립트 관련 활용법만 다루겠다.1. 인터페이스 확장타입스크립트에서 extends를 사용하여 한 인터페이스가 다른 인터페이스를 확장할 수 있다. 이를 통해 인터페이스 간에 코드를 재사용하고, 계층적인 타입 정의를 구성할 수 있다. 코드 재사용과 계층적인 타입 정의가 뭔지는 나중에 알아보고 일단 예시를 보겠다. 아래 Shape라는 interface는 sideLength라는 속성이 있다.그리고 Square는 이를 상속받으면서 numberOfAngle라는 속성도 가지도록 'extends Shape'를 했다.interface Shape ..
오늘 pages router 강의를 들으면서 예제를 진행하다 MongoDB Atlas Driver를 설치해야되었다. 그러다가 위와 같은 에러가 났는데, 찾아보니 버전 관련 에러인거 같다.예제 파일 자체가 React17에 Next10으로 된 옛날 파일이어서 발생하는 것 같았다. 검색해보면 나오는 해결책은 주로 아래와 같다.- nvm을 깔아서 node를 최신버전으로 업데이트하기 (https://blog.naver.com/dlaxodud2388/222572943250)- npm update를 통해서 라이브러리 버전을 모두 최신버전으로 유지하기 그러나 위의 방법들이 먹히지 않았다.mongoDB Atlas의 최신버전이 돌아가지 않을 정도로 React/Next가 옛날 버전인건 맞긴 한데...npm update를 했..
getStaticPaths가 해결하려는 문제: SSG 빌드 시 동적 페이지의 구성을 파악할 수 없다.SSG에서는 빌드 시 사전에 페이지들을 미리 생성하게 된다.그런데 SSG 방식으로 사이트에서 동적 페이지를 만들 때, Next.js는 [id].js에 속하는 동적 페이지가 뭔지 다 알지 못한다.그래서 SSG + 동적 라우팅을 쓰면서 getStaticPaths를 쓰지 않으면 아래와 같은 에러를 볼 수 있는 것이다. 뭔지 모른다는 말! 그렇기 때문에 발생할 수 있는 모든 패러미터들을 정리해서 Next.js에 제공하는 것이 getStaticPaths의 역할이다.Got it? 사실 이게 다다. 나도 처음 들을 때 여기까지는 이해가 얼추 되긴 했지만, 개인적으로 든 의문점이 하나 있긴 했었다. Next.js 팀은..
지금까지 나는 React을 활용하면서 배포과정이라던가 캐싱 같은 부분을 vercel같은 편리한 배포툴에 의존하는 편이었다.그래서 Next.js 등을 배우면서 SSR, SSG의 개념을 처음 접하게 되었고, getStaticProps, getServerSideProps, getStaticPath들의 사용법도 처음 알게되었다. 이게 이론적인 설명만 들을 땐 '아하 그런거구나' 싶더라도 '결국 코드로 구현했을때는 어떻게 되는건데?', "왜 이렇게 설계되어있는거지?" 등의 의문이 계속 있게 되었다. 그러나 Udemy React/Next 강의를 들으며 조금 더 제대로 정리하게 되었고 이를 적어보려한다. getStaticProps란?정적 페이지(Static Site Generation)를 빌드할 때 사용한다.이름 ..
URL 마스킹이란?URL 마스킹은 사용자에게 보여지는 URL을 실제 페이지 구조와는 다르게 표시하고자 할 때 사용되는 기술이다.(router.push 또는 router.replace 메소드를 사용할 때 쓸 수 있는 'as 파라미터'가 URL 마스킹에 사용된다.)url 파라미터: 실제로 라우팅되는 페이지의 경로as 파라미터: 브라우저의 주소 표시줄에 표시되는 경로 왜 쓰는데?사용자 경험 향상: 사용자에게 더 읽기 쉽고 이해하기 쉬운 URL을 제공함으로써 사이트의 전반적인 사용자 경험을 개선할 수 있다.보안 강화: 사용자가 URL을 통해 어떤 정보를 추측하는 것을 방지할 수 있다. UseRouter를 쓸 때 URL 마스킹하기 (예시)예를 들어, 사용자가 /products/1 페이지에 있고, 이 상품의 이름이..
Next.js에서 파일이나 폴더 이름 앞에 언더스코어(_)가 붙는 것은 특별한 의미를 지니며, 주로 Next.js 프레임워크의 내부적인 또는 시스템에 의해 특별하게 처리되는 요소들을 나타낸다. '_'가 앞에 붙는 특수 파일1. _app.js 또는 _app.tsx이 파일은 Next.js 애플리케이션의 루트 컴포넌트를 정의하며, 모든 페이지에 공통적으로 적용되는 레이아웃이나 상태를 설정하는 데 사용된다. _app.js는 페이지 전환 시 상태를 유지하고, 전역 CSS를 추가하는 등의 기능을 수행할 수 있다.2. _document.js 또는 _document.tsx_document.js는 서버에서만 렌더링되며, 초기 서버 사이드 렌더링 시 HTML 문서의 구조를 구성한다. 이 파일을 통해 , 태그와 같은 HT..
_app.js란? Next.js에서 보면 _app.tsx파일을 활용한 경우가 종종 존재한다. 이것은 어디다 쓰는 파일일까? 리액트를 사용해봤으면 app.tsx파일에서 각종 전역상태관리 provider, 레이아웃용 컴포넌트 등을 관리해본 경험이 있을것이다. _app.tsx는 바로 그 용도로 사용된다. (사실 _app.js는 Page Router에서 주로 쓰이는 파일이다. App Router 구조에서도 쓰일수는 있지만 _App.js의 역할을 쪼개어 분리한 다른 파일 컨벤션을 사용한다.본문 아래에 정리되어있다.) _app.js의 역할 말했다시피 리액트 앱의 app.tsx 혹은 main.tsx의 역할과 거의 동일하다고 보면 된다. 전역 상태 관리 설정 (예: Redux, Context API) 페이지 전환시 레..
예전에 사용해봤던 React Snap, React Helmet의 사용법과 유사하다. 그러나 ReactSnap이나 ReactHelmet처럼 번거로운 설정들이 필요없다는 것이 장점이다. Next.js에서 Head 설정하기 우선 아래와 같이 import 시켜준다. import Head from "next/head"; 전체적으로 이름을 정해주려면 우선 _app.js파일(page router) 혹은 Document파일 등에 가서 아래와 같이 지정해준다. 메타태그 또한 같이 지정가능하다. 메타태그는 검색엔진을 검색할 때 중요한 태그가 되니 되도록이면 넣어주도록 하자. 그러나 페이지마다 다른 Head title 설정도 가능하다. Head 태그 안에다가 title / image / description, og tag ..
들어가기 앞서 Next.js는 framework로써 여러 성능 최적화 유틸 태그를 제공한다. 대표적으로 Link태그나 Image태그를 제공한다. (React에도 Link태그가 있다고? 아니다. 리액트 환경에서 사용하는 Link태그는 React-Router-Dom 라이브러리가 제공하는 태그이다.) 특히 Next.js의 Link 태그는 리액트 라우터 돔의 Link태그보다 더욱 성능 최적화가 되어있고, Image태그도 기존 img태그에 비해 많은 최적화가 되어있는 유틸 태그이다. 이번 시간은 이에 대해서 알아보도록 하자. Link 태그와 a태그와의 성능 비교 위 이미지는 예제 블로그 사이트이다. 저기서 첫 번째 글은 하이퍼링크로 되어있고 클릭하면 첫 번째 글로 이동한다. 이를 a태그와 Link태그로 각각 구현..
라우팅 Next js에서는 File system을 기반으로 라우팅이 된다. File system은 pages폴더 아래 있어야하며 src/pages/ 와 pages/ 가 있다면 후자가 우선순위. slug 파일 wild card처럼 다양한 값을 받을수 있는데, 하나의 파일로 여러 파일을 대체할 수 있다. 1. [slug] pages / category / [slug].js; // http://www.~~~~.com/category/:slug 와 같음 2. [...slug] 단 한개의 route를 커버하는게 아니라 하위 route를 모두 커버 가능하다. 나중에 useRouter의 query메소드로 가져오면 배열을 반환받을 수 있다. pages / category / [...slug].js; // http://..