SEO(3) - 프로젝트에 오픈그래프 적용하기
📌시작하며 이전 포스팅에서 오픈그래프 만드는 법에 대해 쭉 살펴보고, 프로젝트에 적용했는데 역시나😅 예상치 못한 오류를 여럿 마주했다. 다행히 그 오류들을 해결하고 오픈그래프 적용을 완료해서, 관련 내용을 잊지않게 정리하고자 한다. ✅프로젝트 상황 기본적으로 모든 페이지에 적절한 오픈그래프가 적용될 수 있도록 figma를 이용해 이미지를 만들어 ...
📌시작하며 이전 포스팅에서 오픈그래프 만드는 법에 대해 쭉 살펴보고, 프로젝트에 적용했는데 역시나😅 예상치 못한 오류를 여럿 마주했다. 다행히 그 오류들을 해결하고 오픈그래프 적용을 완료해서, 관련 내용을 잊지않게 정리하고자 한다. ✅프로젝트 상황 기본적으로 모든 페이지에 적절한 오픈그래프가 적용될 수 있도록 figma를 이용해 이미지를 만들어 ...
📌 프로젝트를 이어받다. 같은 FE 동료의 퇴사가 결정되어, 앞으로 이어서 내가 해당 프로젝트를 작업하게 되었다. 👀 데일리 스크럼을 진행한 덕분에 해당 개발자 분께서 어떤 코드를 작성하실 때 가장 많은 시간을 소요하셨는지, 어떤 것을 중점적으로 생각하고 계신지는 대략적으로 파악하고 있었고, 인수인계 문서를 꼼꼼히 작성해두셔서, 순조롭게 인수인계가...
📌들어가며 (작성중~) Docker는 개발자라면 한 번씩 들어보지 않았을까 싶다.😎 인강 커리큘럼에도 포함되어 있고, 관련 경험자를 구하는 글을 몇 번 봤는데 🤔 이쯤되니, Docker가 어떤건지, 왜 필요한지 궁금해져서 알아보려고 한다. ✅Docker의 필요성 어떤 애플리케이션을 만든다고 가정해보자. 개발자들은 이 애플리케이션을 제작하기 위해 ...
📌시작하며 Next.js에서는 이전 SEO포스팅에서 정리했던 meta 태그들을 간단하게 만들 수 있는 방법을 제공한다. 공식문서 예제를 보고 응용해보면서 방법을 익혔는데, 의외로(?) 오픈그래프 쪽은 공식문서 내용이 부족하다고 느꼈다… 😅 그래서이번 포스팅에서는 나름 시행착오를 거치며 학습한 Next.js 오픈그래프 설정에 대해 정리해보고자 한다! ...
📌시작하며 프로젝트 최적화 작업을 마무리하고.. 이번엔 접근성(Accessibility) 점수를 개선해보고자 한다. 😎 개인적으로 접근성 하면 생각나는 말이 있다. 내가 한창 수업이나 과제에 아이패드를 활용하던 중에 ‘손쉬운 사용’기능이 있다는걸 알게되었고, 사용법을 찾아보던 중 한 유튜브 영상을 접하게되었는데, 그때 출연자가 이 기능을 설명하면서...
📌시작하며 앞에서 Graph QL을 간단하게 훑어봤는데… 그럼 REST API에서 말하는 CRUD는 어떻게 구현하는거지?🤔 라는 의문이 들었고 간단한 어플을 만들어 보면서 공부한 내용을 정리하고자한다. (정확히 말하면 CRUD는 아니지만 이 글에서는 편의성을 위해 CRUD라고 작성한다) ✅전체 흐름 이 CRUD를 구현하기 위해서는 크게 세 부분...
📌시작하며 유튜브 강의를 듣고 백엔드에서 만들어 둔 내용을 read하는 간단한 앱을 만들어봤는데, 백엔드 설정부분에서 이해가 부족한 부분을 채우고자 한다.😎 ✅typeDefs typeDef(Type Definition)는 GraphQL스키마 구조를 정의한다. 각 필드는 지정된 유형의 데이터를 반환하는데, 필드의 반환 유형은 scalar, obje...
📌시작하며 Graph QL 관련 자료를 찾다보니, Apollo를 함께 사용하는 것을 보았다.😎 Apollo는 무엇인지, 어떻게 적용할 수 있는지 알아보고 Graph QL 관련된 유튜브 영상에서 배운 내용을 나름대로 정리해보고자 한다. ✅Apollo란? 공식 문서의 설명을 살펴보자. Apollo는 데이터를 통합하고 서비스들을 단일 분산 Gr...
📌시작하며 Graph QL이라면 아마 개발 공부를 하는 사람이라면 한 번쯤은 들어봤을 거다! 내가 봤던 인강 코스에서도 있었고, 개발 유튜브 채널에서도 등장했고, 개발자들 대화나 채용공고에서도 자주 볼 수 있기 때문이다.🤔 사실 나는 Graph QL이라는 이름만 들었을 때 그래프를 이용한 시각화 라이브러리의 일종이지 않을까? 라고 생각했었다…😅 ...
📌시작하며 최근에는 계속해서 프론트엔드 기술 중 “최적화”에 초점을 맞춰 공부하고 있다. 이 최적화 단계에는 사용자 경험(UX)를 위한 일을 포함하는 건 물론, 코드 최적화 단계를 포함한다. 이번 포스팅에서는 커스텀 훅으로 가독성과 유지보수성을 높일 수 있는 방법을 정리하고자 한다. ✅Hook이란? 리액트를 처음 접했을 당시 읽었던 책들은 앞에서...
📌시작하며 이번 프로젝트에서 새롭게 사용한 API가 있다! 바로 File API인데, 여러 자료를 참고해서 구현은 했지만 아직 완전히 이해하고 내 것으로 만든 것은 아니라 제로부터 스스로 작성하긴 어려울 것 같다고 생각했다.🤔 그래서 이번에 File API에 대해 알아보고 프로젝트를 복기해보려고 한다. ✅File API File API는 웹 애플...
📌시작하며 이 글은 아래와 같이 이어집니다. 최적화 적용(2) - Next Image 공식문서 분석 Next/Image를 다 잘 활용해보고자 이 전 포스팅에서 Next/Image 공식문서를 읽고, 활용법에 대해 복습했었다. 이후 포스팅을 바탕으로 이미지 최적화를 위해 몇 가지 리팩토링을 진행했고, 공식문서를 읽었을 때 헷...
📌시작하며 이 글은 아래의 오류를 해결하고, 작성하는 포스팅입니다. (해결 안됨) Hydration failed because the initial UI does not match what was rendered on the server. ⛔문제상황 문제상황을 복기해보자면, Header.tsx 컴포넌트에서, localSto...
📌시작하며 프로젝트에서 React.memo, useMemo, useCallback을 사용해서 메모를 통한 최적화 방식을 적용했다. 어떤 것들에 적용했는지 정리하고자 포스팅한다.😎 ✅React.memo React.memo는 컴포넌트가 받는 props가 변경되지 않는 한, 해당 컴포넌트가 재랜더링되는 것을 방지한다. React Dev Tools를 ...
📌시작하며 프로젝트에서 dark/light 모드를 지원하면서 문득, 사용자가 이미지를 업로드 하지 않았을 때 보여지는 이미지가…너무 밝지 않나?! 라는 생각을 하게 됐다. light 모드에는 괜찮은데 dark 모드라면 사용자가 불편할 수 있겠다는 생각을 하게 되었고, 각 모드별로 대응 되는 이미지로 변경하기로 결정했다! 생각했던 첫 번째 방식은 d...
📌시작하며 이 글은 아래와 같이 이어집니다. 최적화 적용(4) - Next Image 적용 사실 지금 프로젝트에서 이미지 최적화를 어떻게 하면 좋을지 고민이 많았다.(물론 지금도…)🤔 일단 이미지가 사용되는 전체적인 흐름은 다음과 같다. graph LR; A(사용자 웹 접속, 데이터 요청) --> B(데이...
📌시작하며 지난 포스팅에서 계속 최적화 방식에 대해 알아봤는데 이제 직접 프로젝트에 적용해보려고 한다.😎 일단 가장 간단해보이는(?) 폰트 최적화 부터 시작하기로 했다. 현재 사용하고 있는 폰트 파일을 봤더니 생각 이상으로 용량이 엄청나다!😅 (약 12mb…) 나는 두 가지 언어에 관한 폰트를 사용하고 있기 때문에 용량이 무려 2배!🥲 폰트를 불러...
📌시작하며 이번에는 폰트를 최적화해보자.😎 Next.js의 경우 Next/font를 이용해 최적화 된 폰트를 사용할 수 있는데, 이번에 진행한 프로젝트에서는 로컬 폰트를 사용하면서 다른 방식의 폰트 최적화의 필요성을 느꼈다. 어떤 방법이 있는지 알아보고 프로젝트에 적용해보고자 한다. ✅확장자별 폰트 사이즈 지난번 동영상, 이미지에서도 알아봤던 것...
📌시작하며 지금까지 정적 파일들에 대한 최적화에 대해 알아봤다면, 이번에는 코드 작업에서 불필요한 리렌더링을 줄이는 방법 ‘메모이제이션’에 대해 알아보자.🥰 ✅React Developer Tools 먼저 만든 리액트 컴포넌트들이 어떻게 작동하는지 확인하기 위해서 React Developer Tools를 사용할 수 있다. Chrome, Firefo...
📌시작하며 이번에는 이미지를 최적화 해보자! ✅이미지 최적화 이미지 최적화는 동영상 최적화와 마찬가지로, 사이즈를 줄이는 것에서부터 시작한다. ➡️적절한 이미지 포맷 설정 💟webP 포맷 WebP은 인터넷에서 이미지가 로딩되는 시간을 단축하기 위해 Google이 출시한 파일 포맷으로, PNG, JPEG 기존 포맷 파일 보다 작아진다. CAN...
📌시작하며 프로젝트 최적화는 웹 성능을 향상시키고, 더 나은 사용자 경험을 만드는데 있어서 필수불가결한 요소이다. 지금 듣고 있는 강의도 ‘최적화’에 대해 알고 싶어서 구매했었는데, 최적화에 대해 집중적으로 학습하고, 나름대로 정리해보고자 한다. ✅동영상 최적화 동영상 최적화의 시작은 ‘용량을 줄이는 것’ 이다. 인생 첫 프로젝트 당시 무조건 화...
📌시작하며 react-portal에 대해 정리하다가 알게 된 dialog태그에 대해 정리해보고자 한다. ✅<dialog>태그 dialog 태그는 팝업 대화 상자를 간단하게 만들 수 있는 태그로, 경고창, 확인창 입력폼 등으로 활용할 수 있다. 기본적으로 모달 형태를 갖는다. dialog태그는 어떤 브라우저에서 사용할 수 있을까? MD...
📌시작하며 최근 강의를 수강하며 학습용 프로젝트를 진행 중이다. 강의 내용 중에 React Portal을 사용해 Modal을 만드는 부분이 나오는데, 해당 기능의 존재는 알고있었지만 실제 프로젝트에 적용해보는 건 처음라서, 강의 내용을 기반으로 스스로 학습한 내용을 추가해 정리해보고자 한다. ✅React Portal 이란 공식문서에서는 이 기능을...
📌시작하며 이전 포스팅에서 seo의 종류에 대해 알아봤는데, 이번 포스팅에서는 On-site SEO에서 meta 태그에 대해 알아보고자 한다. 이 글은 아래와 같이 이어집니다. SEO(1) SEO(2) SEO(3) ✅title태그 <!DOCTYPE html> <html> <...
📌시작하며 Next.js를 학습하고, 목표했던 프로젝트 제작이 전체적으로 마무리되었다. 이제 Meta Data와 Open graph등을 적용하는 단계가 남았다. 이런 과정은 모두 더 나은 SEO를 위해서인데, 이번 포스팅 시리즈(?) 에서는 SEO와 프론트엔드에서 SEO를 위해 어떤 것을 사용할 수 있는지 학습한 내용을 정리하고자 한다. 이 ...
📌시작하며 이번에는 Tailwind를 이용해 간단하게 다크모드를 구현 할 수 있었는데, 관련내용을 정리하고자 한다. 이 글은 아래와 같이 이어집니다. TailwindCSS 세팅(1) TailwindCSS 세팅(2) TailwindCSS 세팅(3) TailwindCSS 세팅(4) ✅Tailwind.c...
⛔문제상황 localStorage와 tailwind를 이용해 darkmode를 구현하는 도 중 오류가 발생했다. Error: Hydration failed because the initial UI does not match what was rendered on the server. Warning: Expected server HTML to c...
📌시작하며 이전 포스팅에서 OAuth에 대해서 정리해보았고, 이번엔 다른 로그인 방식에 대해서 정리해보고자 한다. 전에 면접 후기를 보았을 때 ‘세션 로그인 방식과 토큰 로그인 방식의 차이를 아시나요?’ 라고 물으셨다고 하는데, 나 또한 그 질문을 들었다면 🥹(…네?) 하고 당황할 것 같기 때문이다. 그리고 이왕 로그인 방식에 대해 알아보기 시작했으...
📌시작하며 지난 프로젝트에서는 firebase를 이용해 이메일 로그인을 구현했었다. 그 때 다음 프로젝트에서는 SNS 로그인을 구현해봐야지! 다짐했었고, 구현 중에 있다.😎 next-auth를 쓰면 정말 간단하게 다양한 제공자의 로그인 기능을 구현할 수 있는데, 구현 방법만 쭉 정리하기 보다는 OAuth 자체를 정리하면 프로젝트의 흐름을 더 잘 이...
⛔문제상황 yarn을 이용해 next-auth를 설치하려고 하자 다음과 같은 오류가 발생했다. error An unexpected error occurred: “EPERM: operation not permitted, unlink ‘C:\Users\\node_modules\@next\swc-win32-x64-msvc\next-swc.win32...
📌시작하며 현재 만들고 있는 프로젝트에서는 첫 화면에서 DB에 있는 data를 불러와 렌더링해서 보여주려고 한다.😎 useQuery를 써서 불러올까 했지만, Next13의 data Fetching 기능을 사용해보고 싶기도 했고, 프로젝트 내의 다른에서 무한 스크롤을 적용해 데이터를 전부 가져올 예정이기 때문에, 루트 페이지에서는 겹치지 않는 기능을 ...
📌시작하며 무한 스크롤 사용자가 페이지 하단에 도달 할 때 새로운 콘텐츠를 로딩하여 사용자에게 콘텐츠를 끊임없이 제공할 수 있도록 하는 방식 무한 스크롤은 아마 한 번씩은 다들 경험해 본 방식일 것이다.🤔 한 번에 많은 양을 로딩하기에 시간이 오래 걸릴 경우, 분할해서 로딩해 줄 수도 있고, 사용자의 호기심을 자극해 사용자가 더 오래 애플리...
📌시작하며 사용자가 입력한 내용을 수정할 수 있는 페이지를 만들다가, 문제점을 발견했다. 먼저 계획한 로직은 다음과 같다. graph LR; B(api요청 후데이터 받아오기)--> C(데이터 줄바꿈 기준으로 split 후input에 defaultValue 지정); C--> D(사용자가 그 중 원하는 값만 수정 후 제출) defaul...
⛔문제상황 input을 사용한 컴포넌트를 만들다 아래와 같은 오류가 발생했다. app-index.js:35 Warning: A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined ...
⛔문제상황 아래 글에서 mermaid 문법을 사용해 그래프를 그렸는데, 나중에 확인해보니 그래프가 제대로 표시되지 않는 문제가 발생했다. (현재는 수정 완료!) supabase와 prisma(4) -storage 이용하기 ⭕제대로 표시 된 예 graph LR; A[사용자] --> B(파일 업로드); B -...
⛔문제상황 Next13 api 요청 함수를 만들다, 아래와 같이 에러가 발생했다. Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:...
📌시작하며 Flux 패턴을 사용하는 React는 전체적으로 상태를 공유하기 위해서 전역 상태 관리 라이브러리(혹은 그것을 도와주는 무언가…)를 사용해야 한다. 이를 위해 처음 React 프로젝트에서는 Redux를 사용했고, 그 다음 프로젝트는 비교적 간단한 상태 관리가 필요해 Context API를 사용했다. 사실 Context API를 사용한 프...
📌시작하며 프로젝트에서 이미지를 업로드하고, 해당 이미지를 저장할 필요가 있었다! supabase의 storage를 이용하면 되는데, 어떻게 코드를 작성했는지 돌아보며 정리해보고자 한다. 이 글은 아래와 같이 이어집니다. supabase와 prisma(1) - 기본 개념 supabase와 prisma(2) - prisma...
⛔문제상황 supabase storage에 업로드 된 내용을 받아와 표시하려고 시도하자 Error: Invalid src prop (https://[수퍼베이스id].supabase.co/storage/v1/object/public/thumbnail/이미지.jpg) on next/image, hostname “[수퍼베이스id].supabase....
📌시작하며 이전 포스트에서 타입스크립트의 기본적인 내용을 살펴봤다면, 이번엔 타입스크립트를 편하게 사용하게 해주는 제네릭과 제네릭 유틸리티 타입에 대해 알아보고자 한다.😎 이 글은 아래와 같이 이어집니다. Typescript(1) Typescript(2) ✅제네릭 ➡️기존 사용 방식 제네릭은 코드를 더 유연하...
📌시작하며 리액트 쿼리는 아마 한 번쯤은 다들 들어봤을 거라 생각한다. 따로 강의를 들으면서 리액트 쿼리를 사용해봤는데, 직접 프로젝트에 적용해보는 것은 처음이라, 이번 글에서는 “그래서 리액트 쿼리가 뭔데?!” 라는 질문에 대한 답을 찾아보고, 사용법을 익혀보고자 한다.😄 (이 글은 v5 docs를 참고해 작성했다.) ✅React-Query(Ta...
📌시작하며 이번 프로젝트에는 form을 자주 사용하는데, form을 다룰 때 사용하면 좋은 라이브러리 중 React-Hook-Form을 도입해보고자 한다. ✅ React-Hook-Form 공식 사이트에서는 이렇게 소개한다! React-Hook-Form은 성능이 우수하고 유연하며 쉬운 유효성 검사를 통한 확장 가능한 폼입니다. 그럼 일단...
📌시작하며 기본 CRUD에서 더 다양한 활용법을 함께 정리하고자 한다. 이 글은 아래와 같이 이어집니다. supabase와 prisma(1) - 기본 개념 supabase와 prisma(2) - prisma CRUD supabase와 prisma(3) - prisma 심화 supabase와 prisma(4)...
📌시작하며 이어서 prisma를 이용해 api 작성시, 자주 쓰이는 문법을 살펴보자! 이 글은 아래와 같이 이어집니다. supabase와 prisma(1) - 기본 개념 supabase와 prisma(2) - prisma CRUD supabase와 prisma(3) - prisma 심화 supabase와 p...
📌시작하며 이번 프로젝트는 Next.js를 이용해 RESTful API를 작성해 DB와 상호작용하는 부분이 포함된다. 백엔드 담당자가 없이 진행하는 프로젝트인만큼, 프론트엔드에서도 간단하게 사용할 수 있는 DB 중, supabase를 이용하기로 결정했다. 이 글은 아래와 같이 이어집니다. supabase와 prisma(1) - ...
📌시작하며 프론트엔드 개발자는 "타 직군과 커뮤니케이션🤝 할 상황이 굉장히 많다"라는 건 아마 모두가 인정하는 사실일 것이다. 하나의 프로덕트를 위해 디자이너와 백엔드 개발자는 물론, 서비스 기획, 프로젝트 매니저 등 정말 많은 사람과 함께 달려가는거다! (개인적으로 이 과정이 개발자가 가진 매력 중 하나가 아닐 까 생각한다. 마치 소년만화의 주인...
📌시작하며 정보처리기사 필기시험을 보고 왔고, 예비 합격 후 쓰는 후기 글! 🤔공부를 시작하다 프론트엔드 면접 예상 질문들을 읽어보면 CS 지식이나 알고리즘, 자료구조 등을 만날 수 있다. 알고리즘이나 자료구조는 코딩테스트 공부를 하면서 함께 학습하고 있는데 CS는 추가로 학습이 필요하다는 걸 느꼈다! (현업에 계신 분들도 꾸준히 공부하신다는 글...
📌시작하며 프로젝트를 시작하고 Tailwind를 사용하다 보니 자꾸 똑같은 속성의 클래스명을 헷갈려서, 자주 쓰는 내용을 정리해보면 좋을 것 같아 포스팅을 작성한다. 이 글은 아래와 같이 이어집니다. TailwindCSS 세팅(1) TailwindCSS 세팅(2) TailwindCSS 세팅(3) Tailwi...
📌시작하며 이번에 진행하는 프로젝트에서 전부터 해보고 싶었던 ‘언어 변경’기능을 구현하고 있다. 한국어와 일본어 두 언어를 지원하는 애플리케이션인데, 각 언어에 적절한 font를 사용하고 싶어 방법을 검색해보게 되었다. 🤔 Next/font를 시도하다 이번 프로젝트에서는 Next13을 사용하고 있고, Next.js가 13으로 업데이트되면서 새로 ...
📌시작하며 TailwindCSS 세팅(1)편에서 plugin이나 그 외 세팅을 마무리 했으니 이번엔 tailwind 컬러를 커스텀 해보고자 한다. 사실 거창해보이지만 별 건 없다🤭 이 글은 아래와 같이 이어집니다. TailwindCSS 세팅(1) TailwindCSS 세팅(2) TailwindCSS 세팅(3) ...
📌시작하며 Next.js에서 TailwindCSS 이용해 스타일링을 하기로 결정하고, 필요한 플러그인을 설치했다. 하지만 예상대로 작동하지 않거나 오류가 발생하는 경우가 있었다. TailwindCSS는 종종 사용할 것 같으니 이번 기회에 어떤 오류가 있는지 정리하고, 나름의 세팅 과정을 정리해보고자 한다. 이 글은 아래와 같이 이어집니다. ...
📌시작하며 Next.js + Typescript 인강을 듣던 중 선생님께서 (제네릭을 사용하시면서) 이 부분은 조금 어려울 수 있어요. 라고 말씀하셨는데.. 그 말씀 그대로였다. 선생님께서 작성하시는 문법이 타입스크립트 제네릭인 건 알고 있지만 그걸 내가 자유자재로 쓸 수 있는 가는 아무래도 다른 문제다 보니… 😥 그래서, 이번엔 확실하게...
📌시작하며 이 글은 아래와 같이 이어집니다. Next.js 13의 특징과 변화(1) Next.js 13의 특징과 변화(2) Next.js 13의 특징과 변화(3) routes 부분도 12 버전과 달라진 부분이 꽤 있다! 헷갈리지 않도록 이 번엔 Next13의 API Routes🌹에 대해 알아보자. ✅API...
📌시작하며 이 글은 아래와 같이 이어집니다. Next.js 13의 특징과 변화(1) Next.js 13의 특징과 변화(2) Next.js 13의 특징과 변화(3) 이 번엔 Next13의 꽃🌺 app 폴더를 살펴보고, api 작성법에 대해 정리해보고자 한다. ✅app router app/ │ ├───pag...
📌시작하며 개발 공부를 시작하고 지금까지 notion으로 많은 양을 정리해왔다. 하지만 notion으로 정리하면 아무래도 블로그보단 폐쇄적인 공간인 만큼 작성한 글을 누군가에게 보여주기 애매한 부분이 있었다. 아마 많은 개발자가 그렇겠지만.. 그 동안 다른 개발자분들의 블로그를 통해 공부한 부분이 많기에, 블로그를 시작해보면 어떨까? 생각하게 되었...
📌시작하며 이 글은 아래와 같이 이어집니다. Next.js 13의 특징과 변화(1) Next.js 13의 특징과 변화(2) Next.js 13의 특징과 변화(3) Next.js 강의를 수강을 시작한지 어느정도 시간이 지났다. 내가 React를 공부하기 시작했을 때는 많은 프로젝트나 강의가 클래스형 컴포넌트에...
📌시작하며 웹 애플리케이션에서 성능 측정은 어떻게 할까? 이번 글에서는 내 나름대로 성능지표와 Lighthouse에 대해 정리하고, 활용해볼 수 있는 자료를 만들어보고자 한다. ✨Lighthouse 이 내용은 Chrome for Developers 를 참고해 작성한다. Lighthouse는 웹페이지 품질을 개선하기 위한 오픈소스 자동화 ...
📌시작하며 컴포넌트를 만들다 보면, onClick이나 onMouseOver등의 이벤트를 props로 받아와야 하는 일이 간혹 생기곤 한다. 물론 props로 내려줘서 작업해도 문제는 없지만, 이벤트가 하나 더 발생하면, 컴포넌트에 정의해둔 props의 interface안에 작성해줘야 하는 번거로움이 생긴다. 그래서 미리 정의할 때 타입을 확장해서 ...
📌시작하며 연말에 가볍게 진행한 프로젝트에서 Jest를 간단히 적용해보았다. 역시 처음 도입하는 것이다 보니 시간도 많이 소요되고 삐그덕 거리기는 했지만 그래서 그런지, PASS가 뜰 때마다 너무 기뻐서 다들 봐달라고 하고 싶었다… 🤣 어쨌든, 이번 포스팅에서는 프로젝트를 진행하면서 새롭게 배운 Jest의 내용을 정리해보면서 복습해보려고 한다. ...