묻고 답해요
138만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
select문도 쓰기 지연에 포함인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 이전에 질문 남겼는데 좀 대충 작성했더니 질문이 이해 안간다고 하셔서..(ㅠㅠ) 다시 자세하게 작성합니다!질문 : em.find() 하면 select문이 나가잖아요? 이런 경우엔 쓰기 지연이 발생하는게 아닌 것 같다고 생각했는데 맞나요? (동일 트랜잭션 상에서 persist(insert)한 적이 없고, DB에 존재하는 엔티티를 조회한다는 전제입니다.)그렇게 생각한 근거는 1. 이름이 '쓰기' 지연이다. 2. find()한 후에 다음 줄에서 조회한 엔티티를 출력해보면 결과가 나온다.사소한 궁금증인데, 찾아봐도 안나오기도 하고, 강의에서는 update, insert, delete 시 쓰기지연이 발생한다' 라고만 언급하셔서 질문 남깁니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
8강 서버 내부오류 어떻게 해결하죠..?
sql서버도 껏다가 다시 시작도 해보고포스트맨도 창 전부 지웠다 다시 하고 오류 없이 200ok나온것 확인도 하구인텔리제이 코드도 컴파일 잘 되는거 확인 했습니다..http://localhost:8080/v1/index.html 들어가서 이름 나이 입력하면 서버내부오류라고 나오네요답변해주시면 갑사합니다.그림 첨부하고싶어도 사진클릭이나 저장이 불가능하네요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 - 비즈니스 로직 stockQuantity 질문있습니다!
=====================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]상품 엔티티 개발(비즈니스로직) 강의엔티티 내에서 stockQuantity와 관련된 로직이 함께 있어 응집성이 높아짐 + 캡슐화에 부합 -> 관리하기 좋음 이렇게 이해를 했습니다.여기서 질문이 객체지향원칙 SOLID - SRP 단일책임 원칙에 의해 클래스는 하나의 변경 이유만 가져야 한다. 에서 비즈니스 로직을 추가함으로써 SRP 원칙을 위배한거라고도 볼 수 있을까요?맞다면 객체지향원칙 - SRP원칙을 위배했지만 좋은 코드 같긴한데 위 사례에서는 객체지향적 설계로 완벽하다고는 볼 수 없는건가요?객체지향 원칙을 굳이 무조건 따르지 않고 유연하게 코드 개발을 해나가는게 좋을까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
api응답을 어떤 식으로 하면 좋을까요?
강의를 보고 혼자서 api를 만들어보고 있습니다.강의 회원 가입 예제api는 void로 별도의 응답을 하지 않았는데 보통은 어떤 식으로 하나요?[{"success" : "true"}]이런 식으로 나마 응답 값을 주는게 맞을까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실행오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<엔티티클래스 개발2>의 6:51부분까지 따라하고 JpashopApplication 을 실행했는데 오류가 뜨네요.Caused by: org.hibernate.type.descriptor.java.spi.JdbcTypeRecommendationException: Could not determine recommended JdbcType for Java type 'jpabook.jpashop.domain.Item.Item'
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
하이버네이트가 실행되는 오류가 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님 항상 좋은 강의 잘 보고 있습니다.다름이 아니라, 이번에 강좌에서 프로젝트를 새로 생성하고 테이블을 생성하는 과정에서 다음과 같은 오류가 발생하면서 테이블이 생성되지 않는데 어떤 원인이 때문인 그런 건가요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
persist 수행시 덮어 씌워져 버리는 문제
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]영한님 강의에서는 위와 같이 두 행의 데이터가 잘 조회되는데, 2024 버전으로 설치한게 잘못인건지 두번 쿼리를 날렸는데 이전 행에 덮어 씌워져 버리는 현상이 있습니다... 이유가 뭔지 모르겠네요 혹시 아시는분 답변 부탁드려요
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
혹시 섹션 3까지만 듣고 게시판 API를 만들어도 될까요?
(강의를 중단한다는 것은 아니고) 친구들끼리 게시판 API를 만들기로 했는데 지금까지 한 유저 API를 토대로 게시판 API를 만들어보고 싶은데 많이 다를까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
객체 연관관계 매핑 및 객체 지향 설계에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 테이블 설계를 하다가, 연관 관계 매핑에 대해서 고민을 하게 되었습니다.객체간의 연관관계 매핑은 정말 좋은 기술이더라구요. 여러 객체들간의 의존관계를 묶어주고 필요할때, 연달아서 조회할 수 있고 , update도 가능해서, 근데 여기서 고민을 하게 되었습니다.연관관계 매핑이라는것이 다른 테이블 설계를 할때 진짜 여러 객체를 물고 있더라구요. 어? 얘도 A,B연관관계 매핑이 되네. 얘도 매핑시키고 또 B에서 C도 매핑이 되네. 끊임없이 매핑을 저도 모르게 하고 있더라구요. 여기서 또 제 나름 객체 지향도메인 설계를 해보겠다고 하여, 객체안에서 처리하려고 하면 예를 들어 order라는 객체안에서 order라는 주문을 처리하려고 , 주문과 관련된 모든 객체를 끌어다가 처리하고 있더라구요. 근데 이러한 방식이 수정시에 side effect로 큰 문제가 생기더라구요. 여기 고치고 저기 고치고 하는 문제로. 갈피를 못잡는 문제가 생깁니다. 어떻게 하면 객체 연관 관계 매핑을 잘할수있을까 싶어서 질문드립니다. 맺고 끊음을 확실히 하는게 맞을거 같다는 생각이 들어서. 근데 말만 하면 모든 객체를 연관관계를 할수있는거 같고, 해결책이 없을까 질문드립니다. 모든 객체를 연관관계 시키는게 맞는것인지. 그리고 객체 지향적 도메인 설계에 대해서 질문도 드려봅니다..
-
해결됨실전! Querydsl
where절 null처리
querydsl은 null처리를 통해 where절을 생략하셨다고 했습니다.Enum타입이나 String 의 dto에 get을 요청하면 npe가 뜹니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring config bus에 actuator 안쓰는거같은데 설치하는 이유있나요?
궁금힌ㅂ니다
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
테스트에 @Transactional 뺀다고 이렇게 하면 좀 과한가요?
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.안녕하세요 선생님 강의 잘 보고 있습니다! 테스트 메서드에 @Transactional을 다는 것이 테스트를 오염시킬 수 있다는 말씀을 듣고 이리저리 검색해본 결과 저걸 빼고 싶어졌습니다. 덕분에 jpa와 트랜잭션에 대해 잘 몰랐는데 조금 알게됐고, TransactionTemplate을 주입해서 sessions를 초기화하고 꺼내는 코드를 짜봤습니다. 코드를 너무 과하게 키운건 아닌가 싶기도 하고, 한편 Transactional 어노테이션 붙이는거랑 결국 별 차이가 없는건가 싶기도 해서 의견을 여쭤보고 싶습니다. 건강관리 잘 하시길 바랍니다요 @Test @DisplayName("로그인 성공 후 세션 생성") void test2() throws Exception { Member member = memberRepository.save(Member.builder() .name("hi") .email("test@test.com") .password("1234") .build()); Login login = Login.builder() .email("test@test.com") .password("1234") .build(); mockMvc.perform(post("/auth/login") .contentType(APPLICATION_JSON) .content(objectMapper.writeValueAsString(login)) ) .andExpect(status().isOk()) .andDo(print()); List<Session> memberSessions = transactionTemplate.execute(status -> { List<Session> sessions = memberRepository.findById(member.getId()) .orElseThrow(UserNotFound::new) .getSessions(); Hibernate.initialize(sessions); return sessions; }); Assertions.assertEquals(1L, memberSessions.size()); }
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 코드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품주문 테스트 코드를 진행 중 자꾸 오류가 뜨는데 찾아보니 member 는 insert 가 잘 되는데 book 객체는 insert 되는 문구가 없고 getId() 값 조차 없는데 강의자료랑 다 맞춰보고 했는데도 해결이 안되서 글 남겨요..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관 관계 주인을 설정해야 하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 멤버 객체, 팀 객체 둘 중 하나로 MEMBER 테이블의 외래키를 관리해야 한다는 부분이 깔끔하게 이해가 가지 않아서 질문 드립니다.제가 이해한 내용이 맞는지 확인 부탁드리겠습니다. 결국에 멤버 객체와 팀 객체가 서로를 호출하거나 업데이트하는데 사용하는 테이블은 멤버 테이블과 팀 테이블의 조인으로 생긴 하나의 테이블인데, 하나의 테이블이 2개의 객체와 매핑된다면 문제가 발생한다.(팀 객체가 갱신한 내용이 멤버 객체에 반영되지 않는 등의 문제)그렇기 때문에 연관관계의 주인을 설정하여 한 객체만 실제로 테이블과 매핑하고 나머지 하나는 매핑된 객체로 부터 미러링된 내용을 사용(읽기 전용)한다. 이렇게 이해하는게 맞는 걸까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
질문입니다..
정말 죄송하지만 제가 이것 때문에 진도를 쭉 못 나가고 있어서 답답한 마음에 질문 드립니다..인텔리제이 무료 쓰고있고, cli말고 workbench로 사용하려고 하는데요, 인터넷에 알아보면 먼저 application.properties에 (저희는 application.yml이더라구요) 이걸 추가하고두번째로는 build.gradle에 이걸 추가하더라구요이다음에 어떻게 하는건지 모르겠습니다 ㅜㅜ첫번째 사진의 driver도 연결 안되는 것 같고 디비와 연동되는지 확인하는 방법도 모르겠어요...
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
Movie 엔티티 조회 시 실행되는 SQL Query가 강의 영상과 상이한 이슈에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 고급 매핑 - 상속관계 매핑 강의 영상 16:15 부분에서 Movie 엔티티 조회 코드 실행 결과로 출력되는 SQL Query와 저의 프로젝트의 코드 실행 결과로 출력되는 SQL Query가 상이하여 질문드립니다. 우선 프로젝트 생성은 2024 최신 버전으로 프로젝트 설정하기 문서를 참고해서 진행하였으며, 아래와 같이 작성한 코드 일부와 실행 결과로 출력되는 SQL Query를 첨부드립니다.Movie findMovie = em.find(Movie.class, movie.getId());select m1_0.id, m1_1.name, m1_1.price, m1_0.actor, m1_0.director from Movie m1_0 join Item m1_1 on m1_0.id=m1_1.id where m1_0.id=?위와 같이 강의 영상처럼 SELECT문의 형태가 MOVIE 테이블과 ITEM 테이블의 INNER JOIN이 아닌 INNER JOIN을 직관적(?)으로 나타내고 있지 않는데요. 한가지 예상되는 건 2024년도 기준 프로젝트 생성 시 하이버네이트, H2 DB 버전이 강의 내용에서 다루는 버전들보다 업그레이드 되어 동작 방식이 달라져서 그런게 아닐까 생각이 듭니다. 이 부분이 맞다면 만약, 강의와 동일한 SQL Query를 출력해 보고 싶다면 프로젝트에서 사용중인 라이브러리 버전들을 다운그레이드하는 방법밖에는 없을까요?<!-- TODO s:pom.xml 코드 일부 --> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.4.2.Final</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.2.224</version> </dependency> </dependencies> <!-- TODO e:pom.xml 코드 일부 -->
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
select문 지연 여부
근데여 JPA가 쓰기 지연 기능을 지원해서 commit 시에 flush되어 db에 반영되고, commit 되는거라고 하셨잖아요?근데 이름이 '쓰기 지연'이고,,, find 한 다음에 바로 다음줄에서 엔티티 조회하면 되는거 보니까 select문(읽기)은 지연되지 않고 바로 날라가는 것 같은데 맞나여?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
데이터베이스 연동 오류
기존 강의 1편에서 들었던 데이터베이스 파일 전부 삭제하고 다시 처음부터 만들어서 해볼려고하는데 이런 에러가 떠서 어떤식으로 해야하나요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
persistence오류.. 도와주세요
왜 참조를 못 하는지 모르겠습니다...
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 단방향 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.왼쪽과 같이 코드를 작성하여 team.getMembers().add(member);을 수행하면 MEMBER 테이블의 TEAM_ID(FK)가 업데이트가 된다고 말씀하셨습니다.아래와 같이 @OneToMany, @JoinColumn 어노테이션을 사용하면 Team 객체에 members의 객체가 추가될 때 마다 JPA가 자동으로 테이블의 FK를 수정하고 업데이트를 해준다는 것으로 이해를 하면 되는건가요? 설명 부탁드립니다 !