inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

플러시와 persist()에 대해 질문 있습니다.

해결됨

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

플러시가 발생하여 쓰기 지연 저장소에 쌓여있던 쿼리들이 DB에 보내지게 되면 쓰기 지연 저장소에 쌓여있던 쿼리들은 삭제되나요 아니면 그대로 남아있나요? pk 생성 전략이 identity일 경우 persist()할때 쓰기 지연 저장소로 가는게 아니라 DB로 바로 보내지고 id 값을 얻어온다고 이해 했습니다. 그러면 persist()할때 생긴 insert into 쿼리가 DB로 보내지는데 이때 커밋하기전이라 DB에는 반영이 안되는건가요? DB 내부에서 버퍼? 같은 곳에서 보관했다가 커밋했을때 insert into 쿼리가 작동되는건지 궁금합니다.

  • java
  • jpa
감바스 댓글 1 좋아요 0 조회수 119

C언어에서의 정적 변수 vs JAVA에서의 정적 변수

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

질문 그대로입니다. 약간 쓰이는 개념 자체가 다른거 같아서 질문드립니다.

  • java
  • c
  • 정보처리기사
hattman 댓글 1 좋아요 0 조회수 244

14강. 유저 업데이트 API, 삭제 API 개발과 테스트 수정하기 안됨

미해결

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

코드대로 글을 잘 작성하고 POST,GET,DELETE도 전부 잘 동작하고 db에서도 확인이 되는데, 수정하기만 동작하지 않습니다..어떻게 해야할까요.. 수정하기 버튼을 누를시 아무런 화면의 변화가 없습니다.

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
hsk7953 댓글 2 좋아요 0 조회수 206

em.clear 후 프록시 초기화 문제

미해결

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

안녕하세요 :) Member refMember = em.getReference(Member.class, member.getId()); em.clear() refMember.getName(); 이때 LazyInitializationException이 일어나는 것에 대해 질문드립니다. 프록시 객체 refMember는 getName()을 호출할 때 최초로 단 한번 초기화되는 것으로 이해했습니다. 그렇다면 이전에 em.clear()로 영속성 컨텍스트를 초기화하여도, refMember.getName() 시점에 다시 DB에서 member 엔티티를 찾아 영속성 컨텍스트에 올리면 되지 않나요? refMember는 그 엔티티를 target으로 하고요. 왜 예외가 일어나는 것인지 궁금합니다!

  • java
  • jpa
김지호 댓글 1 좋아요 0 조회수 230

14분쯤에 검증로직 정상로직 김영한 선생님 말씀대로 하시면

미해결

김영한의 실전 자바 - 중급 1편

개발자가 까먹거나 상상하지 못한 오류가 발생할 때 오류가 안 뜨고 바로 정상로직으로 진행되서 문제가 일어날 가능성이 크지 않나요?? if else로 하면 해당 조건 정상로직이 아니면 오류라서 문제가 덜 발생하지 않을까요?? 그거보다 가독성이 중요하거나 제가 생각 못 하는 다른 이유가 있을까요?

  • java
  • 객체지향
댓글 1 좋아요 0 조회수 185

실전예제 따라쳐야 하나요?

미해결

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

실전 예제 부분 따라쳐야 하나요? 다른 강의처럼 소스코드 첨부파일도 없고 pdf파일에도 소스코드도 없고 따라치라는 말도 없고 그래서 해야하는건지 그냥 눈으로 보기만하라는건지 모르겠네요

  • java
  • jpa
jwhong1515 댓글 1 좋아요 0 조회수 149

querydsl 2개의 파일에서 같은 조건을 사용해야 할 경우

미해결

실전! Querydsl

강사님 안녕하세요. 좋은 강의 잘 들었습니다. querydsl의 정점 중 하나로 where 조건문을 분리하고 재사용한다고 했는데, 예를 들어 UserRepository, StudyRepository라는 2개의 querydsl을 사용하는 repository가 있다 했을 때, 각각의 respository 에서 조회를 할 때 동일한 조건을 사용해야 할 경우가 있습니다. UserRepository.java public User getUser(Long UserId) { return selectForm(user) .where(userId); } private BooleanExpression eqUser(Long userId) { return user.userId.eq(userId); } StudyRepository.java public User getUser(Long UserId) { select(study) .from(study.user, user) .join(study.user) .where(user.userId.eq(UserId)); } private BooleanExpression eqUser(Long userId) { return user.userId.eq(userId); } 이렇게 .where(user.userId.eq(1L)) 가 2개의 파일에서 반복되는 경우 각각의 파일에 메소드로 사용하는게 좋을까요? 아니면 다음처럼 공통 유틸 파일을 만들어서 공통으로 사용하는게 좋을까요? QueryUtils.java public static BooleanExpression eqUser(Long userId) { return user.userId.eq(userId); } 실무에서는 어떻게 사용 할까요? 이런 경우가 빈번해서 질문 드립니다.

  • java
  • jpa
  • querydsl
토니야 댓글 1 좋아요 0 조회수 204

MemberRepository { 질문이요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 해당 부분에서 오류 발생되는데 왜 그런 걸까요 public class MemoryMemberRepository implements MemberRepository { 이부분에 빨간줄이 있습니다. package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; /** * 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려 */ public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findByID(long id) { return Optional.ofNullable(store.get(id)); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } public void clearStore() { store.clear(); } }

  • java
  • spring
  • mvc
  • spring-boot
장진웅 댓글 2 좋아요 0 조회수 353

섹션3 질문 있습니다

미해결

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

안녕하세요! 섹션3 마지막 부분쯤 나온 @Component 어노테이션에 대해 질문이 있습니다! 이 어노테이션은 다음과 같은 경우에 사용된다고 하셨는데요! 컨트롤러, 서지스, 리포지토리가 모두 아니고, 개발자가 직접 작성한 클래스를 스프링 빈으로 등록할 때 사용된다. 제가 궁금한 것은 Service 나 리포지토리 모두 우리가 직접 작성한 클래스 아닌가요?? 그러면 컴포넌트 어노테이션 아닌가요?? 답변해주시면 감사하겠습니다

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

교재 내용중에 질문 있습니다.

해결됨

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

교재 내용중에 아래와 같은 내용이 있습니다. "데이터가 변해도 식별자로 지속해서 추적 가능 회원 엔티티의 키나 나이값을 변경해도 식별자로 인식가능" 여기서 궁금한 부분이 회원 엔티티의 키가 식별자라고 생각하는데 여기서 키가 바뀌게 되면 식별자도 바뀌게 되어 추적이 불가능하지 않나요?

  • java
  • jpa
감바스 댓글 1 좋아요 0 조회수 133

join과 join feth 차이점

미해결

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

public List<Order> findSearchOrders(OrderSearch orderSearch){ return em.createQuery("select o from Order o join o.member m" + " where o.orderStatus = :status" + " and m.name like :name", Order.class) .setParameter("status", orderSearch.getOrderStatus() ) .setParameter("name", orderSearch.getMemberName()) .setMaxResults(1000) .getResultList(); } public List<OrderQueryDto> findQueryOrder() { List<OrderQueryDto> result = findAllOrder(); for (OrderQueryDto order : result) { List<OrderItemQueryDto> orderItems = findOrderItem(order.getId()); order.setOrderItems(orderItems); } return result; } public List<OrderItemQueryDto> findOrderItem(Long orderId) { String query = "select new jpabook.jpashop.repository.order.query." + " OrderItemQueryDto(oi.order.id, oi.orderPrice, oi.count )" + " from OrderItem oi " + " join oi.item i" + " where oi.order.id = :orderId"; return em.createQuery(query,OrderItemQueryDto.class) .setParameter("orderId", orderId) .getResultList(); } public List<OrderQueryDto> findAllOrder(){ String query = "select new jpabook.jpashop.repository.order.query." + " OrderQueryDto(o.id, m.name, d.address, o.orderStatus, o.orderDate) " + " from Order o " + " join o.member m" + " join o.delivery d"; return em.createQuery(query, OrderQueryDto.class).getResultList(); } 첫번째 코드 블럭은 order를 select 할때 member를 join 하면 member를 프록시 객체로 가져오는걸로 알고 있습니다. join fetch 를 하게 되면 바로 객체로 가지고 오는걸로 알고 있습니다. 하지만, 두번째 코드 블럭은 그냥 join을 했는데, 왜 프록시 객체에서 객체로 전환? 프록시 객체가 객체를 가르키는 행위를 하지않고도 dto에 바로 삽입이 가능한가요? ex) order.getName() , member.getName()

  • java
  • spring
  • spring-boot
  • jpa
김동훈 댓글 1 좋아요 0 조회수 228

CascadeType.ALL, CascadeType.REMOVE 옵션에 대해 질문 있습니다.

해결됨

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

부모를 삭제 시에는 CascadeType.ALL과 CascadeType.REMOVE가 똑같이 동작한다고 이해해서 이 둘에 대해 동시에 질문 하겠습니다. 만약에 하나의 게시글이 있고 이 게시글에 달려있는 첨부파일들이 100개 라고 하겠습니다. 이때 CascadeType.ALL 옵션을 사용하면 게시글 삭제 시 100개의 첨부파일들도 삭제 된다고 이해를 했습니다. 궁굼한 부분은 게시글 삭제 시 게시글에 달린 100개의 첨부파일에 대해 delete 쿼리가 따로 따로 보내지는건지 아니면 jpa가 최적화 해서 한번에 보내는건지 궁금합니다. 만약에 1번 질문에서 Jpa가 알아서 최적화해서 delete 쿼리를 DB로 보낸다고 가정하겠습니다. 그러면 100개의 첨부파일에 대한 Id 값을 다 뽑아서 이 값들을 delete 쿼리의 where절의 in에 넣어서 삭제 쿼리를 보내는것 대신에 Jpa가 최적화 해서 delete 쿼리를 보내는 방식이 더 좋은지 궁금합니다.

  • java
  • jpa
감바스 댓글 1 좋아요 0 조회수 216

26강 오류입니다 !

미해결

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

Execution failed for task ':LibraryAppApplication.main()'. > Process 'command 'C:/Program Files/Java/jdk-11/bin/java.exe'' finished with non-zero exit value 1 이것은 어떤 에러일까요 ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
쿵야 댓글 2 좋아요 0 조회수 131

@MappedSuperclass 공통속성 자동화

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Mapped Superclass- 매핑 정보 상속 6:44 부분에 말씀하신 작성자, 작성일, 수정자, 수정일을 자동화하는 jpa 기능이 있다고 말씀 해주셨는데 말씀 하신 건만 듣고는 이해가 안되서요 자동화 시키는 걸 쉽게 할 수 있는 방법이 있는 건가요? 바로 적용해보고 싶어서요

  • java
  • jpa
지루한 갈매기 댓글 2 좋아요 0 조회수 227

인텔리제이 콘솔창 한글입력 오류

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 인텔리제이 콘솔창에서 한글입력이 안돼서 그런데 혹시 해결방법 아시는분 있을까요?

  • java
  • 객체지향
한상희 댓글 6 좋아요 1 조회수 2959

비즈니스로직 처리 위치

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 지금까지 컨트롤러단에서 로직을 다 작성하셨는데요 원래 비즈니스로직 같은 경우는 서비스 단에서 처리를 해야 되지 않나 생각이 들어 질문합니다. 간단한 예시여서 컨트롤러 단에서 로직을 처리하고 dto를 이너클래스로 만드신 건가요? 비즈니스로직 처리 위치를 컨트롤러에서 해야될지 서비스단에서 해야될지 기준이 잘안서서 질문드립니다.~~

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

kafka Producer 실행 중 에러 시 redis count 정합성 이슈

미해결

실습으로 배우는 선착순 이벤트 시스템

안녕하세요! 섹션3 Producer 관련 강의를 보다가 궁금한 점이 생겼습니다. redis를 활용해 count 증가 후 선착순에 들어 kafka 로 이벤트를 발행하는 도중 네트워크 오류 등의 문제가 발생한다면 count 값만 늘어나고 쿠폰 생성이 안될 것 같습니다. 이 경우, 실무에서는 어떤 식으로 처리하시나요?? (redis쿼리 -> kafka 이벤트 발행)의 원자성을 보장해줘야 될 것 같다는 생각이 들었습니다. kafka의 이벤트 발행 부분을 try...catch로 감싸서 redis의 count를 감소시키는 로직을 작성하는게 가장 간단해보입니다. 그런데, 해당 롤백 로직에서 에러가 발생할수도 있기 때문에 카운트 증가 -> 이벤트 발행의 원자성을 보장하기 어려울 것 같습니다. 추가) kafka 이벤트 발행 실패 시 userId, eventId, count 값을 로그로 남겨 추후 kafka 이벤트를 재발행하는 방법도 있을 것 같습니다. 이때, 재실행은 로그에서 데이터를 추출 개발자가 수동 혹은 배치 등의 프로그램을 작성해 정합성을 맞추는걸까요?? 실무에서 어떤 식으로 실패한 요청을 다시 성공시키는지 궁금합니다

  • java
  • docker
  • spring-boot
  • kafka
  • redis
차영호 댓글 2 좋아요 0 조회수 422

MemberServiceIntegrationTest 에서 Service대신 Repository로 테스트하는 이유가 궁금해요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

6강 스프링 DB 접근 기술.pdf 내용을 보면 MemberServiceIntegrationTest 에서는 MemberService로 join하고 Id를 찾는 내용은 Repository 를 통해 수행하는데요. service에 대한 테스트 코드기때문에 이전에 작성한 MemberServiceTest에서처럼 Service로 일관되게 사용하는게 맞지않나요? MemberServiceIntegrationTest .java //When Long saveId = memberService. join (member); //Then Member findMember = memberRepository. findById (saveId). get (); assertEquals (member. getName (), findMember. getName ()); MemberServiceTest.java Long saveId = memberService.join(member); Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName());

  • java
  • spring
  • mvc
  • spring-boot
인영 댓글 1 좋아요 0 조회수 156

모든 스레드가 wait 상태

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

강의 4분대 그림에서 c0가 queue 가 비어서 wait 상태로 들어가면 notify를 호출하지 않기때문에 모든 스레드가 wait 상태에 들어가지 않나요? while문을 벗어나야 notify를 호출할 수 있잖아요. 어떻게 되는지 궁금합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
tjrans303 댓글 1 좋아요 0 조회수 235

'회원 이름 필수 입력' 기능

해결됨

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

안녕하세요. 웹계층 회원등록 부분 강의 따라서 코딩하고, HTML 파일도 복붙했는데 홈페이지에 이름을 입력 안 해도 '회원 이름을 필수입니다' 메세지가 뜨는 반응이 없이 redirect됩니다. h2에는 이름이 비어 있는 상태로 데이터가 들어와 있습니다. @NotEmpty가 왜 작동하지 않는지 질문드립니다. https://drive.google.com/file/d/1jvu4wiWz3GwoZ3YazNDJWsFTOxgSqt-M/view?usp=sharing

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

인기 태그

인프런 TOP Writers

주간 인기글