본문 바로가기
728x90
반응형

전체 글194

모바일 웹) js로 zoom 조절하기 모바일 웹에서 Viewport meta 태그를 이용하여 줌을 제어할 수 있다. [ Viewport meta 태그 정보 : MDN ]여기서 initial-scale 속성값을 변화시켜 줌을 새로 초기화하게 만들어 줌을 제어할 수 있다. 먼저 html에 Viewport meta 태그를 넣어준다.참고) initial-scale 속성값의 최소값은 0.1이고, 최대값은 10 이다.ex) 이제 zoom을 조절하는 함수를 만들어보자.function zoomControlMobile(scale) { const viewport = document.querySelector('meta[name="viewport"]'); if (viewport) { viewport.content = 'width=device-widt.. 2024. 5. 17.
react-query) staleTime 과 gcTime, 그리고 InfiniteQuery useInfiniteQuery를 사용하여 무한 스크롤을 구현하던 중 문제가 발생했다.새로운 데이터를 넣고 invalidateQueries 메서드로 해당 키의 데이터를 stale 상태로 바꾸고,무한 스크롤로 구현한 조회 페이지의 들어갔을 때,네트워크 요청이 내가 스크롤해서 불러온 요청한 수만큼 한 번에 서버에 요청이 들어간 것이다. 예) 조회 페이지에서 스크롤링하여 4번 데이터 불러옴. -> 데이터 등록 페이지에서 새로운 데이터 추가 -> 조회 페이지로 이동 -> 한 번에 4번 요청. 현재 우리 페이지는 최신순으로 데이터를 정렬하므로새로운 데이터가 제대로 들어갔는지 확인만 하려고 하는 것이라면 굳이 스크롤하지 않을 것이기 때문에최상단의 데이터 1번만 요청하면 되는데, 그동안 보았던 페이지만큼 다시 fetc.. 2024. 5. 16.
[Windows] 클라이언트 소켓 최대 수 확인 방법 CMD 에서 다음 명령어를 입력 > netsh int ipv4 show dynamicport tcp 결과에서 Number of Ports 의 수를 확인하면 끝~ 2024. 4. 11.
[JPQL] 일부 컬럼 값만 가져올 때 주의사항 Interface Projection TL; DL 스프링 부트 1.5 와 스프링 부트 2.7 에서의 결과 값 매핑 방식이 다르다. 스프링 부트 1.5 순서대로 매핑 => 컬럼 순서와 메서드 선언 순서가 맞아야 함. 스프링 부트 2.7 컬럼명 매핑 => 컬럼명과 메서드명 규칙이 맞아야 함. 스프링 부트 1.5 @Repository public interface MemberRepository extends JpaRepository { @Query("SELECT m.username, m.name FROM MEMBER m") List findAll(); } 위와 같이 Username 과 이름만 가져오려고 할 때 public interface MemberSimpleMapping { String getUsername(); String getName().. 2024. 4. 8.
Spring boot) Spring + React 연동 빌드 배포 시 URL mapping (feat. ErrorController 사용 시 문제점) 결론부터 얘기하자면 View Controller 추가 설정을 통해서 연동하면 된다.@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/{spring:[a-zA-Z0-9-_]+}") .setViewName("forward:/"); registry.addViewController("/**/{spring:[a-zA-Z0-9-_]+}") .setViewName("f.. 2024. 1. 31.
Git ) Windows OS에서 Filename too long 오류 Git으로 clone 하는 중 error: unable to create file {파일경로} : Filename too long 위와 같은 오류가 발생하였다. 이는 윈도우 API의 파일 경로 길이가 260자 제한을 갖기 때문이라고 한다. 이 제한을 없애려면 다음 명령어를 사용해서 git의 core.longpaths 설정을 true로 지정하면 된다. - 관리자 권한 필요 git config --system core.longpaths true 출처 : https://javacan.tistory.com/entry/window-git-filename-too-long-error 2023. 5. 26.
ls -F ) color, 특수문자 정보 Table 3-5. Color-ls default color scheme Color File type blue directories red compressed archives white text files pink images cyan links yellow devices green executables flashing red broken links Table 3-6. Default suffix scheme for ls Character File type - regular file / directory * executable file @ link = socket | named pipe 출처 : https://linux.die.net/Intro-Linux/sect_03_03.html#sect_03_03_0.. 2023. 5. 5.
Gradle) Q클래스 import 안됨 문제 (feat. gradle source sets) queryDSL 라이브러리를 추가하고 Q클래스를 생성하여 쓰려고 하는데 IDE에서 자동완성 및 자동 import가 안 되었다. Q클래스는 잘 생성되었으나 프로젝트에서 import가 안 되는 것이었다. 구글링 해보니 IntelliJ에서 File > Project Structure > Project Settings > Modules 에서 Q클래스가 생성된 폴더를 Excluded 되어있는 것을 Sources로 상태 변경하면 된다고 하였는데(Intellij에서 Querydsl 사용시 Q Class import 문제 (velog.io)), 나의 경우 이렇게 하여도 안되었다. 그러다 build clean을 하고 (나의 경우 Q클래스를 build폴더에 생성하였었다.) 다시 Q클래스를 생성하니 인식하였다. 뭐가 문제였.. 2023. 4. 22.
Gradle) Unsupported class file major version 64 오류 IntelliJ를 새로 설치하고 gradle을 이용하여 패키지를 설치하려고 하는데 "Unsupported class file major version 64" 오류가 발생하였다. https://stackoverflow.com/questions/75878942/spring-initializr-project-results-in-unsupported-class-file-major-version-64 찾아보니 해당 오류는 라이브러리 중 gradle의 JVM을 지원하지 않아서 발생하는 오류였다. gradle JVM은 IntelliJ에서 File => Settings => Build, Execution, Deployment => Build Tools => Gradle에서 Gradle JVM을 확인하면 알 수 있다. .. 2023. 4. 22.
querydsl ) String 컬럼들 동적으로 쿼리 생성 보통 querydsl 을 쓸 때는 Q클래스를 생성하여 컬럼명으로 체이닝을 하여 쓴다. 이렇게 하면 컬럼명을 잘못입력하면 컴파일과정에서 바로 오류가 뜨기 때문에 보통 IDE에서 빨간줄로 표시해주어서 불필요한 테스트를 줄일 수 있어서 큰 장점이 된다. 그렇다면 컬럼을 동적으로 선택하여 쿼리문을 만들려고 한다면 어떻게 해야할까? 예를 들어, 게시판에서 검색 영역을 제목, 내용, 태그를 동적으로 선택하여 특정 단어를 검색하는 기능을 만들려고 할 경우. 경우의 수는 컬럼 1개인 경우 3가지, 컬럼 2개인 경우 3가지, 컬럼 3개인 경우 1가지로 총 7가지 경우의 수가 생기고 이를 분기처리한다면 코드의 가독성을 떨어질 것이다. 그래서 프론트에서 검색 영역을 배열로 보내주고 배열에서 각 검색영역에서 특정 단어를 포함.. 2023. 3. 19.
Windows에서 Docker Desktop 없이 도커 개발 환경 구축하기 1. 도커와의 호환을 위해 wsl2로 리눅스 설치 다음 명령어로 새 Linux 배포판이 설치될 때 기본 버전을 WSL 2로 설정 wsl --set-default-version 2 리눅스 설치는 wsl2 ) wsl 설치, 실행, 종료, 배포판 삭제 (tistory.com) 참조 2. WSL2에 도커 엔진 설치 2가지 방법이 있다. 첫 번째는 curl를 통한 쉘 스크립트로 설치하는 것이다. $ curl -sSL get.docker.com | sh 아래와 같은 내용이 출력된 후 20초 후에 sudo 명령이 실행되는데 wsl 접속 후 한 번도 sudo명령을 실행하지 않았으며 비밀번호를 물어볼 것이다. # Executing docker install script, commit: 4f282167c425347a931.. 2023. 2. 23.
Windows에서 Java 버전 관리하기 1. Jabba 설치 PowerShell을 관리자 권한으로 연다. (PowerShell 오른쪽 클릭 -> 관리자 권한으로 실행 선택) [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Invoke-Expression ( Invoke-WebRequest https://github.com/shyiko/jabba/raw/master/install.ps1 -UseBasicParsing ).Content 위 명령어를 실행한다. 개인권한 PowerShell로 설치하려 할 경우 관리자 PowerShell에서 다음 명령어로 보안설정을 변경하여야 한다. 그렇지 않으면 보안 오류가 발생한다. Set-ExecutionPolicy U.. 2023. 2. 22.
728x90
반응형