inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

JPA 특징 중 자동 업데이트 관련

미해결

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

주문 서비스 개발 부분 강의를 듣다가 궁금한 점이 있어 질문드립니다. 주문 취소(OrderService.cancelOrder) 부분에서order.cancel() 만 작성하면 JPA 특징으로 인해, 데이터 업데이트 관련 쿼리 로직 없이 자동으로 업데이트 된다고 하셨는데요. 주문 생성(OrderService.order)의 EntityManager 가 사용된 orderRepository.save (order);  와 혼동이 와서 질문 남깁니다. 주문 취소 order.cancel() 메서드를 타면서 엔티티의 값(status, count 등) 변경 내역이 자동으로 업데이트 되는 것이라고 하면, 주문 생성도 Order.createOrder(member, delivery, orderItem); 를 타면서 엔티티의 값들을 설정하기 때문에 orderRepository.save (order); 를 사용하지 않아도 되는게 아닌가 라는 생각이 듭니다. 제가 JPA 를 잘 몰라서 혼란이 오는 것 같은데.. 쿼리는 직접 작성하지 않아도 업데이트/저장/삭제 등 DB 조작이 일어나려면 EntityManager 를 통해야 된다고 생각하고 있었습니다. 주문 취소는 EntityManager 없이 업데이트 되고, 주문 생성은 EntityManager의 persist() 를 사용해서 저장하는 것 이 2가지 차이점에 대해서 설명 부탁드립니다! 감사합니다 :)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
빈빈 댓글 1 좋아요 2 조회수 510

sudo yum install -y zsh 명령어 입력 시 다운로드가 안되고 Timeout이 발생합니다.

미해결

처음 시작하는 Infrastructure as Code: AWS & 테라폼

안녕하세요 강사님. 강의 잘 듣고 있습니다!! 다름이 아니라 sudo yum install -y zsh 명령어를 통해 zsh를 설치하려고 했을 때, 설치가 지연되고 아무것도 설치가 되지 않는 상황이 발생합니다. 그래서 Timeout이 발생하는데요. 어떻게 해결해야 할지 여쭤보고 싶습니다. 감사합니다. [ec2-user@ip- ~]$ sudo yum install -y zsh ^CAmazon Linux 2023 re [ === ] --- B/s | 0 B --:-- ETAmazon Linux 2023 repository 0.0 B/s | 0 B 02:11 Errors during downloading metadata for repository 'amazonlinux': - Curl error (28): Timeout was reached for https://al2023-repos-ap-northeast-2-de612dc2.s3.dualstack.ap-northeast-2.amazonaws.com/core/mirrors/2023.0.20230614/x86_64/mirror.list [Failed to connect to al2023-repos-ap-northeast-2-de612dc2.s3.dualstack.ap-northeast-2.amazonaws.com port 443 after 30000 ms: Timeout was reached]

  • aws
  • Terraform
감귤 댓글 2 좋아요 0 조회수 1139

실전 문제 1-22번 질문

해결됨

AWS Certified Solutions Architect - Associate 자격증 준비하기

실전 문제 1-22번에서 최대 성능을 위한 것은 Amazon EC2 인스턴스 스토어가 아니라 Amazon EBS(io2) 볼륨 가 아닌가요? Amazon EBS보다 Amazon EC2가 적합한지 이해가 잘 안됩니다. 추가 설명 부탁드려도 될까요..?

  • 네트워크
  • aws
youjeongpark 댓글 1 좋아요 0 조회수 316

UpdateView - 포스트 수정 페이지 만들기 에서 질문이 있습니다.

해결됨

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

26:27초 쯤에 tests.py의 test_update_post() 함수에서 카테고리의 pk를 적어줘야하는지 이해가 잘 되지 않습니다. 앞서 setUp() 함수에서 post_001과 post_002를 생성할 때는 category를 입력할 때 pk 는 사용하지 않고 진행했습니다. 하지만 왜 포스트 수정을 핱때는 category를 입력할 때 pk 를 사용해야 하는지 잘 모르겠습니다.

  • HTML/CSS
  • javascript
  • python
  • django
  • bootstrap
  • aws
  • docker
  • tdd
wodnr0710 댓글 1 좋아요 0 조회수 420

19:04 초 where in 쿼리 대신 where array_conatins 쿼리가 나왔습니다. (스프링 부트 3.1)

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 스프링 부트 3.1 로 강의를 따라가고 있습니다. default_batch_fetch_size:10 을 설정해서 나가는 쿼리가 줄어드는 것을 확인했습니다만, 쿼리가 두 개가 아니고 총 세 개가 나왔습니다. 023-06-13T23:24:02.666+09:00 DEBUG 68750 --- [nio-8080-exec-5] org.hibernate.SQL : select o1_0.order_id, d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status, m1_0.memeber_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.memeber_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset ? rows fetch first ? rows only 2023-06-13T23:24:02.676+09:00 INFO 68750 --- [nio-8080-exec-5] p6spy : #1686666242676 | took 2ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/springbootjpa select o1_0.order_id,d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status,m1_0.memeber_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.memeber_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset ? rows fetch first ? rows only select o1_0.order_id,d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status,m1_0.memeber_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.memeber_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset 0 rows fetch first 100 rows only; 2023-06-13T23:24:02.681+09:00 DEBUG 68750 --- [nio-8080-exec-5] org.hibernate.SQL : select o1_0.order_id, o1_0.order_item_id, o1_0.count, o1_0.item_id, o1_0.order_price from order_item o1_0 where array_contains(?,o1_0.order_id) 2023-06-13T23:24:02.689+09:00 INFO 68750 --- [nio-8080-exec-5] p6spy : #1686666242689 | took 0ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/springbootjpa select o1_0.order_id,o1_0.order_item_id,o1_0.count,o1_0.item_id,o1_0.order_price from order_item o1_0 where array_contains(?,o1_0.order_id) select o1_0.order_id,o1_0.order_item_id,o1_0.count,o1_0.item_id,o1_0.order_price from order_item o1_0 where array_contains('ar2: ARRAY [CAST(1 AS BIGINT), CAST(2 AS BIGINT), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL]',o1_0.order_id); 2023-06-13T23:24:02.690+09:00 DEBUG 68750 --- [nio-8080-exec-5] org.hibernate.SQL : select i1_0.item_id, i1_0.dtype, i1_0.category_item_id, i1_0.name, i1_0.price, i1_0.stock_quantity, i1_0.author, i1_0.isbn, i1_0.artist, i1_0.etc from item i1_0 where array_contains(?,i1_0.item_id) 2023-06-13T23:24:02.691+09:00 INFO 68750 --- [nio-8080-exec-5] p6spy : #1686666242691 | took 0ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/springbootjpa select i1_0.item_id,i1_0.dtype,i1_0.category_item_id,i1_0.name,i1_0.price,i1_0.stock_quantity,i1_0.author,i1_0.isbn,i1_0.artist,i1_0.etc from item i1_0 where array_contains(?,i1_0.item_id) select i1_0.item_id,i1_0.dtype,i1_0.category_item_id,i1_0.name,i1_0.price,i1_0.stock_quantity,i1_0.author,i1_0.isbn,i1_0.artist,i1_0.etc from item i1_0 where array_contains('ar3: ARRAY [CAST(1 AS BIGINT), CAST(2 AS BIGINT), CAST(3 AS BIGINT), CAST(4 AS BIGINT), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL]',i1_0.item_id); 수강 중에 제가 따라 작성한 코드를 스프링부트 2.4.1에 그대로 옮겨보니 강의 내용대로 where in 쿼리가 나오는 것을 확인했습니다. 스프링부트 버전 차이에서 나오는 쿼리가 달라진 것 같은데, 제 생각이 맞을까요? 답변 확인 : 빠르게 답변해주셔서 감사합니다!! 덕분에 array_contains 로 최적화된 이유를 쉽게 이해할 수 있었습니다. (Hibernate에서 최적화를 했었었군요!) 아 그리고 강의 내용에서 쿼리 세 개 나온다는 것을 확인했습니다(잘못 본 것에 대해 질문글에서 수정을 해놨어야 했는데 빼놓지 않았었네요 ㅠㅠ) 다시 한번 상세한 답변 정말 감사드립니다.

  • java
  • spring
  • spring-boot
  • jpa
말랑한참깨 댓글 1 좋아요 1 조회수 1929

서로다른 라우팅 테이블에서 동일한 서브넷 연결

해결됨

CloudNet@ - AWS 네트워킹 입문

안녕하세요. RT-1 에 Subnet1, Subnet2, Subnet3, Subnet4 이 설정이 되었었고, RT-2를 생성한 후에 Subnet3를 설정하니, RT-1의 서브넷 설정에서 Subnet3이 빠지게 되더라고요. 모르고 있다가 장애가 있었는데, 다시 생각해보면 Routing Table은 VPC 자원 내부에서 네트워크 흐름 방향을 설정해주는것인데, 두개의 Routing Table이 동일한 서브넷을 설정하면 네트워크 흐름에 충돌이 발생할것 같다는 추측을 하게 되었습니다. 제가 생각한게 틀린걸까요? 저희팀에는 아시는분이 없어서 여기에 질문을 드리네요.

  • 네트워크
  • aws
crocus 댓글 1 좋아요 0 조회수 544

새로운 강의 문의

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

올해 새로운 AWS 자격증 강의 언제쯤 수강할 수 있을지 알고 싶습니다.

  • aws
  • 자격증
  • 새강의
  • 새로운강의
actorwant8523 댓글 1 좋아요 0 조회수 679

24강 듣고있는데

미해결

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

맥북 인텔리제이 커뮤쓰고있는 사람입니다! @GeneratedValue 하고뭘해도 빨간줄이 안뜨는데 정상일까요?? private long id = null; 해줘도 빨간줄이안뜨네요 ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
title.jjk 댓글 3 좋아요 1 조회수 429

혹시 join 자체도 특정 조건에 따라 동적으로 작용되게 할 수 있나요?

미해결

실전! Querydsl

안녕하세요. where 조건을 동적으로 생성해주는 부분에 대해서는 충분히 이해가 되었습니다. 그런데 혹시 특정 condition 값에 따라 join을 해줘야하는 테이블이 다른 경우라면 어떻게 처리되어야 할지 모르겠어서 글을 남기게 되었습니다. condition조건에 teamName이 있을 때만 team을 조인해주고 싶은데 join 구문을 동적으로 처리할 수 있는 좋은 방법이 어떤 것인지 질문드립니다. 😭 감사합니다.

  • java
  • jpa
chaerin920 댓글 1 좋아요 0 조회수 1120

컴포즈 안되는분들 여기 url 참고하세요

미해결

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

https://wisdom-cs.tistory.com/m/32 광고는 아니고... 제가 그냥 뒤적이다가 안되서 찾은건데 여기 말대로 하니까 되네요. 결국 보면 해당 강의 참고해서 정리한거같은데 도움이 되셧으면 좋겟네요

  • aws
  • docker
  • github
  • ci/cd
  • travis-ci
  • 데이터-엔지니어링
댓글 1 좋아요 1 조회수 421

terrform.tfvars 의 모범사례에 관하여

미해결

처음 시작하는 Infrastructure as Code: AWS & 테라폼

https://www.terraform-best-practices.com/code-structure terraform best pratices 문서를 살펴보던 도중 아래와 같은 문구를 보았습니다. terraform.tfvars should not be used anywhere except composition . 컴포지션을 제외한 곳에서 tfvars를 사용하지 말라고 했는데, 이 부분은 어떻게 해석을 해야하는 건가요?? 강의 해주시는 부분은 컴포지션에 해당하기 때문에 괜찮은건가요? 컴포지션이 아닌 상황에는 어떤 상황이 있을까요?

  • aws
  • Terraform
corp 댓글 1 좋아요 0 조회수 516

안녕하세요 강사님 혹시 리뉴얼 일정이...?

미해결

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

안녕하세요 강사님 혹시 리뉴얼 일정이...? CI 도커강의 리뉴얼 일정이 아직 멀었겠죠???

  • aws
  • docker
  • github
  • ci/cd
  • travis-ci
  • 데이터-엔지니어링
BH J 댓글 1 좋아요 0 조회수 382

update쿼리로 인한 영속성컨텍스트 불일치

해결됨

실전! Querydsl

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 수정, 삭제 벌크 연산의 6:20 부분에서 update쿼리로 인한 영속성컨텍스트 문제를 설명해주셨는데요. 전 강의에서 em.flush()실행되는 조건들을 설명해주실 때, 직접 호출 시 트랜잭션 커밋 시 JPQL쿼리 실행 시 em.flush()가 실행된다고 설명해주신 것으로 기억하고 있습니다. querydsl도 결국 JPQL기반으로 작동된다고 알고 있는데, querydsl을 통한 select쿼리 실행을 하면 자동으로 em.flush()가 실행되지 않고, 직접 해주어야 하는 메커니즘이 궁금합니다!

  • java
  • jpa
Dompoo 댓글 1 좋아요 1 조회수 526

서브넷 추가 가용영역 선택 부분이 영상과 달라요

해결됨

스스로 구축하는 AWS 클라우드 인프라 - 기본편

약 5분 즈음에, 서브넷 추가 부분이 있는데요. 가용영역이 us-east-2a,b,c 이렇게 나옵니다. ap-northeast 가 나오지 않는데, 혹시 제가 뭔가를 놓친걸까요? 아니면 aws 자체에서 메뉴가 달라진걸까요? 그리고 서브넷 추가 이후에, DB 생성 부분에서도 영상과, 현재 AWS와는 많이 다른것 같습니다. (Burstable Clases 옵션도 없습니다.) 어떤걸 선택해야 될지 판단이 안서서, 이부분에 대한 가이드도 주시면 감사하겠습니다 !

  • aws
  • 서버리스
김의중 댓글 1 좋아요 0 조회수 405

404 오류 질문입니다.

미해결

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

안녕하세요 5강의 GET 부분 진행하는데 404 오류가 계속 떠서 문의드립니다. 서버도 정상적으로 실행되고 타 프로젝트에서는 정상적으로 localhost :8080이 동작하는데 이 프로젝트만 계속 404 오류가 발생하네요.. Java 11 사용중이고 Gradle Reload 해봐도 해결이 안돼 질문글 남깁니다..

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
김승원 댓글 2 좋아요 1 조회수 640

build.gradle 빌드 실패 에러(JDK 17.0.6, Spring boot 3.0.7)

미해결

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

안녕하세요, build.gradle의 빌드 실패가 나서 문의드립니다. JDK 버전은 다음과 같이 17.0.6입니다. 그리고 인텔리제이 설정은 다음과 같습니다. java 컴파일러 설정 2. 빌드 도구 설정 3. 프로젝트 설정 마지막으로 처음 프로젝트를 다운로드 받았던 설정은 다음과 같습니다.(spring boot 3.0.7 버전 사용) 처음 build.gradle을 실행할 때부터 에러 로그 하나도 없이 그냥 빌드 실패했다는 에러가 뜹니다. 컴퓨터를 여러번 껐다가 켜봐도 여전히 같은 에러가 뜹니다. 인텔리제이와 스프링이 완전 처음이라서 이 에러를 어떻게 해결해야 하는지 모르겠습니다. 커뮤니티의 다른 글들을 참고해봐도 딱히 도움이 되지는 않는 것 같습니다. 도와주시면 너무 감사하겠습니다.

  • java
  • spring
  • mvc
  • spring-boot
spring study 댓글 4 좋아요 0 조회수 6254

안녕하세요! 수강 기간 연장 부탁드려도 될까요?

해결됨

AWS Certified Advanced Networking - Specialty 자격증 준비하기

안녕하세요! 좋은 강의 많이 배우고 있습니다! 업무상 진도가 느려서 아직 수강을 완료하지 못했네요 ㅠㅠㅠ 혹시 수강 기간 연장 부탁드려도 될까요!? 감사합니다.

  • 네트워크
  • aws
박승우 댓글 1 좋아요 0 조회수 515

엔티티 매니저 프록시 역할

미해결

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

안녕하세요! 질문 좀 드리려고 합니다 엔티티 매니저 프록시는 프록시를 싱글톤으로 주입해서 동시성 문제를 해결하고 실제 엔티티 매니저 인스턴스를 ThreadLocal로 관리하는 역할 정도로 생각해도 괜찮을까요? 추가적으로 실제 엔티티 매니저는 @Transactional을 사용하면 JpaTransactionManager에서 생성이 되는데 @Transactional을 사용하지 않으면 처음 엔티티 매니저를 사용할 때 생성이 되나요?

  • java
  • jpa
code-tree 댓글 1 좋아요 0 조회수 442

1012 - 반례를 모르겠습니다. JAVA

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 큰돌님 강의 잘 보고있습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int[][] board; static boolean[][] visited; static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; static int yLen; static int xLen; static int cnt; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); while (n-- > 0) { int[] given = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); if (given[2] == 1) { sb.append(1).append(System.lineSeparator()); continue; } board = new int[given[0]][given[1]]; visited = new boolean[given[0]][given[1]]; yLen = given[0]; xLen = given[1]; for (int i = 0; i < given[2]; i++) { String[] numStr = br.readLine().split(" "); int y = Integer.parseInt(numStr[0]); int x = Integer.parseInt(numStr[1]); board[y][x] = 1; } for (int i = 0; i < yLen; i++) { for (int j = 0; j < xLen; j++) { if (!visited[i][j] && board[i][j] == 1) { dfs(i, j); cnt++; } } } sb.append(cnt).append(System.lineSeparator()); } System.out.print(sb.substring(0, sb.length() - 1)); } public static void dfs(int y, int x) { visited[y][x] = true; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= yLen || nx < 0 || nx >= xLen) continue; if (visited[ny][nx] || board[ny][nx] == 0) continue; dfs(ny, nx); } } } 위 코드를 실행하면 12%, ArrayIndexOutOfBounds가 발생하는데 어떤 부분인지 알 수 있을까요?

  • c++
  • 코딩-테스트
  • java
최찬호 댓글 2 좋아요 0 조회수 322

인기 태그

인프런 TOP Writers

주간 인기글