그럴듯한 개발 블로그
nextjs에서 오래 걸리는 api를 suspense로 최적화하기
<frontend>/next.js 2024. 7. 1. 00:50

streaming SSRdynamic rendering으로 빌드된 페이지에서 10초 걸리는 api를 서버에서 호출하면 사용자의 첫 로드가 그만큼 느려진다. 이를 해결하기 위해 nextjs13 이상부터는 suspense를 사용해 쉽게 streaming SSR을 적용할 수 있다.import { Suspense } from 'react';import SlowComponent from './SlowComponent';export default function Home() { return ( Welcome to my page Loading slow component...}> );}// app/SlowComponent.jsasync function fet..

nextjs api기능으로 목업api만들기
<frontend>/next.js 2024. 7. 1. 00:19

프론트엔드에서 신규 기능을 개발하다 보면 목업 데이터를 만들어 사용하곤 했다. 근데 react-query같이 서버상태관리 라이브러리를 붙이는 상황에선 목업 데이터를 사용하기 좀 번거롭다.이전 mejai 프로젝트에선 친절한 백엔드팀원이 목업 api를 만들어 주어 아주 편하게 사용했지만, 이는 팀원이 일을 두번 하게 되는 방법이었다. 이를 해결해 보자. next.js는 자체 서버에서 api를 관리할 수 있다. api를 만들고 해당 엔드포인트로 요청을 보내면 next.js서버에서 서버리스로 핸들러가 호출되어 작동한다.핸들러를 만드는 방법 또한 매우 간단하다.API 라우트 파일 생성: 프로젝트의 pages/api 폴더 안에 새 파일을 생성한다. 예를 들어, user.js라는 이름으로 파일을 만든다.목업 데이터 ..

article thumbnail
Next.js프로젝트에 구글 애드센스 달기
<frontend>/next.js 2024. 6. 28. 23:34

nextjs app router 기준 애드센스 적용 방법에 대해 정리해 보았다.애드센스 관련 레퍼런스가 적어서 많이 헤맸다..중간에 포기하고 카카오 애드핏이나 쿠팡광고를 붙여볼까 싶었지만 너무 높은 수수료 때문에 관뒀다 거의 두 배 차이 난다 먼저 애드센스 허가부터 받아야 한다.애드센스 심사는 텍스트 기반이라 글이 많은 블로그같은 서비스가 아니라면 허가가 쉽지 않다./blog폴더에 글을 2000자 이상 넣는 꼼수를 써봤지만 실패했다.결국 티스토리에 도메인 연결, 애드센스 연동 후 옮기는 방법을 사용했다.https://www.youtube.com/watch?v=WE_gop9Vh4M이대로 해도 15번정도 요청 반려됐다; 13번째부터는 일주일 심사 쿨타임 걸리니 마구 누르지 말 것.트래픽 어느정도 있어야 하는..

서버리스 nextjs
<frontend>/next.js 2024. 5. 22. 12:48

겁나 싼 서버리스로 nextjs서버를 돌리면 어떻게 될까?장점자동 확장성: 서버리스 아키텍처는 자동으로 확장된다. 트래픽 증가 시 Lambda 함수가 자동으로 더 많은 인스턴스를 실행하여 요청을 처리한다.관리 부담 감소: 서버를 직접 관리할 필요가 없으므로, 인프라 관리에 대한 부담이 줄어든다. 이는 운영 및 유지보수 작업을 줄여준다.비용 효율성: 사용한 만큼만 비용을 지불하는 Pay-as-you-go 모델을 사용한다. 트래픽이 적을 때 비용이 절감될 수 있다.빠른 배포: 서버리스 환경에서는 애플리케이션을 빠르게 배포하고 업데이트할 수 있다. 이는 개발 속도를 높이는 데 도움이 된다.무중단 배포: 새로운 코드를 배포할 때 서비스 중단 없이 배포할 수 있다.단점파란색 글자: 솔루션콜드 스타트: Lambda..

서버사이드에서 query param 접근하기
<frontend>/next.js 2024. 5. 15. 17:13

useSeachParams는 클라이언트사이드 훅이다보니 ssr시 suspense로 감싸서 csr하지 않으면 build단계에서 워닝을 뱉더라.구글 애드센스에서 csr되는걸 못 잡는다고 들어서 최대한 ssr을 늘리려다 보니 서버페치를 하기 위해 query param의 접근이 필요했다.아래처럼 props로 searchParams를 받을 수 있다. 객체로 전달되지 않아 new 연산자로 URLSearchParams객체로 만들어줬다.export default function SummonerPage({ searchParams,}: { searchParams: URLSearchParams;}) { const params = new URLSearchParams(searchParams); const id = par..

next.js 블로그 제작 후기
<frontend>/next.js 2023. 12. 25. 23:39

https://donghyun1998.github.io/ https://donghyun1998.github.io/ donghyun1998.github.io 42 서울 webserv과제가 끝난 후 빈둥대던 와중 sunhwang님이 nextjs로 개인 blog 만들기 스터디를 모집하시길래 후다닥 들어갔다. c, c++, webserv에서 배운 기본 지식? 정도만 알고 있는 나에겐 스터디 첫날 스터디원분들의 대화를 10퍼센트도 이해하지 못했다. 그래서 모르는 키워드들을 노션에 전부 적어두고 스터디장이신 sunhwang님을 붙잡고 죄다 물어봤다. 다행히 webserv에서 배운 지식들 기반으로 여러 번 여쭤본 결과 조금이나마 이해할 수 있었다. 한 달 동안 진행된 스터디에서 아주 많은 것들을 얻을 수 있었다. 1..