실습용으로 연습용 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...
Cicd 수동
스터디 - 배포 과정 정리 현재 실행 중인 셸 세션을 종료하는 명령어 $ exit 현재 프로젝트에서는 gradle의 build를 클릭했을 때 test 때문에 에러가 생긴다. 따라서 수동으로 작성했다. *intellij가 build하면 out폴더가 생기고 gradle이 build하면 build폴더가 생긴다. local에서 java jar...
Ec2+docker+mysql
관련 글 Ec2+docker+mysql 👈🏻 Cicd 수동 Git actions 배포 자동화 Nginx 스터디 - 배포 과정 정리 EC2 + Docker + MySQL ec2 생성하기 point ubuntu 클릭 스팟 인스턴스 클릭 Spot Instance 인스턴스는 AWS의 여유 리소스 또...
Jmh
JMH를 통한 벤치마킹 테스트 관련 글 Websocket Websocket + 부가기능 Websocket (채팅 기록 json 파일 저장하기) Sse Sse 문제점 Websocket + jwt Websocket test Jmh - 채팅 파일 refactoring 👈🏻 성능 테스트(JMH) JMH는 Java Micr...
Redis cache
Redis란 Redis(Remote Dictionary System)는 인메모리 데이터 저장소로 주로 세션 관리, 캐싱, db 및 메시지 브로커 역할을 수행하는 오픈 소스다. 다양한 데이터 타입(String, List, Hash, Set 등)을 지원하며 단일 스레드로 동작하여 동시성 이슈가 적고 빠른 속도를 제공한다. 유연한 데이터 모델 지원하...