inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

3:34 인증 메일 확인 - 입력값 오류

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

안녕하세요. 아직 앞부분이지만 강의 최고입니다. 질문1 테스트코드 인증 메일 확인 - 입력값 오류에 대해서 지금 로직은 이메일 자체가 없으니까 이메일이 없는 오류고 이메일은 존재하나 토큰이 일치 하지않는경우 이렇게 2가지로 테스트 코드를 진행할 필요까진 없는건가요 ? ================================= 질문2 5:45 초에는 @Transactional 을 달아주셨는데 이 이유가 58 라인에 있는 newAccount.generateEmailCheckToken(); 코드를 영속객체로 관리 해주기 위함 이라고 생각하면 될까요?

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
H K 댓글 1 좋아요 0 조회수 323

Sequence 방식 allocation 기본 값 50에 대한 이해

미해결

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

안녕하세요 allocation 방식에 대해 좀 헷갈려서 제가 이해한게 맞는지 문의 드릴려고 합니다.. 제 생각을 정리 해봤습니다. allocation 기본값 50 설정은 실제 DB 쿼리 문은 2번만 날려 시퀀스 값을 미리 51로 설정 해놓아 메모리상으로 51까지 순차적으로 증가시킨 후 51까지 도달되면 다시 DB로 시퀀스 증가 쿼리문을 날려 101로 증가돼 성능 이점을 챙긴다. 물리적 DB DB 한번 호출 시퀀스 값 1 / PK 값 1 DB 두 번 호출 시퀀스 값 51 / PK 값 2 =============================== 이제 메모리에서 1씩 가져옴 물리 DB PK 값이 51번까지 게속 사용 PK 값이 51까지 도달된다면 DB로 시퀀스 50 증가 쿼리 전송 동시성은 메모리에 이미 올라와 있는걸 사용하기 때문에 문제 없음

  • java
  • jpa
hoonseung 댓글 1 좋아요 0 조회수 731

처음 저장한 데이터가 조회가 안됩니다.

미해결

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

안녕하세요. 현재 대학생이고 김영한님 강의를 본 후 프로젝트를 진행중입니다. 다름이 아니라, 현재 Tale과 Keyword의 다대다 연관관계를 피하기 위해 중간에 TaleKeyword라는 중간 테이블을 두었고, Tale은 Member 테이블과 일대일 연관관계를 설정해두었습니다. 동화(Tale)를 키워드, 회원정보에 끼워넣고 생성하는 API는 완성하였고 DB에 쌓이는 것까지 확인했습니다. 하지만, memberId를 이용해서 조회하려고 하니, 맨 처음 memberId가 1인 회원의 처음 저장한 taleId 1번의 데이터와 memberId가 2인 회원의 처음 저장한 동화인 taleId가 4인 동화가 조회가 안됩니다.(나머지 taleId 2, 3, 5번 데이터는 조회가 잘됩니다.) 쿼리문은 다음과 같이 짰고 영속성 문제인 것 같은데, 왜 첫번째 데이터만 조회가 안되는 걸까요? // 동화 목록조회(페이징) public List<Tale> findTalesByMemberId(Long memberId, int offset, int limit) { return em.createQuery( "select t from Tale t" + " join fetch t.member m" + " join fetch t.image.taleImage ti" + " where m.id = :memberId" + " order by t.createdTime desc", Tale.class ) .setParameter("memberId", memberId) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); }

  • java
  • spring
  • spring-boot
  • jpa
이진 댓글 2 좋아요 0 조회수 407

모든 개체가 필수적으로 참여하는 일대일관계

미해결

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

수업에서는 다양한 예시를 위해 주문과 배송 엔티티를 일대일 관계로 나눠서 만들었지만 db공부를 하던 중 "모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션을 하나로 합친다." 라는 것을 보았습니다. 위 글을 바탕으로 주문엔티티는 배송엔티티를 무조건 가지고 배송엔티티도 주문엔티티를 가지니 하나의 엔티티로 합치고 주문의 기본키와 배송의 기본키 두개를 합쳐 하나의 기본키로 만든다는 생각을 했습니다. 실무에서는 주문과 배송을 각각 나누어 설계하는지 아님 합쳐서 설계하는지 궁금합니다. 다시말해 1대1관계를 나눠서 설계하는지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
코딩먹는하마 댓글 1 좋아요 0 조회수 417

user domain 생성관련

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 선생님, 7강 유저 생성 에서 질문이 생겨 남깁니다. DTO에 User를 생성하는 클래스가 있는데 domain으로 따로 빼서 User클래스를 또 생성하는 이유는 무엇인가요? 스프링부트의 구조 짜는 법을 잘 모르고 있는건가 싶기도 하고..dto는 단순히 어떤 데이터로 통신할건지 정의만 해놓고 상세한 정의는 domain 의 user에서 하는 개념인건가요? 상세한 설명 부탁드리겠씁니다..!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
lynn1602 댓글 1 좋아요 1 조회수 414

JPA와 OOP

미해결

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

JPA 공부하면서 느끼는 점이 엔티티 자체 또는 엔티티 간의 협력관계를 잘못 구성하면 쿼리도 점점 이상해져 간다고 생각합니다. 이에 OOP에 대한 이해가 정말 중요하다는 생각이 드는데, 맞나요?

  • java
  • jpa
백린이 댓글 1 좋아요 0 조회수 311

말해주신대로 코드를 수정한뒤 다시 git clone 했는데요

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

혹시 swap 설정은 clone 할떄 마다 해줘야하나요:?? 엄청느려져서요! 이런식으로 코드를 수정하였는데 엄청 속도가 느려져서 다음 url 로 접속이 안되네요 !

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
hoon 댓글 1 좋아요 0 조회수 343

application.yml 설정하는 곳에러입니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

제 뭐가문제일까요? 제 mysql은 docker에 깔려있습니다

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
달콤한 토끼 댓글 2 좋아요 0 조회수 429

외래키 지정

미해결

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

연관관계의 주인을 외래키의 위치와 관련해서 정한다고 하셨는데, 이 외래키의 위치도 테이블 설계할 때, Member 테이블에 OrderId 방식으로 할지, Order 테이블에 MemberId로 할지는 자주 조회되는 형태를 기준으로 외래키 위치를 정하면 될까요?

  • java
  • jpa
백린이 댓글 1 좋아요 0 조회수 288

@ManyToMany 대체 방법

미해결

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

실전에서는 @ManyToMany를 사용하지 않아서, 테이블의 N:M 관계는 중간 테이블을 이용해서 1:N, N:1로 매핑하는 것을 권장한다고 하셨는데, 중간 테이블을 이용하여 1:N, N:1로 매핑하는 걸 권장한다고 말이, @jointable 만들지 말고, 예를 들어 OrderItem 같은 엔티티와 테이블을 만드는 방법을 말씀하시는건가요?

  • java
  • jpa
백린이 댓글 1 좋아요 0 조회수 318

배포후 사이트에 접속은 되는데 이후 과정이 안됩니다.

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

위험한 컨텐츠라그런지 localhost 로 바뀌어버립니다. 어떻게 하면 이 사이트의 서비스를 이용할 수 있을까요? 다 허용으로 바꾸었는데도 그럽니다 ㅠㅠ ++보니까 제가 url에 일일이 넣어주면 이동이 되는데 아니면 local host 로 변경이 됩니다 이유가 뭘까요> ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
hoon 댓글 1 좋아요 0 조회수 487

테스트 DB 방안에 대해

미해결

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

안녕하세요~! 혹시 테스트 DB 단은 단순히 다음과 같이 명시하여 datasource: url: jdbc:h2:mem:test;MODE=MySQL # Test 는 인메모리 사용 driver-class-name: org.h2.Driver username: sa password: 메모리 DB 를 사용하는 방법은 별로 추천하지 않으실까요? 별도의 DB 를 사용하는 것이 제일 좋은 방법일까요? 메모리 DB를 사용하는것이 빠르고 편할 것 같다고 생각헀는데, 보통 어떤 방식을 실무에서 사용하는지 궁금합니다!! 감사합니다 :) (예를 들어, ci 및 build 서버에서 Test 수행시 외부 DB 서버 내 Test 전용 DB 를 통해 Test 를 한다)

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
강우석 댓글 2 좋아요 0 조회수 601

error: cannot find symbol @Entity ^ symbol: class Entity

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

애플리케이션을 처음 실행하고 여러 파일에서 위 제목과 같은 오류가 납니다. 한 파일이 아니라 여러 파일에 걸쳐가며 저렇게 발생하는데 어떻게 해결해야 하나요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
lynn1602 댓글 1 좋아요 1 조회수 521

스프링부트 버전관련 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 멘토님! 프로젝트앱을 다운받아 열었더니 빌드후에 다음과 같이 오류가 나타납니다.. 전에 프로젝트를 3.xx버전으로 했어서 이 경우에 java 17이상만 가능하기 때문에 java11을 사용하지 못해 나는 오류인것 같은데 어떻게 진행하면 될까요? problem occurred configuring root project 'library-app'. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.1. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.1 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.5' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.1 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.5')

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
lynn1602 댓글 1 좋아요 1 조회수 545

제 mysql 이 적용이 안되는 이유를 알아냈습니다.

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

연결이 위험하다면서 자꾸 제 local로 바뀌네요 전 여기서 해결하고싶은데 ... 어떻게 하면 다음페이지인 인덱스들도 접속 가능하게 할까요?? 그 url에서 http://localhost:8081/start.html 이런식으로 url 이 변경되며 화면이 전환되는 스타일인데 그게 안됩니다 ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
hoon 댓글 1 좋아요 0 조회수 292

메서드명 컬러의 의미

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

강사님 화면을 보면 addTwoNumbers, multiplyTwoNumbers 같은 메서드명 (메서드가 맞나요.. 제가 자바가 아직 서툴러서😅) 이 노란색으로 표시되는데 저는 회색으로 표시됩니다. 이거 글자 색에 어떤 의미가 따로 있나요? 그리고 터미널에도 강사님은 INFO나 WARN 같은 글자들이 컬러로 표시되는데 저는 그냥 다 하얗게 보여서요. 강사님과 똑같이 세팅하려면 어떻게 해야 하나요? 검색해서 settings에 있는 semantic highlighting 적용해 봤는데 똑같이 안되는 거 같아요

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
alice 댓글 1 좋아요 1 조회수 414

강의 내용 중 testEntity 관련 질문입니다.

해결됨

실전! 스프링 데이터 JPA

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. @SpringBootTest @Transactional @Rollback(value = false) class MemberTest { @Autowired EntityManager em; @Test public void testEntity() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member member2 = new Member("member2", 20, teamA); Member member3 = new Member("member3", 30, teamB); Member member4 = new Member("member4", 40, teamB); em.persist(member1); em.persist(member2); em.persist(member3); em.persist(member4); em.flush(); em.clear(); List<Member> members = em.createQuery("select m from Member m join fetch m.team", Member.class) .getResultList(); assertThat(members.get(0).getTeam()).isEqualTo(teamA); } } 제가 작성한 테스트 코드는 위와 같습니다. 발생한 에러는 org.opentest4j.AssertionFailedError: expected: "Team(id=1, name=teamA) (Team@3ec52163)" but was: "Team(id=1, name=teamA) (Team@100d071)" Expected :Team(id=1, name=teamA) Actual :Team(id=1, name=teamA) 위와 같습니다. 하나의 트랜잭션 안에서는 엔티티의 식별자가 같은 경우 ==비교를 하였을때 true라고 알고 있습니다. 따라서 저는 member1의 team(teamA)과 teamA를 isEqualTo로 비교하였을때 true가 나올것이라 예상하였지만 false가 나왔습니다. 에러 문구를 보면 객체 주소가 달라서 false가 나온것 같아 Team엔티티에 equalsAndHashCode 오버라이딩을 해주어도 false가 나옵니다. 물론 em.flush(), em.clear()를 하지 않고 영속성 컨텍스트에서 조회를 해오면 true가 나오는데 왜 영속성 컨텍스트를 초기화하고 DB에서 데이터를 가져오면 식별자가 같아도 같은 트랜잭션 내에서 ==비교가 true가 나오지 않는지 궁금합니다!

  • java
  • spring
  • spring-boot
  • jpa
부자가될거야 댓글 2 좋아요 0 조회수 371

리스트를 한번에 업데이트 하고자 할 때 아래와 같은 방법 말고 다른 게 있을까요?

미해결

예를 들어 특정 회원을 전부 탈퇴시키고 싶을 때의 수도 코드입니다. @Transactional void 회원탈퇴메소드 List<회원> 회원리스트 = findByxxx(); for (회원 : 회원리스트) { 회원.set활성여부("탈퇴"); } return; 이러면 이제 리턴 시점에 회원리스트 길이만큼 update 쿼리가 나가는 것을 봤는데요, 혹시 이거 말고 한꺼번에 업데이트 하는 방법이 있는지 궁금합니다. 아니면 그냥 이런 식으로 건별로 업데이트를 해야겠지요.

  • jpa
  • dirtychecking
  • list
박민호 댓글 1 좋아요 0 조회수 781

인텔리제이 테마?

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요. 강의 보면서 잘 따라가는 중인데요 인텔리제이 화면 모습이 강사님 화면이랑 좀 다른데 혹시 테마가 달라서 그런 걸까요? 강사님 화면 제 화면 아 그리고 강사님 화면 보면 "/add" 앞에 지구 모양이 생겨있는데 저는 이런게 안생겨요.. 이건 뭔가 설정을 해줘야하는건가요? 그리고 지구 모양이 있는게 무슨 의미인가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
alice 댓글 1 좋아요 1 조회수 385

인기 태그

인프런 TOP Writers

주간 인기글