til5 Stomp convertAndSend 이전 글 참고 2023.03.24 - [2023] - [TIL] stomp origin문제, socket에서의 JWT 처리 어제 하다가 만 채팅 시스템에서 구독 시에 과거의 기록이 있다면 조회하는 기능을 추가하였다. 일단. 맞는지 모르겠다. 나중에 공부하다 더 좋은 방법이 있으면 변경해서 진행해야 할 것 같다. 우선 백엔드에서는 config파일을 일부 수정하였다.(1명에게만 보내는 경우 /user로 전송하여 처리하였다) 그리고 입장시에 구독을 확인하고 구독이 되어있다면 이전 채팅 기록을 불러오도록 했다.(채팅 기록은 데이터 베이스에 저장되어있다) 계속 LazyInitializationException가 발생해서 transaction이 유지되지 못한다는 글을 보고 임시로 어노테이션을 달아두었다. conve.. 2023 2023. 4. 2. spring boot 3 Query Dsl적용 (네이티브 쿼리 작성으로 N+1문제 해결) 지금 까지 모든 포스트를 확인하면 위처럼 포스트의 개수만큼 쿼리를 조회하였다. (Fatch type을 LAZY로 하여서 포스트에 걸려있는 좋아요의 수를 나중에 불러와서 발생하는 문제였다) 계속 고쳐야지 하다가 이번에 고쳐버렸다. JPQL로 FetchType.LAZY와 Fetch join 하는 방법고 batch 사이즈를 조정하는 방법등 다양한 방법이 있는것 같았지만 나는 query dsl을 적용하여 해결해보고 싶어 진행하였다. 그래서 현재는 아래처럼 한 번의 쿼리로 해결되는 것으로 보인다. 어째서 인지는 모르겠는데 테스트 코드에서는 N+1문제가 발생하지 않았다..? 그래서 한 번 더 확인해 보는 걸로 Query dsl을 스프링 부트 3.0 버전에 적용하는 방법은 블로그와 강의를 참고해서 세팅하였다. [세팅.. JPA 2023. 3. 31. test 환경 분리하기, 폼 객체 mock mvc 테스트 방법 테스트 데이터 베이스와 서버 데이터 베이스 나누기 중복되는 필드가 있거나, 모든 포스트 확인 등을 테스트 하기 어려워서 분리하기로 했다. application.properties #테스트용 데이터 베이스와 분리 spring.profiles.default=local application-local.properties spring.config.activate.on-profile=local spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mar.. Spring,SpringBoot 2023. 3. 30. swagger에서 멀티파트 폼 데이터 올리는 법 프로필 이미지 올리기 어제 이미지 테이블하고 이미지 전송만 확인하고 자서 오늘은 회원가입 시에 이미지를 올리고 기존에 저장되어 있던 이미지가 있으면 삭제하고 재 업로드하도록 했다 근데, swagger 에서 테스트가 안 돼서 계속 그거 하다가 시간 순삭 🥲🥲🥲 단일 파일로 업로드 하는건 잘 되는데 로그인 객체 + 멀티파일을 업로드하려니까 로그인 객체가 인식이 안되거나, 미디어 타입이 수용할 수 없는 미디어 타입으로 나와서 그냥 리엑트 페이지로 확인했다. (나중에 다시 확인..) 하나씩 @requestPart나 @requestParam으로 하면 되는거 같긴 한데 기존에 구성되어 있던 코드에서 조금만 수정하고 싶어서 그냥 원래 있던 코드를 사용했다. +) 스웨거 에서 폼 객체나 멀티타입파일을 올려서 테스트해볼.. Spring,SpringBoot 2023. 3. 29. [TIL] stomp origin문제, socket에서의 JWT 처리 1. 리엑트 --force 명령어로 설치 (npm install react --force) 모르고 계속 --force로 다운로드하다가 기존 파일과의 버전 호환문제가 발생해서 npm start를 하니까 멈춰 버렸다. 그리고 친절하게 경고 문구를 날려준다. lock json파일과 이상하다고 하는 부분만 json부분에서 삭제한다. 그리고 npm-module폴더를 삭제하고 하고 다시 npm install을 하면 된다! (나는 부트스트랩 버전 문제였다) 2. origin 문제 계속 소켓을 실행시키니까 oringin 문제가 나와서 에픽으로 테스트 못했는데 알고 보니 스프링 시큐리티에서 설정했던 것이 문제였다. 소켓 테스트를 포스트 맨으로 계속 시도했는데 소켓이 처음에 연결되는 것만 확인하고 그냥 리엑트로 연결했다... 2023 2023. 3. 24. 이전 1 다음