inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

단일 테이블 시 null 값과 연관관계 필요성 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 강의듣고 혼자서 영화 정보 사이트를 만들어보며 공부중에 있습니다. 만들던 중 테이블 설계하는데 궁금증이 생겨 질문드립니다. 해당 사이트는 영화뿐 아니라 드라마 시리즈 정보 또한 제공할 것인데요. 영화, 드라마 시리즈는 둘 다 공통적으로 크레딧(감독 및 출연진 정보)를 가지죠. 처음에는 영화, 시리즈 크레딧 각각의 테이블로 만들려다가 공통되는 부분이 많기에 단일 테이블 전략으로 크레딧을 다음과 같이 만들었습니다. Credit 클래스 { id // pk name // 배우 및 감독 이름 role // 역할 movie series } 이제 질문입니다. 위처럼 단일 테이블 전략으로 만드니 하나의 행에서 영화 또는 series 둘 중 하나는 결국 null 값이어야 할 것입니다. 한 배우의 하나의 영화 또는 드라마 시리즈에 대해서만 나타내는 것이니까요. 그런데 모든 행이 둘 중 하나는 의도적으로 null 값을 가질텐데 null이 있어도 전혀 문제가 없나요? 공부하면서 만든 엔티티들은 아무 생각 없이 하나의 영화는 다수의 크레딧을 가지고, 하나의 시리즈도 다수의 크레딧을 가지니까 연관관계를 맺어야지 하고 만들었습니다. 그런데 생각해보니 굳이 연관관계를 맺지않고, 영화나 시리즈를 나타내는 타입 정보만 넣어서 구분 짓어준다면, 영화의 크레딧인지 시리즈의 크레딧인지 구분하여 조회가 가능하다고 생각합니다. 그래서 이때 연관관계라는 것이 반드시 왜 필요한지 궁금해졌습니다. 이렇게 타입정보로 구분지어 조회가 가능할 때도 연관관계는 반드시 맺어주는게 좋나요?

  • java
  • jpa
yoon6669 댓글 1 좋아요 0 조회수 93

SpringBoot4 버전 Hibernate5JakartaModule 라이브러리 오류

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 스크립트 Hibernate5JakartaModule 호출시 에러가 발생하여 확인 차 문의드립니다.ㄴ> om.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule Unable to get public no-arg constructor 스프링부트 버전 문제인 것으로 판단하여 프로젝트의 스프링부트 버전확인시 4.1.0 버전으로 실행하였고 해당 버전에서 라이브러리와 클래스 변경이 있는 것 같아 질문 남깁니다. // Hibernate5jakarta // implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5-jakarta' // -> 변경 // Hibernate7Module implementation 'tools.jackson.datatype:jackson-datatype-hibernate7' package jpabook.jpashop; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import tools.jackson.datatype.hibernate7.Hibernate7Module; @SpringBootApplication public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } // @Bean // Hibernate5JakartaModule hibernate5Module() { // Hibernate5JakartaModule hibernate5JakartaModule = new Hibernate5JakartaModule(); //// // 강제 지연 로딩 설정 // hibernate5JakartaModule.configure(Hibernate5JakartaModule.Feature.FORCE_LAZY_LOADING, true); // return new Hibernate5JakartaModule(); // } // ㄴ 변경 @Bean Hibernate7Module hibernate7Module() { Hibernate7Module hibernate7Module = new Hibernate7Module(); // 강제 지연 로딩 설정 // hibernate7Module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true); return hibernate7Module; } }

  • java
  • spring
  • spring-boot
  • jpa
devwj20 댓글 1 좋아요 0 조회수 114

aws 관련 질문드립니다.

해결됨

Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기

AWS EC2 서버에 애플리케이션 배포하기 수강중인데 인바운드 포트 열고 -> 재부팅 -> docker ps 에 아무것도 없음 -> docker-compose up -d 로 컨테이너 생성 -> ec2-13-209-73-224.ap-northeast-2.compute.amazonaws.com:8080/api/posts 로 요청 반응 없음-> 터미널 반응 없음 docker ps , ssh springboot-twitter 전부 반응 없음 계속 이렇게 되는데 이게 cpu 할당량이 문제인건지.. 모르겠네요

  • aws
  • mysql
  • docker
  • spring-boot
  • jpa
지성조 댓글 3 좋아요 1 조회수 95

setter 사용하지 않기

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] setter 사용을 지양하라고 하셨는데요 □ 필드 작성 □ 연관관계 설정 □ List 초기화(new ArrayList<>()) □ @NoArgsConstructor(PROTECTED) □ private 생성자 □ createXXX() □ 연관관계 편의 메서드 □ 비즈니스 메서드(changeXXX(), cancel() 등) 그러면 제가 정리한 이 순서처럼 아래 코드와 같이 createMember 메소드를 위한 생성자를 만들고, changePassword같은 비즈니스 메서드를 추가하면 될까요? 2.그리고 createXX같은 메서드를 추가해줬을때@NoArgsConstructor(access = AccessLevel.PROTECTED) 를 추가해줘야하는게 맞는건가요? 코드는 강의와 관련없는 제 개인 코드입니다. //생성자 private Member( String name, String email, String password, LocalDate birthDate, String phoneNumber, Address address ) { this.name = name; this.email = email; this.password = password; this.birthDate = birthDate; this.phoneNumber = phoneNumber; this.address = address; } public static Member createMember( String name, String email, String password, LocalDate birthDate, String phoneNumber, Address address ) { return new Member( name, email, password, birthDate, phoneNumber, address ); } //비밀번호 변경 public void changePassword(String password) { this.password = password; }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
지민 댓글 1 좋아요 0 조회수 89

자막 오타 제보

해결됨

[Lv2] 현업 개발자의 JPA 완전 정복 - 영속성 컨텍스트부터 실무 패턴까지

다형성인데 다양성이라고 표시되어 있습니다! 이거 말고도 자막에 오타가 많은데, 제보하면 수정해 주시나요?

  • java
  • spring
  • spring-boot
  • jpa
  • spring-jpa
Bruce Han 댓글 1 좋아요 0 조회수 84

rabbitmq에 configservice 연결에 대해 질문있습니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 강사님 강의 잘 듣고 있습니다. 섹션 9에서 강의대로 docker에 rabbitmq를 올린 뒤 configservice를 실행했는데 오류가 발생합니다. org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:772) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.passiveDeclarations(BlockingQueueConsumer.java:649) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:636) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1482) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$ AsyncMessageProcessingConsumer.run (SimpleMessageListenerContainer.java:1322) ~[spring-rabbit-3.2.5.jar:3.2.5] at java.base/ java.lang.Thread.run (Thread.java:1447) ~[na:na] Caused by: java.io .IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:1033) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:47) ~[amqp-client-5.25.0.jar:5.25.0] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1201) ~[spring-rabbit-3.2.5.jar:3.2.5] at jdk.proxy2/jdk.proxy2.$Proxy140.queueDeclarePassive(Unknown Source) ~[na:na] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:750) ~[spring-rabbit-3.2.5.jar:3.2.5] ... 5 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152) ~[amqp-client-5.25.0.jar:5.25.0] ... 12 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:528) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:349) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:193) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:125) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:761) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.access$400(AMQConnection.java:48) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection$ MainLoop.run (AMQConnection.java:688) ~[amqp-client-5.25.0.jar:5.25.0] ... 1 common frames omitted 깃허브의 프로젝트를 그대로 가져오고 어떻게 해도 해결이 안되네요ㅠㅠ 도움 부탁드립니다..

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
전윤미 댓글 1 좋아요 0 조회수 124

안녕하세요 치킨 디도스 이벤트 보고 흉내내보려 들어왔습니다..

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 개발자의 꿈을 접고 살아가던 사람입니다. 월드컵 시즌을 만나 영한님의 치킨 디도스 이벤트와 무상태 프로토콜 강의 내용이 떠올라 뜬금없이 취미로 주문 기능 구현 포트폴리오를 만들던 중 일상에서 경험한 것들을 통해 개인정보 유출에도 대응 가능하려면 어떻게 해야하는지.. 소비자가 트라우마를 경험하거나 여러 고충에 대응할 수 있는 방법을 쥐어짜다보니 영한님 강의를 쪽쪽 뽑아먹고 있는데요.. 부족하지만 직접 성의를 담아 만들어보겠습니다. 약속한게 있어서요.. 항상 좋은 강의 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
wnguddl96 댓글 2 좋아요 0 조회수 120

join에대해 질문드립니다.

미해결

실전! Querydsl

궁금한게있습니다. leftjoin 강좌 설명해주시는데.. 3분 44 초에서.. List<Member> result = queryFactory .selectFrom(member) .leftJoin(member.team,team) .where(team.name.eq("teamA")) .fetch(); 에서... 혹시 버전이나 언어에 따라서.. 같은 문법이라도.. left outer join으로할경우.. left on join으로 변경이되는 케이스가있을까요? val result = queryFactory; .selectFrom(member) //.join( member.team , team) .leftJoin( member.team ,team) //.where( team.name .eq("teamA")) //.on( team.name .eq("teamA")) .fetch(); left outer join이 나올려면 어떻게하는게맞을까요? 혹시 버전/로그 출력 차이때문에 outer도 안나오는케이스가있는지 궁금합니다.

  • java
  • jpa
이경용 댓글 1 좋아요 0 조회수 79

코드 질문

미해결

스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!

AdminService.java에서 List<MemberDto> admins = memberEntities.stream() .map(MemberEntity::toDto) .collect(Collectors.toUnmodifiableList());Collectors.toList(); 이 코드에서 Collercotrs.toList(); 가 의미가 있는 코드일까요? 줄바꿈도 안되어 있고, 약간 이해가 안되는 문장 같아서 질문드립니다.

  • rest-api
  • spring-boot
  • jpa
  • spring-security
  • mybatis
피플로마 댓글 2 좋아요 0 조회수 83

To-Do App

미해결

스프링 부트와 리액트로 구현하는 소셜 로그인

9. 스프링 부트 프로젝트 생성 하고나서 10. 일반 로그인 실행 에 To-Do App과 바로 로그인이랑 이런것들 코드를 생성한적이없는데 어떻게 생겨있나요?

  • react
  • java
  • spring-boot
  • jpa
  • spring-security
Nuri Park 댓글 1 좋아요 0 조회수 67

twitterdb 연결이 안돼요

해결됨

Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기

왜그런지 모르겠는데 Unable to determine Dialect without JDBC metadata 라고 뜨면서 intelliJ가 돌아가지 않습니다 영상대로 하다가 8:54에서 막혔습니다

  • aws
  • mysql
  • docker
  • spring-boot
  • jpa
댓글 2 좋아요 1 조회수 101

@JsonIgnore 이후 Internal Server Error가 발생하지 않습니다.

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[강의] 간단한 주문 조회 V1 : 엔티티를 직접 노출 [시간] 8분 25초 [질문 내용] 양방향 연관관계로 인한 무한 루프 문제까지는 발생하였고, @JsonIgnore로 해결하였습니다. 그런데 강의 내에서 지연 로딩으로 인해 발생하는 "Internal Server Error"가 발생하지 않고 아래 사진과 같이 200 OK가 뜨면서 조회 결과가 나옵니다 ㅜㅜ 강의와 같은 에러가 발생하지 않는 이유를 모르겠습니다...

  • java
  • spring
  • spring-boot
  • jpa
Soo_6 댓글 3 좋아요 0 조회수 157

changeTeam 메서드 질문

해결됨

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 08:40 쯤에 public void changeTeam(Team team) { this.team = team; team.getMembers().add(this); } 이 부분에서, 내 팀을 변경해주고 변경할 팀에 해당 member를 넣어주는데 팀만 변경해 주면 되지 않나요? 따로 해당 team의 .getMember에 해당 멤버를 넣어주는 이유가 무엇인지 궁금합니다. 저장하기 전 까지는 해당 영속성에서는 이전 team에 할당이 되어 있어 수동으로 바꿔주는 것 인가요?

  • java
  • spring
  • spring-boot
  • jpa
Minho Lee 댓글 1 좋아요 0 조회수 92

테스트 관련 질문!

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

각 클래스 별 테스트시에는 성공이 뜨는데, 전체 테스트 실행시 안됩니다 .ㅠㅠ

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
kim1234123 댓글 2 좋아요 0 조회수 146

안녕하세요 질문있습니다.

해결됨

누구보다 빠르게 배우는 Springboot + React RestAPI 게시판 만들기

강의에서는 BoardDto로 요청을 다 받고 있는데 요청값은 CRUD마다 다를거라고 생각하는데 Request 객체의 변경이 Service 계층에 영향을 미칠 수 있기 때문에 컨트롤러랑 서비스 DTO를 다르게 준다고 알고있습니다. 컨트롤러 BoardCreateRequest BoardCreateResponse 서비스 BoardCreateDto BoardCreateResult 근데 api 하나 만들때마다 너무 많은 변환과 객체 생성이 이루어질거같은데 강사님은 실무에서 어떤 방법을 사용하시나요?!.. 궁금합니다

  • react
  • java
  • kotlin
  • spring-boot
  • jpa
정인호 댓글 2 좋아요 0 조회수 106

application.properties가 적용되지 않아요

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

2-3강 8분 11초처럼 application.properties에 뭘 넣어도 적용이 안되고 사용되지 않는 프로퍼티라는 글밖에 나오지 않습니다 .

  • spring
  • spring-boot
  • jpa
  • hibernate
weogle 댓글 3 좋아요 1 조회수 205

새 프로젝트 속 제너레이터에 SpringBoot가 없습니다.

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

2-2강 2:27 부분에서처럼 새 프로젝트를 눌러도 제너레이터에 Spring Boot가 없습니다. 마켓플레이스에서 설치해야하는걸까요? 저는 신규 유저가 아니라 쿠폰 쓰지 못하여 기본으로 사용 중이라 보이지 않는걸까요?

  • spring
  • spring-boot
  • jpa
  • hibernate
weogle 댓글 2 좋아요 0 조회수 187

설정 정보 없이 임베디드 데이터베이스 생성

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 스프링이 설정정보 없이 H2 데이터베이스 커넥션을 연결할 때 build.gradle에 dependencies 에 있는 H2를 읽고 커넥션을 연결하나요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
crime8354 댓글 1 좋아요 0 조회수 86

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. OrderServiceTest에 상문주문 메서드 실행 할때 쿼리를 봤는데 item에 update 쿼리가 발생했더라고요. 제가 궁금한게 item, member, order.. 등등 persist 했고 중간에 flush를 할만한 jpql이라던가 모든 엔티티 pk가 identity로 되어 있지 않은데 item에 update가 왜 발생한건가요? 엔티티를 persist 하고 flush 전에 변경 감지 set으로 수정하면 insert -> update가 나가는건가요? insert만 나가는거 아닌가요? 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 99

인기 태그

인프런 TOP Writers

주간 인기글