묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
영한님 죄송합니다. 답변을 제대로 이해하지 못했습니다 ㅠ
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (페치 조인 질문있습니다! - 인프런 | 질문 & 답변 (inflearn.com) 이것을 작성했었던 글쓴이인데 아직 이해가 덜되어서 질문합니다! 제 질문과 영한님의 답변을 요약하면제 질문은 1대 다 에서는 fetch join을 고려하고 다대1에서 batch size를 이용해서 최적화하는게 좋았는데 다대1에서 그러면 역으로 1대다기준으로 fetch join 쓰면 안되냐는게 질문이였고 그에 대한 영한님의 답변은 다쪽(위에 질문에서는 중간테이블) 을 기준으로 조회하기 어려운 경우가 있는데 그 경우는 1쪽기준으로 페이징을 한다면 다쪽에서 페이징이 모호하다. 라는 것이였습니다.(제가 제대로 이해한 것 맞겠죠?)@Query("select pc from Person_Club pc join fetch pc.club where pc.person.id=:personId ORDER BY pc.club.name DESC") List<Person_Club> findTop5ByPersonIdOrderByClubName(@Param("personId") Long personId,Pageable pageable);위 코드는 정확히 기억이 안나는데 Person_Club은 person과 Club의 다대다 중간테이블로 만들었고 where 절 로 persinID를 받아서 범위를 제한하고 페이징을 했던걸로 기억하는데 이런 경우는 1쪽기준으로 페이징을 한다면(where 절로 범위 제한) 다쪽에서 페이징이 모호해지지 않지 않나요?? 부족한 설명죄송합니다
-
미해결실전! 스프링 데이터 JPA
h2 데이터베이스 연결 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 비슷하지만 없는 것 같습니다.3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]강의 극 초반인데 h2 데이터베이스 문제로 시작도 못 하구 있습니다. ㅠㅜ영한쌤과 같은 버전으로 하려고 했는데 start.spring.io에서는 2.2.1이 안되더라구요ㅠㅜ 그래서 3.xx 버전을 사용하고 있습니다. 따라서 h2데이터베이스도 2.1xx 버전을 깔았습니다.근데 자꾸 h2연결이 안되어서 run도 안되고 데이터베이스 연결도 안 되더라구요ㅠㅜdb이름도 datajpa, data-jpa 등등 바꿔서도 해보고 이름도 바꿔서도 해보고 해도 안되네요.그리고 db파일은 생성이 원래 되었었는데, 지금 현재 안되서 프로젝트와 db파일을 지우고 첨부터 다시 해보고를 반복하면서 지웠었는데, 이제는 아예 생성이 안되더라구요...ㅎㅎ어떻게 해야할까요>?ㅠㅜ h2연결이 안되서 강의 진도를 못 나가고 있습니다.h2데이터베이스는 어떻게 생성을 하는건가요? 그냥 yml설정해주고 빌드를 하고 h2 console에 연결 하면 생기는 건가요? 아니면 생긴걸 확인하고 console로 들어가는건가요?감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
jpql 엔티티 인지 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]일단은 해결 했습니다.findAllString 이용하는데 Order를 얘가 모르는 거 같아서..String jpql = "select o From jpabook.jpashop.domain.Order o join o.member m";이렇게 패키지경로까지 다 명시해줬더니 인지를 하더라구요..안 그러면 org.hibernate.query.sqm.UnknownEntityException: Could not resolve root entity 'Order' at org.hibernate.query.hql.internal.SemanticQueryBuilder.visitRootEntity(SemanticQueryBuilder.java:1960) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] at org.hibernate.query.hql.internal.SemanticQueryBuilder.visitRootEntity(SemanticQueryBuilder.java:253) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] ...............얘가 이렇게 Order 인지 못한다고 오류가 뜹니다..원래 엔티티는 그냥 @Entity 등록 하면 알아서 인지 되는걸로 알고 있었는데..왜 이런 걸까요?package jpabook.jpashop.domain; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity(name = "orders") @Getter @NoArgsConstructor(access = AccessLevel.PUBLIC) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "delivery_id") private Delivery delivery; private LocalDateTime orderDate; @Enumerated(EnumType.STRING) private OrderStatus status; public void changeMember(Member member){ this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem){ orderItems.add(orderItem); orderItem.setOrder(this); } private void setOrderDate(LocalDateTime orderDate) { this.orderDate = orderDate; } public void changeDelivery(Delivery delivery){ this.delivery = delivery; delivery.setOrder(this); } private void setStatus(OrderStatus status) { this.status = status; } public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems){ Order order = new Order(); order.changeMember(member); order.changeDelivery(delivery); for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.now()); return order; } public void cancel(){ if(delivery.getStatus() == DeliveryStatus.COMP){ throw new IllegalStateException("이미 배송완료된 상품은 취소가 불가능합니다."); } this.setStatus(OrderStatus.CANCEL); for (OrderItem orderItem : orderItems) { // orderItem.getItem().removeStock(orderItem.getCount()); orderItem.cancel(); } } public int getTotalPrice(){ int totalPrice = 0; for( OrderItem orderItem : orderItems){ totalPrice += orderItem.getTotalPrice(); } return totalPrice; } }
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
준영속 상태란 것은 추상적인 개념인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]영속상태라는 것은 영속성 컨텍스트에 들어가는 것으로 명확한데, 준영속 상태는 뭐 그런 꼬리표 같은게 붙는 건가요?아니면 엔티티긴 한데 생성되고 영속성 컨텍스트에 없는 상태를 그냥 추상적으로 준영속상태라고 부르는 건가요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@NotEmpty, starter-validation 문제
NotEmpty 어노테이션 인식이 안됩니다(valid도 마찬가지). 질문 게시판 보고 스프링 부트 2.3부터는 직접 build.gradle에 implementation 'org.springframework.boot:spring-boot-starter-validation' 추가하고 refresh를 해주어도 아래처럼 에러가 발생합니다제 build.gradle 입니다plugins { id 'java' id 'org.springframework.boot' version '2.7.17' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' // 캐시도 삭제해주고 하는 등 해서 hot reload 처럼 쓰이는것 같음 implementation 'org.springframework.boot:spring-boot-devtools' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA 활용1/ 웹계층 개발/ 회원등록 강의 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 김영한 선생님의 JPA 활용 1편에 웹 계층 개발에 회원등록 강의에서 4:30 쯤에서 회원가입 버튼을 누르는데 선생님은 잘 뜨시는데 저는 계속 에러페이지가 떠서 글을 작성합니다. 뭐가 문제일까요,,,제코드 링크 올립니다.https://drive.google.com/file/d/1QGBdGAs1z2ZxfsM-PdYAeaD2rH7nptms/view?usp=sharing
-
미해결스프링 시큐리티 OAuth2
커스텀 인증 필터 만들때 질문이 있습니다.
커스텀 Authentication Filter를 만들때 어떤 코드는 AbstractAuthenticationProcessingFilter를 상속 받거나 강사님은 UsernamePasswordAuthenticationFilter를 상속 받는데요 혹시 무엇을 상속 받을지 구분하는게 있을까요? 어떤 필터를 상속 받는것을 추천한다던지
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
생성자
강사님 안녕하세요!혼자서 프로젝트를 짜면서 궁금한게 생겼는데요data class DailyHistoryResponse( val date: String?, // 전체 날짜 2023.11.11 토 val day: String?, // 날짜에서 일만 val dayName: String?, // 요일 val dayWhat: Int?, // 몇일 차 val workOutCount: Int?, val meditationCount: Int?, val workOutRate: Int?, val meditationRate: Int?, ) { constructor(workOutCount: Int?, meditationCount: Int?): this(null, null,null, null, workOutCount, meditationCount, null, null) }DailyHistoryResponse 클래스는 위처럼 생겼는데요 파라미터가 workOutCount, meditationCount 이거 두개만있는 생성자가필요해서 코드에서 맨아래 같이 constructor(workOutCount: Int?, meditationCount: Int?): this(null, null,null, null, workOutCount, meditationCount, null, null) 이렇게 했었는데요..저기서 null하나하나 넣는게 불편하더라고요.. 제가 원하는 코드를 짜기위해서 지금 제가 작성한 코드말고 좋은방법있을것같은데 .. 가르쳐주실수 있을까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
현업에서 곱하기 연산 처리하기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요. getTotalPrice 부분에서 가격과 개수를 이용해 곱하기를 해 종합 가격을 반환해주는데 만약 가격이 정수가 아닌 실수인 경우 소수점이 나올 텐데 이런거는 어떻게 처리하나요? 단순히 반올림하거나 잘라버리지는 않을거 같은데
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
domain private
강사님 안녕하세요 코드를 작성하면서 궁금증이 생겼습니다.보통 Book이라는 엔티티를 만들면필드는 private을 붙여주잖아요 java에서는요근데 왜 코틀린에선 붙여주지않나요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
강사님 수업자료 정리된 pdf는 어디서 받을 수 있나요?
강의자료 두개있는거 받았는데 하나는완성전코드이고 하나는 완성된 코드더라고요 수업자료 정리된 pdf는 어디서 받을 수 있나요?
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
DummyObject 에 대하여
DummyObject 클래스의 newUser와 newMockUser 메서드 용도가 헷갈립니다..newMockUser 는 테스트할 때 Mock환경에서 User객체를 간편하게 만들기 위해 따로 만든 메서드인가요 ?newUser는 용도를 잘 모르겠어요
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
DTO를 이너클래스로 계속추가하는 이유
bank.dto.user 패키지안에 req, resp 패키지를 만들어서 각각 DTO 클래스를 추가하는것과선생님이 하신 UserReqDto , UserRespDto 에 이너클래스로 추가하는건 무슨차이가 있나요 ???
-
미해결스프링 시큐리티
커밋위치 질문
실전프로젝트 -인증 프로세스 Form 인증 구현 1) 실전프로젝트 생성 에 해당하는 소스코드는 ch04-02 브렌치 어디 커밋에 있나요?? 찾아도 안나와서 문의드립니다. 서버 가동이 오류없이 되는 커밋위치가 궁금합니다.. 그럼 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이를 키셨는데..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 인텔리제이 설치 옵션은 혹시 어디서 확인 가능한가요?
-
미해결토비의 스프링 부트 - 이해와 원리
스프링부트 내장톰캣이 아닌 별도 웹서버 설치 가능 여부 문의
스프링부트 내장톰캣이 아닌 별도 웹서버 설치 가능 여부 문의 토비님 안녕하세요~여전히 공공기관 프로젝트 참여중입니다관리하시는 총괄 PL 께서 혹시 스프링부트 사용하면서 내장톰캣이아닌 다른 웹서버를 설치 해서 사용 가능한지를물어보시더라구요내장톰캣이 아닌 웹로직이던, 다른제품을 두고웹로그분석기나 다른 솔루션을 같이 웹서버에언져서 사용하고 싶은가 보더라구요 1.이게 가능한지 문의 드립니다. 만약 가능하다면 제가 구글링이나, 스프링문서에서 어느 부분을 찾아 보면 될까요? 2.실전에서 내장톰캣이 아닌 별도 웹서버 설치해서 연동하는 이유는 어떤것 들이 있는지도 궁금하네요급한부분 아니니 한가 하실때 알려주시면 감사하겠습니다. 수고하세요김동희 드림
-
미해결스프링 부트 - 핵심 원리와 활용
스프링부트 내장톰캣이 아닌 별도 웹서버 설치 가능 여부 문의
스프링부트 내장톰캣이 아닌 별도 웹서버 설치 가능 여부 문의#스프링#스프링부트#spring#spring-boot#boot#내장톰캣#톰캣#웹서버 강사님 안녕하세요~여전히 공공기관 프로젝트 참여중입니다관리하시는 총괄 PL 께서 혹시 스프링부트 사용하면서 내장톰캣이아닌 다른 웹서버를 설치 해서 사용 가능한지를물어보시더라구요내장톰캣이 아닌 웹로직이던, 다른제품을 두고웹로그분석기나 다른 솔루션을 같이 웹서버에언져서 사용하고 싶은가 보더라구요 1.이게 가능한지 문의 드립니다. 만약 가능하다면 제가 구글링이나, 스프링문서에서 어느 부분을 찾아 보면 될까요? 2.실전에서 내장톰캣이 아닌 별도 웹서버 설치해서 연동하는 이유는 어떤것 들이 있는지도 궁금하네요급한부분 아니니 한가 하실때 알려주시면 감사하겠습니다. 수고하세요 김동희 드림
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
테이블 insert
Spring Data JPA 를 이용한 Entity 설정과 초기 데이터 생성 강의를 학습하는 도중에 data.sql에 insert into users values(1, now(), 'User1', 'test111', '701010-1111111'); 라고 하면 Error executing DDL insert into users values 이런 오류가 생성되는데 users에 파라미터를 써주고 하니 테이블에 잘 올라갔습니다. 무슨 차이가 있는지 궁금합니다!insert into users(id, join_date, name, password, ssn) values(1, now(), 'User1', 'test111', '701010-1111111');
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
화면에 관한 메소드는 엔티티에 넣지 말라고 하셨는데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]BookForm을 인자로 받는 생성자를 넣는 건 별로인가요? 하긴 그러면 또 RestAPI맞는 생성자, 등 지저분해 지긴 할 거 같은데..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
html p 안에 ${}가 문자열로 인식돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]html에 있는 p태그 안에 ${Data}가 문자로 인식되는거같아요어떻게 해결할까요..