[ PROJECT ]/PetHarmony 3

[🚨 TroubleShooting] 무한 스크롤 데이터 중복 요청

[ 문제 ]입양동물 목록 페이지를 무한 스크롤(12개씩 데이터 요청)로 구현하고 완성,,!!했는데 문제가 생겼다. 첫번째 스크롤에서는 12개 데이터 불러옴 (정상),두번째 스크롤에서는 24개 불러옴 (비정상),세번째 스크롤에서는 12개 (정상),네번째는 36개 (완전 비정상) 데이터를 일정하게 12개씩 불러오도록 구현했는데 실제로 자기 맘대로 불러오는 문제가 생김..... 다시 해보니까 그냥 무작위로 불러옴....사용자가 페이지 하단에 도달할 때 중복으로 서버에 데이터를 요청하는 문제 발생  [ 원인 ]페이지 하단에 도달할 때마다 데이터 요청 상태(isFetching)가 제대로 업데이트되지 않아서 발생한 문제였다.이미 데이터를 로드 중임에도 불구하고 서버에 추가 데이터 요청이 반복되면서 불규칙한 갯수의 ..

[🚨 TroubleShooting] N+1이 뭔데....

SNS에서 개발자 신입들이 N+1문제 일으키기 쉽다고 해서 혹시 내 코드도..?슬쩍 챗지피티한테 물어봤는데 문제가 꽤나 있다네...ㅋㅋ 그래서 코드 고쳐보려고 합니다......우선 n+1이 뭐냐면 N+1문제?데이터베이스와 ORM(Object-Relational Mapping) 사용 시 자주 발생하는 성능 문제 중 하나입니다. 특히 JPA나 Hibernate와 같은 ORM을 사용할 때 자주 발생한다. N+1 문제는 기본적으로 1개의 쿼리가 추가로 N개의 쿼리를 발생시키는 비효율적인 상황을 의미한다. 예를 들어, A 테이블과 B 테이블이 관계를 맺고 있을 때, A 테이블에서 데이터를 조회한 후, 관련된 B 테이블의 데이터를 가져오려고 하면 추가 쿼리가 여러 번 발생할 수 있음...이렇게 쿼리 실행이 반복되면..

React에서 토글 상태 관리하기

프로젝트하면서 블로그 써야지,,,써야지.... 하고 주제만 적어놓고 이제야 씀ㅋㅋ 몰아작성하기... React에서 상태를 관리할 때 토글 기능을 많이 쓴다.드롭다운 메뉴를 열거나 닫는 기능을 만들 때, 상태를 true 또는 false로 토글하는 기능!! 난 게시판에서 정렬방법 선택할 때 토글기능을 썼음. 근데 난 처음에 단순하게setFilterDropdown(!filterDropdown)이렇게 작성했단말임... 근데 찾아보니까 보통setFilterDropdown(prevState => !prevState)이렇게 쓰더라고..?? 그래서 이 두개가 뭐가 다르냐면 1. setFilterDropdown(!filterDropdown)  • 장점: 코드가 간단하고 이해하기도 쉬워. 딱히 복잡하게 생각 안 하고도 바..