H2 실행 H2 사이트에 들어가서 All Platforms를 눌러 압축을 풀어준다. h2 폴더를 프로젝트로 옮겨준다. cd h2 cd bin window는 ./h2.bat을 실행 mac은 ./h2.sh를 실행하면 자동으로 h2 콘솔 페이지가 뜬다. http://127.0.0.1:8082/ 주소로 들어가도 된다. 위 ...
Redis pub&sub
Spring의 내장 브로커에서 Redis 브로커로 마이그레이션 1. 확장성 및 메시지 처리량 향상 Redis는 메모리 기반 데이터베이스로, 데이터를 빠르게 읽고 쓸 수 있는 특징을 가지고 있다. 낮은 지연 시간을 제공하며, 높은 메시지 처리량을 가능하게 해 더 많은 사용자나 요청을 처리할 수 있다. 2. 간단한 설정과 운영 Redis는 간단...
Paging
Paging 기존 페이징을 작성할 때는 게시글 페이지만 적용했기 때문에 바로 Service 코드에 작성했다. 이후에는 Video, MyPage에도 페이징이 필요해서 이를 Dto에서 추상화 시켜 적용했다. 기존 코드 DTO @Builder @Getter @AllArgsConstructor @NoArgsConstructor public class...
로그인 문제 해결하기
로그인 문제 해결하기 문제 기존에 사용하고 있던 폼 로그인에 내가 작성한 oauth2를 적용하게 되면서 로그인이 제대로 이루어지지 않는 상황이 생겼다. 코드 Security http.authorizeRequests() .antMatchers("/css/**", "/oauth2/**", "/user/**", "/taste/**", "/j...
Java version 변경하기
실습용으로 연습용 project를 하나 만들다가 build 과정에서 오류가 떴다. Spring Boot 3.0부터는 Java 17 이상만 지원하는데 11로 사용하려고 해서 오류가 뜬 것이었다. 여기서는 java 17로 적용하는 과정을 작성했다. Java version 변경하기 Download 여기에서 java 17을 다운받는다. Sett...
랜덤 채팅 문제 해결하기
랜덤 채팅 문제 해결 문제 랜덤 채팅을 시도를 하는 과정에서 접속자 수가 1명인 상태에서 20초가 초과되면 자동으로 접속이 끊겼다. 그런데 랜덤 채팅을 test 하던 과정에서 20초 시간이 지나기 전 강제 종료 후 다시 랜덤 채팅을 시도할 경우 기존 통신 시도와 새로 시작하는 것이 섞여서 띄워지게 되었다. 그래서 client에서는 기존에 통...
Websocket + stomp + 보안 강화
WebSocket + Stomp + 보안 강화하기 WebSocket과 STOMP를 사용하여 실시간 통신을 구현하는 경우, 사용자 인증을 강화하여 보안성을 높이는 것이 중요하다. 이를 위해 JWT(Json Web Token) 토큰을 사용하여 사용자 인증을 처리하는 방법을 작성했다. JWT(Json Web Token) 토큰 JWT(Json Web...
Nginx
NGINX로 Front 배포하기 EC2 인스턴스 이 전에 언급했던 내용이므로 요약 sudo ssh -i {keypair}.pem ubuntu@{ec2 ipv4 주소} docker 설치 sudo docker login -u {github username} ghcr.io sudo docker pull ghcr.io/haedal/cicd:latest ...
배포 자동화
배포 자동화 안쓰는 이미지를 지우는 명령어 sudo docker image prune -a 확인창 띄우지 않게 하기 sudo docker image prune -af script 파일 만들기 touch deploy.sh touch : 파일을 생성하는 명령어 script 작성 @RequiredArgsConstructor @RestC...
Git actions
스터디 - 배포 과정 정리 Git Actions Create an example workflow 많은 repository가 있지만 직접 설정한다. GitHub Docs yml 파일 자체는 들여쓰기가 중요하다. name: learn-github-actions run-name: $ is learning GitHub Actions on: [p...