본문 바로가기

Programming/Web-Spring

[Spring] QueryDsl의 Q클래스 빨간줄 에러 뜨는현상 방지 인텔리제이 + maven 사용해서 QueryDSL을 설정해봅시다. 필요 라이브러리 querydsl-apt: 쿼리 타입(Q-Class)을 생성할 때 필요 querydsl-jpa: QueryDSL JPA 라이브러리 com.mysema.querydsl querydsl-apt 3.6.3 provided com.mysema.querydsl querydsl-jpa 3.6.3 QueryDsl을 사용하기 위해 필요한 라이브러리는 위와 같습니다. pom.xml을 열어서 안에 추가해주세요. 버전은 사용하시는 환경에 맞게 설정하시면 됩니다. Q Class 생성 플러그인 추가 QueryDSL을 사용하려면 엔티티를 기반으로하는 쿼리용 클래스를 생성해야 합니다. 해당 클래스를 컴파일시 자동으로 생성하기 위해서 플러그인을 추가해주.. 더보기
[Spring] In-Memory DB에 해당되는 H2 DB 사용방법 H2 DB의 3가지 모드 H2DB는 자바 기반 오픈소스 RDBMS(관계형 데이터 베이스 관리 시스템)이다. H2DB Cheat Sheet를 살펴보면 세 가지 용도를 찾을 수 있다. 1. Embedded Mode 2. In-Memory Mode 3. Server Mode Server Mode Server Mode는 공식 사이트에서 H2를 Plafform-Independent 버전을 다운로드하고 h2/bin/h2.sh를 터미널로 실행하면 h2가 TCP 통신을 할 수 있는 서버 버전으로 실행된다고 볼 수 있다. 따라서 외부에서 h2 서버가 실행되어야 스프링에서 application.properties에 h2서버 주소를 입력해 접속할 수 있다. 김영한님의 스프링 입문 강의 섹션 6 : H2 데이터베이스(무료강.. 더보기
refresh token도 결국 JWT인데 왜 "Bearer"을 안쓰는걸까? https://velog.io/@cada/%ED%86%A0%EA%B7%BC-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EC%A6%9D%EC%97%90%EC%84%9C-bearer%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C 토근 기반 인증에서 bearer는 무엇일까? 본 글은 MDN - HTTP 인증, Veloport님의 게시글을 참고하여 작성되었습니다. 자세하게 알고싶으신 분은 해당 링크를 참고해주세요.토큰 기반 인증인증 타입마치며토큰 기반 인증은 쿠키나 세션을 이 velog.io 참고 ✅ 상황 로그인 요청을 날리고, AccessToken과 RefreshToken이 정상적으로 돌아오는 것을 확인했다. ✅ 의문 JWT 토큰 인증을 구별하기 위해 Bearer을.. 더보기
[Intellij] 인텔리j 플러그인 설치 방법 (Presentation Assistant, key promoter) Presentation Assistant 간단히 소개를 하자면 특정 단축키를 누를때 MacOS에서는 어떤 단축키로 해당 기능을 수행할 수 있는지를 IDE 화면상에 toast 처럼 띄워주게 됩니다. Key Promoter 사용자가 마우스로 작업을 하면 똑같은 기능을 할 수 있는 단축키를 아래에 초록색 알림창을 통해 제안을 해주는 플러그인 입니다. 위의 그림은 제가 Window 노트북에서 [Ctrl + Shift + A]를 입력했을 때 맥에서는 [↑(윗방향키) + cmd + A] 키로 실행이 가능하다고 알려주는 기능입니다. 설치하기 위해서는 Shift 키를 두번 누르시고 plugins 라고 검색하신 후 엔터를 치시면 위의 플러그인을 설치하시면 됩니다.! 더보기
[SpringBoot] 포스트맨 실행 시 에러 Error: Exceeded maxRedirects. Probably stuck in a redirect loop 현재 상황 - 인증, 인가 관련 예외 처리를 진행하던 중, AuthenticationEntryPoint에서 응답을 주기 위해서 redirect를 하고 있었다. - 흐름은 AuthenticationEntryPoint -> sendRedirect("/exception/**") -> ExceptionController에서 throw new CustomException -> ControllerAdvice에서 해당 exception에 대한 예외 처리 - 그러나 해당 response가 Controller까지 도달하지 못하고 계속 요청이 동작하지 않는다. - 프로젝트에는 스프링 시큐리티가 적용되어 있다. 문제 Could not get response Error: Exceeded maxRedirects. Probabl.. 더보기
[SpringBoot] html페이지에서 Json 값을 객체로 받아올때 주의사항 model public class Star { String name; int age; public Star(String name, int age) { this.name = name; this.age = age; } } controller // [Request sample] // POST http://localhost:8080/hello/request/form/json // Header // Content type: application/json // Body // {"name":"Robbie","age":"95"} @PostMapping("/form/json") @ResponseBody public String helloPostRequestJson(@RequestBody Star star) { retur.. 더보기
[SpringBoot] @ModelAttribute 값받을때 null값 나오는 현상 model public class Star { String name; int age; public Star(String name, int age) { this.name = name; this.age = age; } } 괄호(String name, int age)가 있는 생성자로 만들고 Controller // [Request sample] // POST http://localhost:8080/hello/request/form/model // Header // Content type: application/x-www-form-urlencoded // Body // name=Robbie&age=95 @PostMapping("/form/model") @ResponseBody public String hello.. 더보기
[Thymeleaf] SpringBoot에 Thymeleaf 적용하기 기존에 JSP환경에서 뷰를 제작하다가 한계를 느껴 다른 템플릿을 적용해보기로 마음을 먹었다. 스프링이 지원해주는 템플릿 엔진을 알아보던 중 FreeMarker Groovy Thymeleaf Mustache 이렇게 4개가 있다는 것을 알게되었는데 그 중에 스프링이 지원해준다는 Thymeleaf(타임리프)를 적용해 보기로 하였다. (사실 처음엔 가장 성능 좋다는 Freemarker를 선택했는데 SpringSecurity프레임 워크를 적용하던 중 막혀서 결국 Thymeleaf를 선택하게 되었다. Freemarker로 SpringSecurity를 적용하려면 JSTL을 별도로 또 사용해야 한다는 의견이 있어서 SpringSecurity까지 사용해야 하는 내 경우에는 타임리프가 낫다는 판단이 들었다.) 1. Bui.. 더보기
[SpringBoot] Spring 프로젝트에서 Thymeleaf 기본 설정하는 방법 먼저, thymeleaf를 설정하는 방법을 소개 한 후, thymeleaf 설정 후 css도 설정하는 방법을 알려드리겠습니다. Thymeleaf 설정하는 방법 STEP 1. build/gradle 파일 설정 아래와 같이 thymeleaf 관련 dependency를 추가합니다. .. dependencies { .. implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation('nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect') }Copy STEP 2. application.properties 설정 아래의 4줄을 추가합니다. spring.thymeleaf.cache=false.. 더보기
[intellij/spring] h2 (메모리영역에서 사용하는db)설정 방법 intellij spring boot 프로젝트 실행 /h2-console 뒷부분 jdbc로 시작하는 문자열 복사 http://localhost:8080/h2-console 이동 jdbc url 에 아까 복사 한 jdbc 값을 붙여넣기 이후 바로 connect 버튼 클릭 db 접속 완료 show databases ; 명령어를 실행해서 되는지 확인해 볼 것 더보기