목록전체 글 (141)
뉴히의 개발 로그
브라우저는 사용자가 확인하려고자 하는 웹페이지를 서버에 요청해서 응답을 받아 동기적으로 HTML+CSS, javascript 언어를 해석해서 내용을 화면에 보여줍니다. 브라우저는 HTML과 CSS 파일 파싱하여 각 DOM Tree, CSSOM Tree를 만듭니다. → 두 파싱 TREE를 결합하여 Rendering Tree생성 → 각 노드의 위치와 크기를 계산 → 각 노드를 화면상의실제 필셀로 변환하고 레이어를 만듭니다. 그리고 화면에 보여줍니다. 이로써 화면에서 웹페이지를 볼 수 있습니다. NAVER D2 https://d2.naver.com/helloworld/59361 https://poiemaweb.com/js-browser https://bbangson.tistory.com/87
오류 1 react-dom.development.js:86 Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()? 함수형 컴포넌트가 직접적으로 ref를 사용할 수 없다는 것을 나타냅니다. ref를 사용하려면 함수형 컴포넌트를 React.forwardRef()로 감싸야 합니다. 예를 들어, ProfilesCard 컴포넌트를 React.forwardRef()로 래핑하여 ref를 사용할 수 있게 만들 수 있습니다. const ProfilesCard = ({ tutor }: pageProps) => {} ==> const Profiles..
최종프로젝트가 2주차가 지났다. 10일정도되었는데 생각보다 기획회의도 길고 수정도 많이되고 고려해야할 부분도 많고 3주란시간이 길것 같았는데 벌써 5일 밖에 안남음! 모두 마지막 프로젝트이다보니 더 욕심이 나고 디테일한 부분까지도 신경을 많이 쓰게 되는것 같다. 욕심은 한가득인데 차암 맘처럼 쉽지않다! 그리고 또한 반복되는 프로젝트인데 계속 나는 오류는 똑같이난다. 똑같은데서 헤메고! 기록을 잘 해두고 오래 찾지 않도록 해야겠다. 새로운 라이브러리들도 사용법을 문서를 잘 읽고 쓰기!
'{ created_at: string; id: string; matching: boolean | null; status: string | null; tutor_id: string | null; user_id: string | null; }' 형식에 'filter' 속성이 없습니다. 비동기 방식때문에 데이터가 불려오기전에 렌더링되기때문에!!! 에러가 먼저뜨고 다음번 렌더링 시에 제대로 불러온다. if (!tutor || !review) { return null; } 이렇게 넣어주면 오류해결 또는 배열과 단일의 경우 오류도 타입맞추기가 힘들다 const matching = match.match || []; console.log(matching); // 받은 요청 내역 const matchingData = ..
SQL Edit > New query > ALTER TABLE APPLICATION RENAME TO APPLICATION_MASTER; ----------- ------------------ 기존 테이블명 변경 테이블명 테이블 삭제 기본 Tables는 대시보드에서 바로 삭제가 가능하다 View 테이블의 경우는 SQL로만 삭제가 가능하다. DROP VIEW IF EXISTS most_review_tutor; ----------------- 삭제할 테이블 이름
supabase auth로 회원가입이 구현된 상태였고 이상없이 가입이잘되었는데 새로테이블을 생성하니insert가 안되었다!! supabase authentication > policies 들어간후접근 권한을 설정해 줘야한다없을땐 new policy로 추가를 해주고 있을경우엔 땡땡땡을 눌러서 deit권한조건들이 있어서 관리자만,전체 유저 등등 선택 할 수있다. new policy -> get started quickly-> enable read access to everyone -> 나는 템플릿을 사용(use this template) ->이름은 각각 겹치치 않게 정해줘야하고 enable ~~~ 이렇게 쓰는게 국룰이라 한다다 설정해주고USING expression 을 true로 설정해주면 ! 접근 가능..
분명 코드도 맞은거같고 데이터 값이 불려는 오는데 계속 초기값만 불려오는.. useEffect(() => { getUser(); dispatch(setUser(user)); }, []); useEffect(() => { getUser(); // 데이터 로드 완료 시 dispatch를 사용하여 Redux 상태 업데이트 if (user) { dispatch(setUser(user)); // setUser 액션을 통해 데이터를 Redux 상태에 업데이트 } }, [user, dispatch]); 그것은 바로 실행시점? 때문 위 코드에서 중요한 부분은 useEffect 내에서 데이터 로드가 완료되었을 때 dispatch(setUser(userData))를 호출하는 부분. 이렇게 하면 데이터 로드와 Redux 상..
useEffect는 컴포넌트가mount, update, unmount 될때 실행된다. useEffect에 전달하는 콜백함수도 return을 가질 수 있는데 이return에 함수를 전달 할 수 있고 이를 클린업 함수라고 한다. 클린업 함수는 컴포넌트가 unmount될때 실행된다. 클린업 함수가 실행된 후 update되면서 mount를 실행한다. 즉, 컴포넌트는 리렌더링 될 때, 재평가 → 언마운트 → 업데이트 순으로 진행된다. 의존성 배열을 비워둘 경우 unmount는 실행되지 않는다. 매우 정리가 잘된글이 있어 링크남긴다 https://choyeon-dev.tistory.com/entry/React-useEffect-%EC%8B%A4%ED%96%89-%EC%8B%9C%EC%A0%90-%EC%A7%9A%E..