묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
24분 27초 연관관계 편의 메서드 위치
[질문 내용]24분 27초에 연관관계 편의 메서드 위치는컨트롤 하는 쪽에 있는 게 좋다. 라고 하셨는데 연관관계의 주인쪽이라고 이해를 했습니다.그렇다면 OrderItem을 추가하는 메서드는Order쪽이 아니라 OrderItem에 해주어야 하는 게 아닐까 생각이 드는데 맞을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]// @Transactional public void update(Long id, String name, String city, String street, String zipcode) { Address address = new Address(city, street, zipcode); Member member = memberRepository.findOne(id); member.setName(name); member.setAddress(address); }위와 같이 update 메서드의 @Transactional 을 주석 처리하고 해봤습니다.제 예상이라면 응답값이 새로워진 값이 아니라 기존의 값이 응답값으로 내려와야 할 것 같았습니다. @PutMapping("/v2/members/{id}") public UpdateMemberResponse updateMemberV2( @PathVariable Long id, @RequestBody @Validated UpdateMemberRequest request ) { memberService.update( id, request.name, request.city, request.street, request.zipcode ); Member findMember = memberService.findOne(id); return new UpdateMemberResponse(findMember.getId(), findMember.getName()); }왜냐하면 결론적으로 엔티티 자체는 수정되었지만 DB에 쿼리가 날라가지 않았고위 컨트롤러 코드에서 find 메서드는 엄연히 다른 트랜잭션에서 진행되니(애초에 업데이트는 트랜잭션이 없었지만) 다른 영속성 컨텍스트가 존재할 것이며,1차 캐시또한 비워져있을 테니(애초에 업데이트는 영속성 객체를 가지고 있지 않았기에 1차캐시에 없음) 즉, 컨트롤러에서 find한 Member 객체는 새로 DB에서 가져온 객체 == 기존 객체 일테니응답 값이 기존 값과 같아야할텐데 아래와 같이 달라진 값을 응답으로 내려주고 있었습니다.왜 그런걸까요?가입 응답{ "name": "hello", "city": "city", "street": "street", "zipcode": "12345" }수정 응답{ "name": "hello@", "city": "city@", "street": "street@", "zipcode": "12345@" }
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
마이그레이션 오류입니다.
강의에서 강사님께서 11에서 17로 바꾸라는 모든 설정 확실하게 수정 완료했고 gradle 코드 수정하여 실행하니 A problem occurred configuring root project 'library-app'.> java.util.concurrent.ExecutionException: org.gradle.api.GradleException: Failed to create Jar file C:\Users\seong\.gradle\caches\jars-9\3baa90cc2341a9ffd1656b87b2a3526e\spring-core-6.2.11.jar.아래와 같은 jar 파일 오류가 떴습니다. 구글링과 GPT를 써보니 캐시 파일 버전 충돌 오류라고 하여 캐시 파일을 삭제 하려고 해도 디렉터리가 비어있지 않다는 오류가 뜨며 삭제되지 않고, 또 .\gradlew wrapper 버전이 현재 7.5인데 스프링 부트 3.5.6은 최소 8.x를 사용한다고 하여 이것 또한 업그레이드 하려고 하였으나 PS C:\Project\Study-SpringBoot\library-app> .\gradlew wrapper --gradle-version 8.3 --distribution-type allStarting a Gradle Daemon, 5 stopped Daemons could not be reused, use --status for detailsFAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'library-app'.> java.util.concurrent.ExecutionException: org.gradle.api.GradleException: Failed to create Jar file C:\Users\seong\.gradle\caches\jars-9\3baa90cc2341a9ffd1656b87b2a3526e\spring-core-6.2.11.jar.동일한 이런 jar 파일 오류가 떴습니다.이 오류를 어떻게 해결해야 할까요 .... 도와주세요 ㅜㅜ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
단건 주문만 가능하게 한건 의도한 부분이신가요?
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]단순 궁금증입니다.도메인 설계에서 여러 OrderItem을 만들 수 있도록 설계했으면서 정작 Service에선 한 개의 ItemId, count를 받게 하신건 의도하신건가요? 의도하신거였네요.뒷 내용을 확인하지 않고 질문을 달았었네요..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
[질문 내용]묵시적 조인인select t.members from Team t이것과명시적 조인인select m from Team t join t.members m이 둘의 SQL 결과는 같았습니다.JPQL은 객체지향 쿼리니까 객체로 생각해보아도t.members는 List<Member> 컬렉션 자체이고t.members m으로 별칭을 주면 이 m은 Member 단위라는 게혼자 생각도 해보고 질문 글도 보고 검색도 계속 했는데 그 어디에도 납득가는 설명이 없어서요.그냥 외워야 하는 부분일까요?ㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
소스커넥터는 사용안한 거 맞죠?
이전 강의에서 콘솔로 디비 이벤트를 소스커넥트로 추적하고 싱크커넥트로 추적한 내용을 저장했는데여기서는 소스커넥터로 추적하는 방식은 제외하고 싱크커넥터로 추적하는 방식을 사용해서 오더서비스 디비의 내용을 동기화한 건가요?
-
미해결RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
강의 자료 관련
강의자료가 PDF로 변환하다보니, 문자 길이 때문인지 끊어지는 경우가 있는거 같은데 혹시 Notion 페이지로 제공해주실 수 잇나요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
dto 필드 속 엔티티 여부
1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, dto에 대해서 질문드리고 싶어 남깁니다. order 테이블에는 연관관계 필드가 있는데 orderDto에서는 연관관계 필드를 제외한 데이터들이 필드로 들어가있습니다.보통 Dto를 작성할 때는 엔티티 연관관계 필드들은 양방향 편의 메서드같은것으로 수정하고 dto에서는 int, String같은 기본 필드들만 받는것이 일반적일까요 ? 스프링부트 1 버전에서 가급적 단방향 연관관계로 설계하라 하셨는데, 단방향으로 설계하게 되면 연관관계 편의 메서드를 작성하지 않을텐데 이때는 dto필드에 엔티티까지 작성하는지 궁금합니다.좋은 강의 제공해주셔서 감사드립니다 !
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
멀티모듈
안녕하세요 토비님배운 내용을 바탕으로 기존 프로젝트 구조를 변경하는 연습하고 있습니다.기존 프로젝트가 멀티 모듈로 되어있어 멀티모듈 구조는 그대로 가져가고 싶은데 분리한다면어떻게 나누어야 할까요?모듈을 두개로 나누어 api와 core로 구성했는데 adapter, application, domain를api 모듈에 adapter core 모듈에 application, domain 이렇게 구성하였는데 이렇게 구분해도 괜찮은지 잘 모르겠습니다
-
미해결실전! Querydsl
querydsl sum() 메서드 없어요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]보시다시피 sum()은 아예 없어요. NumberExpression 클래스에서 집계 함수들을 살펴보니깐 sum() 은 private로 되어있고, 나머지 sum 함수들은 내부에서 sum()을 호출해요. 구글에 검색해보면 다들 sum을 쓸 수 있는 것처럼 보이던데 왜 저만 이럴까요?그리고 sumBigInteger()는 있는데 정작 sumInteger()는 왜 없을까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
DTO를 서비스 레이어에서 사용할 수 밖에 없다면
엔티티를 쓰지 못하는 상황JDBC Template나 nativeQuery처럼 직접 조회가 필요한 경우에는 엔티티를 사용하기 힘들 것 같은데이런 경우에 DTO를 사용하게 되면 서비스 레이어에 해당 부분이 생길거 같은데 이 정도는 괜찮은 걸까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Whitelabel Error Page 오류가 났습니다.
h2-console 웹에 접속하려고 하니 Whitelabel Error Page 오류가 뜹니다. 그래서 구글링하니 Spring Security에서 h2 console을 허용하라는데 어떻게 하는지 잘 모르겠습니다 ㅜㅜ.. 도와주세요 ㅜㅜ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의자료 업데이트 문의
깃허브에 올라와있는 강의자료는 언제쯤 업데이트 될까요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
인텔리제이 패키지 커서 단축키 질문
[질문 내용]안녕하세요, 상속 관계 예제를 따라하다보니 예전부터 궁금했던 단축키가 있습니다. 패키지 내부에 클래스를 생성하면 생성한 클래스 내부에 커서가 잡히는데, 이 커서를 다시 패키지로 가게 하는 단축키가 있을까요? 예를 들면 item이라는 패키지에 cmd+n 을 하면 새로운 클래스 생성 메뉴가 뜨는데, 일반적으로는 클래스를 생성하고 cmd+n을 누르게 되면 커서가 생성한 클래스의 코드에 잡히게 되고 해당 클래스 메뉴(생성자 생성 등)가 뜨게 됩니다. 클래스 생성후 커서를 다시 패키지쪽으로 옮겨서 cmd+n 을 하면 빠르게 여러 클래스를 생성할 수 있을 것 같은데, 혹시 사용하고 계신 단축키가 있다면 말씀주시면 감사드리겠습니다!
-
미해결실전! Querydsl
build 디렉터리 생성
grald - tasks - build에서 clean만 더블클릭 하면 build 폴더가 삭제되는데 clean이후 build까지 해주는게 맞나요? 강의자료에서는 clean까지만 나와있어서요 .
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
강의 업데이트 내역 질문
안녕하세요.강의 업데이트가 된 거 같은데 혹시 업데이트 된 내역을 확인 할 수 있는 곳이 있을까요? 어떤 부분이 바뀌었는지 궁금합니다~
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
빌드 툴, Gradle
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의 첫 영상에서 build 할 때 Build and run using : GradleRun tests using : Gradle 하셨는데주문서비스Test 돌릴 때 인텔리제이로 돌리면 위 사친 처럼 나오고gradle 로 해서 돌리면 위 사진 처럼 나오는데 강의 영상에선 인텥리제이로 해서 돌리신 것 같은데 인텥리제이로 해서 돌려도 괜찮은 것인가요? 문제 발생할 수 있다고 해서 궁금해서 여쭤봅니당..
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ
다 정상적으로 동작하는데 이름 수정 로직이 제대로 동작하지 않고 서버 내부 오류라는 메시지가 자꾸 출력됩니다.제가 혼자 해결해보려고 해보았는데 Hibernate가 id로 조회한 결과가 없어서 Optional이 비어서 orElseThrow가 예외를 던진거라고 하는데요... Postman 이용해서 제 실제 DB에 있는 데이터 값으로 전송해도 sql은 실행이 되는데 뭐가 문제인지 잘 모르겠습니다 ㅜㅜ도와주세요 ㅜㅜㅜㅜ
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
tbl_todo 질문입니다
강의 12분 55초에malldb로 들어가서 tbl_todo가 떠야하는데 저는 없네요그래서 한참 이것저것 찾아보니까 tbl_todo가root/apidb/에 있네요.어디가 잘못된건가요?ㅜㅜ
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
수업 외 질문인데 'tbl'이 무슨 의미인가요???
Table 어노테이션에서 이름 지정 시 tbl 이라는 접두사가 붙었는데 무슨 의미가 있는건가요??