개발 15

Spring JPA paging에서 Slice

- Pagable을 하면 필수적으로 count query를 만들므로, 때로는 성능상 손해가 된다.- Spring Data JPA에서 제공하는 Slice 인터페이스를 사용하면 된다.. 이 방법을 사용하면 카운트 쿼리 없이 페이징을 구현할 수 있습니다. -  UI에서 "다음" 버튼만 제공하고 전체 페이지 네비게이션을 표시하지 않는 경우에 적합합니다.// Repository public Slice listAll(Pageable pageable) { return todoRepository.listAll(pageable);}- 첫페이지 또는 마지막 페이지 여부를 간접적으로 알수 있다.1. hasNext() 메소드: slice.hasNext()가 false를 반환하면, 현재 페이지가 마지막 페이지 이 메소드는..

개발 2024.08.06

React Recoil

- useState상태관리는 기본적으로 해당 component안에서만 쓰임. 다른 component에서 쓰려면 props를 통해서 써야하므로 props drill hell에 발생 - 상태값을 외부의 일종의 전역적 영역에 두고 여러 component에서 가져다 쓸수 있게 할 필요가 있음. - redux를 제일 많이 쓰는데, 가장 많이 쓰지만 쓰기 너무 쓰레기 - recoil이 괜찮아 보임. 1. 상태 저장 : atom이나 selector를 사용해서 별도의 공간에 저장 2. 가져다 쓰기 : useRecoilValue, useSetRecoilState를 사용 3. RecoilRoot를 상위 요소에 감싼다. 4. 심플한 예 import {atom, RecoilRoot, useRecoilState} from "r..

개발/react 2023.04.09

React Redux 최소 설정 코드 (React Native)

리덕스는 이렇게까지 복잡하게 써야하나 싶게 좀 햇갈리는 면이 있다. 자의로는 쓸거같지 않지만, 개념 파악을 위해 가장 심플한 코드로, 하나의 파일에 작성해 보았다. import {Button, Text, View} from "react-native"; import {Provider, useDispatch, useSelector} from "react-redux"; import {combineReducers, createStore} from "redux"; const initialState = { value: 0 } const counterReducer = (state = initialState, action) => { switch (action.type) { case "PLUS": return { .....

개발/javascript 2023.03.30

jetbrains ide에서 (webstorm, phpstorm 등등) react-router-dom의 자동완성이 안될 때

1. 기본적으로 IDE자체가 내장하고 있는 관련 javascript 설정을 삭제한다. System directory 안에 있는 LocalAppData에서 파일 제거 예1) C:\Users\_____\AppData\Local\JetBrains\WebStorm2022.3 디렉토리에서 javascript > typings > react-router-dom 디렉토리 삭제 윈도우의 경우 그냥 탐색기 창에 %LOCALAPPDATA%\JetBrains 라고 넣자. 참고) https://www.jetbrains.com/help/webstorm/directories-used-by-the-ide-to-store-settings-caches-plugins-and-logs.html#system-directory 2. Help..

개발 2023.01.19

centos 에서 php82 + nginx + codeigniter 설정

nginx 설치 https://8ugust-dev.tistory.com/5 php, php-fpm : https://8ugust-dev.tistory.com/6 codeigniter 설정 : https://krksap.tistory.com/879 if (!-e $request_filename ) { rewrite ^(.*)$ /index.php last; } CI 구버전에서는 dynamic properties are deprecated 메시지가 나오므로, 해당되는 클래스 위에 다음을 붙이자. #[AllowDynamicProperties] str_replace 세번째 인자에 null deprecated나오므로, string 형변환 하자 mariadb 설치 : https://wikidocs.net/16274

개발 2022.11.21

opencv 설치시 ImportError: libGL.so.1 에러

opencv 설치할때 pip로 설치는 되었는데, 실행하면 에러남 File "/usr/local/lib64/python3.6/site-packages/cv2/__init__.py", line 181, in bootstrap() File "/usr/local/lib64/python3.6/site-packages/cv2/__init__.py", line 153, in bootstrap native_module = importlib.import_module("cv2") File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level)..

개발/python 2022.10.08