묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
QueryDsl 설정 관련 질문입니다.
영한님께서 알려주신 Spring boot 3.x버전 방식으로 설정을 하면이렇게 build에 QClass가 생성되긴 하지만 막상 QHello를 쓰려고 하니 import를 하지 못하더라구요 그래서 구글링을 해서 다른 방식으로 해봤더니src에 생성이 되어서 import를 할 수 있었습니다.두 설정의 차이점은build.gradle - 영한님 설정구글링 설정이 부분에서 차이가 있었습니다.제가 보기엔 구긍링 방식은 생성위치를 src로 지정했기 때문에 src에 생성이 된 것 같은데 영한님과 같이 build에 생성을 하게 되면 어떻게 import를 할 수 있는지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
44강) 강사님 질문 있습니다.
안녕하세요 강사님취업 준비 중이라 진도가 더디네요 ㅠㅠ질문이 많아서 죄송합니다.다름이 아니고 배포 중에 문제가 생겼습니다.44강 10분쯤을 듣고있는데, mysql 비밀번호를 변경하라고 하셨습니다.저는 이미 저번에 깃허브에 커밋을 했고, 그 후에 인텔리제이 유료버전 체험판이 끝나버렸습니다.그래서 제 코드 수정이 안되어 비밀번호 변경을 못 하는데요.이런 경우에는 어떻게 해야 할까요?aws에서 비밀번호 설정 없이 배포할 수 없을까요?포트폴리오에 배포주소 올리려고 했는데 큰일이네요...
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
encrypt.key-store.location 경로 에러 질문
Apple M1 Ventura 13.4.1 (컴퓨터)IntelliJ IDEA 2022.2.3 (개발환경)Spring Boot 2.7.13Spring Cloud 2021.0.7java 11 왜 인지는 모르겠는데 location 경로를 아래와 같이 적어야 성공이 됩니다.그리고 아래와 같이 'file:/' 로 적으면 실패하게 됩니다.IllegalStateException : Invalid keystore location 이라고 jks 파일 경로를 못찾는다는 에러가 뜹니다.아무리 구글링해도 이러한 설명은 찾지 못해서 스택오버플로우의 다양한 사례를 보다가 저렇게 경로를 적은 분이 있어서 저도 '/' 를 제거하여 'file:' 로 작성하니 바로 인식이 되어 성공했습니다. 어떻게 된 일인지 너무 궁금합니다. 여기 공식문서에서는 prefix로는 'file:' 을 적으라고 되어있고 윈도우 환경의 절대경로에서는 '/'를 추가하라고 적혀있습니다. 그 외의 글을 읽어도 이해를 못하겠습니다. 강사님께서도 맥북인데 "file:/"로 잘 사용하는 것으로 보아 스프링 버전업이 되면서 뭔가 달라진것인지 질문을 남깁니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
Persistence Layer 테스트 (1) 질문
안녕하세요, 좋은 강의 잘 듣고 있습니다.강의 14분쯤에 forDisplay() 메서드를 ProductSellingType Enum 파일에서 생성을 하셨는데요.ProductService 클래스가 아닌 ProductSellingType Enum에서 생성한 이유가 있을까요?어떠한 기준으로 생성을 하셨는지 궁금합니다.추가적으로 이런 부분에 있어 특정 기준을 세우는 관련 글?을 읽고 싶은데 키워드 같은게 있을까요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
새로운 마이크로서비스가 추가된 경우 클라이언트 배포 여부
1분경, 새로운 마이크로서비스가 배포된 경우에도 API 게이트웨이를 두면 클라이언트는 API게이트웨이만 상대하면 된다고 하셨는데,새로운 마이크로서비스가 생기면 클라이언트는 배포를 하지 않아도 된다는 뜻으로 이해를 했는데,새로운 마이크로서비스와 연결하기 위해서는 클라이언트에도 연결을 위한 코드가 추가될텐데 클라이언트도 배포를 해야 하는 것은 아닌지 문의 드립니다 !감사합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트에서 @Autowired 사용하는 이유가 있나요?
찾아보니 Junit 이슈인거같은데.. 생성자 주입해도 잘 받아지는 것 같거든요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
13강 과정에 질문있습니다.
13강 과정에 질문있습니다.강의 마지막에 도서관리 애플리케이션에서데이터 입력 하는 단계에서 에러가 나오고 있습니다.화면에선 서버 내부 에러 라고 나오고,로그창에서는 "INSERT INTO [*]USER(name, age) VALUES(?, ?)"; expected "identifier"; SQL statement:INSERT INTO USER(name, age) VALUES(?, ?) [42001-214]] with root causeorg.h2.jdbc.JdbcSQLSyntaxErrorException: SQLステートメントに文法エラーがあります "INSERT INTO [*]USER(name, age) VALUES(?, ?)"; 期待されるステートメント "identifier": SQL Statement에 문법 에러가 있습니다. "INSERT INTO [*]USER(name, age) VALUES(?, ?)"에 "identifier"가 요구됩니다. Syntax error in SQL statement "INSERT INTO [*]USER(name, age) VALUES(?, ?)"; expected "identifier"; SQL statement:INSERT INTO USER(name, age) VALUES(?, ?) [42001-214]
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링에서 프록시는 따로 설정을 하지 않아도 내부적으로 작동이 되는게 맞을까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
브라우저에 json 예쁘게 출력하는거 어떤 확장인가요?
궁금합니당
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티매니저는 스레드별로 다시 생성되나요?
영한님 JPA 책에서 아래 그림을 보면 스레드가 하나이고 두개의 레포지토리를 사용할때 두개의 엔티티매니저가 하나의 영속성컨텍스트를 사용한다고 나와있습니다. 하지만 테스트 결과(레포지토리에 각각의 엔티티매니저가 있지만 SharedEntityManagerCreator를 통해서(?) 하나의 엔티티매니저를 사용하는걸 확인 했습니다(하나의 SessionImpl을 사용하고 있었으며 내부에 영속성 컨텍스트도 공유함)제가 이해한바가 맞는지 봐주시면 감사하겠습니다.엔티티매니저는 Bean으로 등록되지 않는다.엔티티매니저프록시객체에 메서드를 호출하면 현재 트랜잭션에서 사용되고 있는 엔티티매니저가 있는지 확인후 없다면 팩토리를 통해 엔티티매니저를 생성하고 있다면 재사용한다.엔티티매니저팩토리(인터페이스)는 직접 빈으로 등록되지 않고 LocalContainerEntityManagerFactoryBean 가 빈으로 등록되고 내부 필드에 EntityManagerFactory를 가지고 있고 다른곳에서 생성하지 않기때문에 논리적으로 싱글톤이다 라고 할 수 있다 라고 이해했습니다. 질문이해한 내용에서 3번이 맞다면 LocalContainerEntityManagerFactoryBean 에는 프록시 팩토리와 네이티브 팩토리가 있는데 왜 나눠서 인스턴스 변수로 갖고있는걸까요?EntityManagerFactory를 @Autowired로 주입받을때 LocalContainerEntityManagerFactoryBean 가 프록시 엔티티매니저팩토리를 만들어서 넣어주는걸까요?사진에서 SimpleJpaRepository에 em은 디버깅에서 위에 사진처럼 나오고 있는데 이유는 LocalContainerEntityManagerFactoryBean에서 팩토리를 통해 프록시 객체를 생성해주기 때문인가요?엔티티매니저프록시에서 메소드가 호출되면 리플랙션으로 SharedEntityManagerCreator.invoke 메소드가 호출되서 실제 엔티티매니저를 실행한다고 이해하면 될까요?LocalContainerEntityManagerFactoryBean 의 역할을 모르겠습니다.ㅠㅠ 팩토리를 논리적 싱글톤으로 관리하기 위한 객체일까요?너무 궁금해서 이 새벽까지 디버깅하다보니 질문이 많습니다 ㅠㅠ 답변주시면 감사하겠습니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
11분40초 부분 team, member쿼리가 나가지 않습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Hibernate: create table Member ( MEMBER_ID varchar(255) not null, TEAM_ID bigint, USERNAME varchar(255), primary key (MEMBER_ID) )Hibernate: create table Team ( TEAM_ID bigint not null, name varchar(255), primary key (TEAM_ID) ) create모드로 설정되어있고 이렇게 drop하고 create만 하고 강의처럼 insert 쿼리를 생성하지 않는데 어떤점이 문제일까요?public class JpaMain { public static void main(String[] args){ EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setUsername("member1"); member.setTeamId(team.getId()); em.persist(member); tx.commit(); } catch(Exception e){ tx.rollback(); } finally { em.close(); } emf.close(); } }
-
미해결실전! 스프링 데이터 JPA
@CreatedDate에 관하여
@CreatedDate가 persist 전에 호출된다는 말씀이 -> persist 전에 호출되기 때문에 createdDate의 값을 가져오기 위해 별도의 쿼리를 날리지 않는다는 말인가요??또 CreateDate를 사용하는 이유가 persist 전에 호출되고 persist 이후에 JPA가 createdDate에 값을 넣어주기 때문에 사용한다고 생각하는게 맞을까요??
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
대출 반납 오류
https://github.com/strongmhk/Springboot/blob/main/library-app/src/main/java/com/group/libraryapp/domain/user/User.java 처음에 B라는 유저가 클린코드를 대출했다가 반납했는데, 잘되었습니다.근데 다시 대출을 하고 반납을 누르면 반납이 완료됐다고 뜨는데,B라는 유저로 다시 대출을 하려니까 오류가 뜨네요.그래서 DB를 확인해보니 DB에는 B라는 유저가 처음 대출을 하고 반납을 한 후, 2번째로 대출 후 반납을 했을 때 is_return 필드가 갱신되지가 않습니다.제 생각엔 User 클래스 안의 returnBook 메서드에서 .findFirst() 메서드 때문인 것 같기도한데 findLast라는 메서드는 없네요. 해결책이 있을까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ORM 책 말인데요..
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]ORM 서적 혹시 개정판 안 나오나요...버전이 꽤나 바뀐 탓에 사고 싶은데 약간 망설여지네요.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
질문입니다.
현재 maven 으로 작업을 하셨는데 이를 gradle 로 한다면 하이버네이트 + gradle 로 작업을 하게 되는데 이런 식으로 실무에 많이 사용이 되나요?maven + hibernate / gradle + hibernate / maven + 스프링 데이터 JPA / gradle + 스프링 데이터 JPA 과 같은 조합들을 고민해보다가 헷갈려서 질문 드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대일 관계에서 유니크 제약조건이 추가 질문
강의에서 "외래키에 데이터베이스 유니크 제약조건이 추가되어야 일대일 관계가 가능하다" 를 알아보고자 Member 클래스의 Locker 객체를 아래와 같이 만들었습니다. @OneToOne @JoinColumn(name="LOCKER_ID", unique = true) private Locker locker; unique 값의 default가 false라 true를 바꿔서 넣어보니 잘 작동했습니다.그 다음 빼면 어떻게 되는지 궁금하여 unique 값을 @OneToOne @JoinColumn(name="LOCKER_ID") private Locker locker; 위와 같이 설정하고 돌려보니 create table member ( locker_id bigint unique)unique = true를 했던 것처럼 쿼리를 JPA에서 만들어줬습니다.<질문>@OneToOne 일때 JPA에서 자동으로 unique = false(default) 를 unique = true로 만들어주는지 궁금합니다.답변주시면 정말 감사하겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderItem - Item 관계에 대해 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]OrderItem과 Item는 N:1 관계라고 나오는데요, 하나의 주문에는 여러 상품이 들어가는 건 이해하겠는데 "하나의 상품(하나의 id를 가진)"이 여러 주문에 들어 가는 게 이해가 잘 안 됩니다. 가령 내가 쿠팡에서 내 장바구니에 비누, 치약, 샴푸 3가지 상품을 샀는데 이 각각의 상품들은 id를 가지고 있을 것이고 여기서 결제하고 주문을 완료하면 이 3가지 상품들은 해당 주문 목록에만 표시 될텐데요? 이 중 어느 하나의 상품이라도 다른 OrderItem에 포함 된다는 의미가 뭔지 이해가 안 가네요.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
타임리프에서 삼항연산자
<td th:text="${order.orderItem} ==null ? '': ${order.orderItem.get(0).item.itemName}"></td> 혹시 이런식으로 order라는 객체 안에 ordrItem 이 널이 아니면 그중 첫번째 아이의 item.itemName을 표시하려고 하는데요. 계속 에러가 나네요 ㅡ2023-07-26T04:07:54.378+09:00 ERROR 31024 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "order.orderItem.get(0).item.itemName" (template: "/order/list" - line 25, col 25)] with root causeorder.orderItem[0].item.itemName이렇게 해도 비슷한 에러가 나는데 혹시 해결방법있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@ModelAttribute 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.@PostMapping 에서는 @ModelAttribute가 전송내용을 담는 역할을 하는것으로 이해가 되는데@GetMapping("/orders") public String orderList(@ModelAttribute("orderSearch") OrderSearch orderSearch, Model model) { List<Order> orders = orderService.findOrders(orderSearch); model.addAttribute("orders", orders); return "order/orderList"; }위 코드처럼 @GetMapping에서는 @ModelAttribute("orderSearch") OrderSearch orderSearch가 어디서 값을 받아오는지가 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@RequestParam 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.@PostMapping("/order") public String order(@RequestParam("memberId") Long memberId, @RequestParam("itemId") Long itemId, @RequestParam("count") int count) { orderService.order(memberId, itemId, count); return "redirect:/orders"; }여기서 상품주문버튼을 누르면 주문회원, 상품명, 주문 수량이 등록되는데 @requestParam의 memberId, itemId, count는 값을 어디서 어떻게 받아오는지를 모르겠습니다. 주문회원, 상품명같은 경우는 String인데 어떻게 Long타입의 memberId, itemId를 받아오나요?