본문 바로가기

spring | spring boot16

[SpringBoot] JPA의 1+N 문제와 해결방법 알아보기 이번엔 JPA에서 일어나는 N+1 문제를 알아보려고 한다제목엔 1+N이라 적었는데 좀 더 직관적 이해가 되는 것 같아 저렇게 했다ㅎㅎ 1+N 문제가 일어나는 경우JPA 리포지토리를 사용해 메서드를 호출할 때, 일대다 관계를 가진 엔터티를 조회할 경우, 의도한 첫번째 쿼리 외에 추가로 N개의 쿼리가 발생하는 문제다. Team과 Member가 있다. 이 관계는 1 : N 관계다. 예를 들어 10팀이 있고 각 팀은 여러 멤버를 가진다.팀을 조회하는 상황을 보자 case 1. 즉시로딩 EAGER@OneToMany(fetch = FetchType.EAGER)findAll()을 실행하면1. select * from team 쿼리를 날리고2. 패치타입이 eager 니까 member도 가져옴3. 팀 전체 조회 1번 .. 2025. 11. 24.
AWS 아마존웹서비스 educate 계정 달라짐 예전에 잠깐 어떤 건지 사용해보느라 대학생 때 가입한 기억으로 다시 로그인을 하려는데 아무리 educate 로 로그인해도 화면이 예전과 너무 달랐다. 전엔 기본 aws 계정처럼 ec2도 생성하고 다 됐었는데.. educate 로그인 해보니 이제는 강의 듣는 것만 되는 듯하다. 아니면 academy에 등록된 기관이 초대를 하면 가능한 듯..? 이제 대학생도 아니고, 아카데미 목록에 우리 학교도 없는 듯 하니 1년 무료 계정으로 가입해야겠다.. 있을 때 열심히 쓸걸 아쉽네 근데, 또 다른 로그인/가입 문제가 나타났다. 아.. 예전에 대학생 계정 등록한다고 먼저 기본 계정 가입했던 거 삭제했던 것 같은데 (아닌가 기억이 가물가물) 회원가입 시 해당 이메일로 계정이 존재한다는데 이 이메일로 로그인을 하면 자꾸 .. 2022. 12. 18.
SpringBoot thymeleaf rest api 게시판 model값 주고받기 spring boot를 사용할때 spring boot에 있는 파일위치에 model을 이용하여 값을 줄 수 있다. // restController아닌 controller @GetMapping("project/{board_id}/comment") public String comment(@PathVariable("board_id") Long boardId, Model model){ model.addAttribute("board_id", boardId); return "project/comment"; }// 어떤 글의 뎃글인지 알려주기 위해 글id를 모델에 담아 보냄 -> /*[[ ${id} ]]*/ 로 js에서 받을수있음 위와 같은 경우 일때 script태그 내에서 아래처럼 /* 2022. 12. 9.
springboot - spring security 기억할것 (내가..) 내가 자꾸 빼먹어서 삽질하길래 정리해두는 spring security 사용할때 한 자잘한 실수들.. 회원가입 부분에서 user db에 아무것도 저장이 안되고, controller도 작동하지 않는 문제가 있었다. 거의 몇주를 붙잡고 있었지만... 정작 이유는 간단했다. - 아래 더보기 클릭하면 이유 보임 더보기 -까먹지 않기 위해 적어두는 문제 상황 허용되지 않은 url을 요청하면 스프링시큐리티에서 loginForm페이지를 보여주는데 회원가입시 join으로 form을 보내면 컨드롤러에서 redirect:loginForm 하라고 설정했기 때문에 문제가 뭔지 알아치리지 못했었다. 이와 비슷한 문제가 있었기에 알아차릴 수 있었는데, 아래 링크에서 확인할 수 있다. 2022.03.31 - [spring | spr.. 2022. 4. 13.
SpringBoot - security : localhost에서 리디렉션한 횟수가 너무 많습니다. 페이지에 권한을 설정했더니 'localhost에서 리디렉션 한 횟수가 너무 많습니다.'화면만 나오면서 쿠키를 삭제하라고 했다. 삭제해도 계속 안되길래 찾아봤더니권한이 없으면 로그인하는 페이지로 자동 넘어가게 되어있는데'로그인 페이지에 모두가 접근 가능'하게 하는 부분을 빠뜨렸기 때문이었다. 밑에 이런 오류도 떴다.org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [354,525] milliseconds.권한 없는 유저가 페이지에 접근하면 로그인 페이지를 내줘야 하는데로그인 페이지도 권한이 없.. 2022. 3. 31.
SpringBoot - Jasypt를 이용한 개인정보 암호화 github에 올릴 경우 개인정보가 노출되면 안되기 때문에 정보를 숨겨야 한다. github에 빼고 올리던지 암호화를 시켜 올려야 하는데, jasypt 라이브러리를 이용해 암/복호화할 수 있다. 다음 페이지에 들어가면 spring boot 에서 어떻게 사용할 수 있는지 나와있다. https://github.com/ulisesbocchio/jasypt-spring-boot GitHub - ulisesbocchio/jasypt-spring-boot: Jasypt integration for Spring boot Jasypt integration for Spring boot. Contribute to ulisesbocchio/jasypt-spring-boot development by creating an a.. 2022. 3. 30.