saemii blog

프로젝트 최적화(1) - 동영상 최적화

📌시작하며 프로젝트 최적화는 웹 성능을 향상시키고, 더 나은 사용자 경험을 만드는데 있어서 필수불가결한 요소이다. 지금 듣고 있는 강의도 ‘최적화’에 대해 알고 싶어서 구매했었는데, 최적화에 대해 집중적으로 학습하고, 나름대로 정리해보고자 한다. ✅동영상 최적화 동영상 최적화의 시작은 ‘용량을 줄이는 것’ 이다. 인생 첫 프로젝트 당시 무조건 화...

next-auth 이용하기(2)-로그인 방식을 이해해보자

📌시작하며 이전 포스팅에서 OAuth에 대해서 정리해보았고, 이번엔 다른 로그인 방식에 대해서 정리해보고자 한다. 전에 면접 후기를 보았을 때 ‘세션 로그인 방식과 토큰 로그인 방식의 차이를 아시나요?’ 라고 물으셨다고 하는데, 나 또한 그 질문을 들었다면 🥹(…네?) 하고 당황할 것 같기 때문이다. 그리고 이왕 로그인 방식에 대해 알아보기 시작했으...

next-auth 이용하기(1)-OAuth에 대해 알아보자

📌시작하며 지난 프로젝트에서는 firebase를 이용해 이메일 로그인을 구현했었다. 그 때 다음 프로젝트에서는 SNS 로그인을 구현해봐야지! 다짐했었고, 구현 중에 있다.😎 next-auth를 쓰면 정말 간단하게 다양한 제공자의 로그인 기능을 구현할 수 있는데, 구현 방법만 쭉 정리하기 보다는 OAuth 자체를 정리하면 프로젝트의 흐름을 더 잘 이...

Next.js 13의 특징과 변화(4) - Data Fetching

📌시작하며 현재 만들고 있는 프로젝트에서는 첫 화면에서 DB에 있는 data를 불러와 렌더링해서 보여주려고 한다.😎 useQuery를 써서 불러올까 했지만, Next13의 data Fetching 기능을 사용해보고 싶기도 했고, 프로젝트 내의 다른에서 무한 스크롤을 적용해 데이터를 전부 가져올 예정이기 때문에, 루트 페이지에서는 겹치지 않는 기능을 ...

React-Query(TanStack-Query)를 사용해보자! (2) - 무한스크롤

📌시작하며 무한 스크롤 사용자가 페이지 하단에 도달 할 때 새로운 콘텐츠를 로딩하여 사용자에게 콘텐츠를 끊임없이 제공할 수 있도록 하는 방식 무한 스크롤은 아마 한 번씩은 다들 경험해 본 방식일 것이다.🤔 한 번에 많은 양을 로딩하기에 시간이 오래 걸릴 경우, 분할해서 로딩해 줄 수도 있고, 사용자의 호기심을 자극해 사용자가 더 오래 애플리...

React-Query(TanStack-Query)를 사용해보자! (1)

📌시작하며 리액트 쿼리는 아마 한 번쯤은 다들 들어봤을 거라 생각한다. 따로 강의를 들으면서 리액트 쿼리를 사용해봤는데, 직접 프로젝트에 적용해보는 것은 처음이라, 이번 글에서는 “그래서 리액트 쿼리가 뭔데?!” 라는 질문에 대한 답을 찾아보고, 사용법을 익혀보고자 한다.😄 (이 글은 v5 docs를 참고해 작성했다.) ✅React-Query(Ta...

Storybook을 사용해보자(1) - 예제 뜯어보기

📌시작하며 프론트엔드 개발자는 "타 직군과 커뮤니케이션🤝 할 상황이 굉장히 많다"라는 건 아마 모두가 인정하는 사실일 것이다. 하나의 프로덕트를 위해 디자이너와 백엔드 개발자는 물론, 서비스 기획, 프로젝트 매니저 등 정말 많은 사람과 함께 달려가는거다! (개인적으로 이 과정이 개발자가 가진 매력 중 하나가 아닐 까 생각한다. 마치 소년만화의 주인...

정보처리기사 - 필기 후기

📌시작하며 정보처리기사 필기시험을 보고 왔고, 예비 합격 후 쓰는 후기 글! 🤔공부를 시작하다 프론트엔드 면접 예상 질문들을 읽어보면 CS 지식이나 알고리즘, 자료구조 등을 만날 수 있다. 알고리즘이나 자료구조는 코딩테스트 공부를 하면서 함께 학습하고 있는데 CS는 추가로 학습이 필요하다는 걸 느꼈다! (현업에 계신 분들도 꾸준히 공부하신다는 글...

Next.js 언어별 폰트 적용하기 - @font-face

📌시작하며 이번에 진행하는 프로젝트에서 전부터 해보고 싶었던 ‘언어 변경’기능을 구현하고 있다. 한국어와 일본어 두 언어를 지원하는 애플리케이션인데, 각 언어에 적절한 font를 사용하고 싶어 방법을 검색해보게 되었다. 🤔 Next/font를 시도하다 이번 프로젝트에서는 Next13을 사용하고 있고, Next.js가 13으로 업데이트되면서 새로 ...

Chirpy 설치와 커스텀

📌시작하며 개발 공부를 시작하고 지금까지 notion으로 많은 양을 정리해왔다. 하지만 notion으로 정리하면 아무래도 블로그보단 폐쇄적인 공간인 만큼 작성한 글을 누군가에게 보여주기 애매한 부분이 있었다. 아마 많은 개발자가 그렇겠지만.. 그 동안 다른 개발자분들의 블로그를 통해 공부한 부분이 많기에, 블로그를 시작해보면 어떨까? 생각하게 되었...

Typescript(4) - 각 Element의 Props 속성을 정해보자

📌시작하며 컴포넌트를 만들다 보면, onClick이나 onMouseOver등의 이벤트를 props로 받아와야 하는 일이 간혹 생기곤 한다. 물론 props로 내려줘서 작업해도 문제는 없지만, 이벤트가 하나 더 발생하면, 컴포넌트에 정의해둔 props의 interface안에 작성해줘야 하는 번거로움이 생긴다. 그래서 미리 정의할 때 타입을 확장해서 ...

Jest - matcher

📌시작하며 연말에 가볍게 진행한 프로젝트에서 Jest를 간단히 적용해보았다. 역시 처음 도입하는 것이다 보니 시간도 많이 소요되고 삐그덕 거리기는 했지만 그래서 그런지, PASS가 뜰 때마다 너무 기뻐서 다들 봐달라고 하고 싶었다… 🤣 어쨌든, 이번 포스팅에서는 프로젝트를 진행하면서 새롭게 배운 Jest의 내용을 정리해보면서 복습해보려고 한다. ...