쿼리를 데이터베이스에 전송
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
플러시를 하면 쿼리를 db에 전송하는데 단순히 전송하는것만으로는 db에 반영이 안되나요? 커밋을 한 후에 반영이 되는건가요?
- java
- jpa
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
플러시를 하면 쿼리를 db에 전송하는데 단순히 전송하는것만으로는 db에 반영이 안되나요? 커밋을 한 후에 반영이 되는건가요?
미해결
김영한의 실전 자바 - 기본편
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 저와 비슷한 질문을 남긴 사람들의 글을 읽어보았는데, 명확하게 이해가 가질 않아서 질문을 남깁니다. 부모 변수가 자식 인스턴스를 참조하는 상황 Parent poly = new Child(); 이 상황은 Parent를 상속받은 Child라는 객체를 생성하여, 현재 Parent,Child 두 객체가 생성된 상황이며, poly를 부모 변수로 선언하였습니다. 부모는 자식에 대해 알 수 없다라는 논리에 따라 Child라는 객체가 있어도 부모 Parent는 Child에 선언된 메서드와 필드를 모른다는 것이 영한님의 설명인 것 같습니다. 그런데, 오버라이딩을 하게 되더라도 제 생각에는 여전히, Parent는 Child의 메서드와 필드를 모르는 상황은 여전한데, 어떻게 Parent가 Child 메서드가 오버라이딩을 한 상황을 알고, 오버라이딩된 Child 메서드가 우선권을 갖는지 잘 모르겠습니다. 이는 '부모는 자식에 대해 알 수 없다'라는 논리와 맞지 않는 것 같아서 부가적인 설명을 원합니다.
해결됨
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 혹시 다대다의 경우는 중간테이블을 두어 푸는 것이 실무에서 필수적이라 했는데, 일대 다의 경우에도 비즈니스 로직 분리 : 중간 테이블을 통해 비즈니스 로직(보상 분배, 순위 계산 등)을 별도로 관리함으로써, 엔티티 간의 복잡성을 줄입니다. 데이터의 독립적 관리 : 과거 랭킹 기록, 보상 내역 등 변경하지 않아야 할 데이터를 독립적으로 저장하고 관리할 수 있습니다. 이런 이유로 중간테이블을 두기도 하나요? 예를 들어 사용자와 랭크 관계가 일대 다인 상황에서(사용자는 한 랭크만 참가 가능) 과거 정보들을 저장하기 위해 중간테이블을 두고 거기에 전적 같은 정보를 저장하고자 하는데 이런 경우 일대 다임에도 중간테이블을 놔두어 관리해도 되나요?
해결됨
자바 ORM 표준 JPA 프로그래밍 - 기본편
Entity들의 id를 따로 Column으로 name을 지정해주지 않아도 괜찮나요?? 연관관계 매핑할 때 예를 들어 MEMBER랑 TEAM을 매핑하면 MEMBER의 FK 이름은 TEAM_ID인데 TEAM의 PK는 ID라서 TEAM의 ID를 TEAM_ID로 바꾸지 않아도 괜찮은건가요??
해결됨
자바 ORM 표준 JPA 프로그래밍 - 기본편
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 이전에 들었던 실전! JPA1편에서는 https://start.spring.io/ 이곳에서 다운로드 하고 설치했는데 이번 강의에선 왜 따로 소스코드를 주시고 시작했는지 궁금합니다! 단순하게 springBoot를 사용하지 않아서인가요? 아니면 초기 설정이 힘들어서인가요?
미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제 사이트 제출한 결과 보는 곳에서 검색 Search Author 칸이 있던데 어떻게 검색하는건가요? 제출했던 결과 중 특정 문제를 검색할 수 있는 방법이 없을까요? 감사합니다.
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
package hellojpa; public enum RoleType { USER , ADMIN, GUEST , CEO==추가한 데이터(테이블 생성 후) } /////// try { Member member1 = new Member(); member1.setId(5L); member1.setUsername("하하"); member1.setRoleType(RoleType.CEO); //////////// <property name="hibernate.hbm2ddl.auto" value="update" /> 이러한설정의 상태입니다 영한님도 auto가 update로 되어있는것 같은데 저는 ENUM의 컬럼을 추가하고 적용해서 DB를 생성하려하면 오류가발생합니다
해결됨
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강의에서 volatile을 적용하지 않은 예제에서 MyTask flag값을 false로 바꾸고 count값을 출력했는데 이때 MyTask Thread의 캐시메모리에있는 값을 메인메모리로 업데이트하고, Main Thread는 메인메모리에있는 count값을 캐시메모리에 동기화해서 갖고온걸까요? 출력할 때 컨텍스트 스위칭이 일어났다고 가정하면, 1_100_000_000이 출력될거라 생각했는데 궁금해서 질문드립니다!
해결됨
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 저는 memberForm을 생성해서 뷰로 전송 -> 뷰에서 memberForm을 setter로 채움 -> 채운 memberForm을 post요청에 함께 전송 으로 이해했습니다. 근데 create에서 받은 memberForm하고 createForm에서 받은 memberForm하고 다른 객체로 나옵니다. 어디 부분이 잘못됐는지 알고싶습니다.
해결됨
한 입 크기로 잘라먹는 Next.js
npm run dev로 프로젝트 시작할 때 보면 하이드레이션 오류가 자주 뜨거든요. 페이지 이동했다가 다시 오면 에러가 사라지길래 그냥 강의 들었었는데. 빠트린 코드가 있는가 싶어서 새로 프로젝트를 새로 만들었거든요. 근데. 처음부터 같은 에러가 발생하네요!!!!!!!!!!!!!!!!!! 제 컴퓨터가 이상한건지.... 다른 분들은 에러가 안나는걸까요>??ㅜ_ㅜ 어떻게 했더니 에러가 났다. 이걸 말씀드려야 하는데ㅎㅎ 허허허..... 어디서 왜 에러가 났는지 감이 안오네요 < 에러 > Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used - A server/client branch if (typeof window !== 'undefined') . - Variable input such as Date.now() or Math.random() which changes each time it's called. - Date formatting in a user's locale which doesn't match the server. - External changing data without sending a snapshot of it along with the HTML. - Invalid HTML tag nesting. It can also happen if the client has a browser extension installed which messes with the HTML before React loaded. See more info here: https://nextjs.org/docs/messages/react-hydration-error 검색해보니까. 뭐 버전차이 이런것도 있는 것 같아서 제 의존성 버전을 봤는데.. 최신 버전으로 설치된건데. 음...이거 말고 next 15.0.3 react 19.0.0은 설치가 안되더라고영 ㅎㅎ.... 원인을 밝히기가 어렵네영. "dependencies": { "react": "19.0.0-rc-66855b96-20241106", "react-dom": "19.0.0-rc-66855b96-20241106", "next": "15.0.3" }, 혹시나 해서 강사님 패키지 봤는데 next가 15.0.0버전이더라고요 이거로 설치했더니 하이드레이션 에러는 안뜨네요!!! 험......... 버전 문ㅈㅔ였나봐요.. "dependencies": { "react": "19.0.0-rc-f994737d14-20240522", "react-dom": "19.0.0-rc-f994737d14-20240522", "next": "15.0.0-rc.0" }, 나름 해결한 것 같긴한데, 뭔가 찜찜해서 ㅎㅎ 버전 차이로도 저와 같은 에러가 발생할 수 있는건가요?? 버전을 바꿔서 install 했는데, 이 상태로 강의를 계속 들어도 되겠죠??? 주저리주저리... 고민의 글을 적어봤습니다ㅎㅎ
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
@GetMapping("/members") public Page<MemberNameOnlyView> findAll(Pageable pageable) { Page<MemberNameOnlyView> allNameOnlyView = memberRepository.findAllNameOnlyView(pageable); return allNameOnlyView; } 여기서 파라미터로 Pageable받아서 페이징처리해주는거 관려해서 공부하고싶은데 어디 강의에서나오나요?JPQ로 페이징처리말구요
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @Test public void 중복_회원_예외() throws Exception{ //given Member member1= new Member(); member1.setName("kim"); Member member2= new Member(); member2.setName("kim"); //when memberService.join(member1); //then assertThrows(IllegalStateException.class,()->{ memberService.join(member1); }); } 중복 회원 예외 테스트에서 Junit5에선 @Test(expected)를 지원하지 않는 것 같아 assertThrows를 사용하는 방식으로 변경해야한다고 하여 변경했는데 올바른 방법인지 궁금합니다. (변경한 방식으로 테스트 케이스는 통과는 하였습니다.)
해결됨
기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
안녕하세요 강의 잘 보고 있습니다. 다름이 아니라 클래스 로더 및 로딩 과정 16:00초에 질문이 있는데요. 링킹 준비 단계에서 "객체 인스턴스가 저장될 메모리 공간을 확보하고 0으로 초기화"라고 되어 있는데, 제가 알기로는 클래스 수준의 정적 필드가 기본값으로 초기화로 알고 있습니다. 객체 인스턴스는 객체가 생성 되었을 때 기본 값으로 초기화가 이뤄지고 생성자가 있을때 말씀처럼 초깃값이 다시 설정 되는걸로 알고 있는데요. 제가 잘못 이해 한걸까요.
해결됨
기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
안녕하세요 ㅎㅎ 좋은 강의 제공해주셔서 감사합니다. 추상 클래스와 인터페이스 사용 시점에 대해 궁금한 것이 있습니다. 제가 처음에 생각한 내용은 추상 클래스 : 부모 클래스와 자식 클래스가 공통으로 제공하는 내용(메서드) 도 존재하지만, 자식클래스 별로 다른 내용 을 제공할 때는 abstract 메서드를 사용하여 구현을 강제시킨다. 인터페이스 : 부모와 자식 간에 공통으로 가지는 내용(메서드 내용이 동일한) 이 없으므로, 상속받는 클래스가 반드시 메서드를 구현한다. 그런데 JAVA8부터 인터페이스에 default 메서드 가 추가되었더군요. 인터페이스에 default 메서드를 선언하면, 인터페이스를 상속받는 클래스에서 구현을 하지 않고도 사용할 수 있더라구요. interface Shape { final int SIZE = 5; void render(); default int getSize() { return SIZE; } } class Rectangle implements Shape { @Override public void render() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { buffer.append("*\t"); } buffer.append("\n"); } System.out.println(buffer); } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int input = sc.nextInt(); Shape shape; if (input == 0) { shape = new Rectangle(); } else { shape = new Triangle(); } shape.render(); System.out.println(shape.getSize()); } } 그렇다면 default 메서드가 추상 클래스의 일반 메서드(추상 클래스가 아닌)와 동일하게 작동하게 되는데 public abstract class Shape { public static final int SIZE = 5; public abstract void render(); public int getSize() { return SIZE; } } 추상 클래스와 인터페이스를 사용하는 시기(?)를 어떻게 구별해야할까요? 구글링을 해보니 인터페이스에 default 메서드가 추가된 이유가 추후에 인터페이스에 새로운 메서드를 추가했을 때, 해당 인터페이스를 상속하고 있는 클래스에서 오류가 발생하지 않기 위해서라고 하는데 그 오픈소스가 엄청 유명해져서 전 세계 사람들이 다 사용하고 있는데, 인터페이스에 새로운 메소드를 만들어야 하는 상황이 발생했다. 자칫 잘못하면 내가 만든 오픈소스를 사용한 사람들은 전부 오류가 발생하고 수정을 해야 하는 일이 발생할 수도 있다. 이럴 때 사용하는 것이 바로 default 메소드다. 결론적으로 내용을 정리하게 되면 추상 클래스에서 새로운 메서드를 추가해야 한다면 abstract를 추가하지 않는다. 인터페이스에서 새로운 메서드를 추가해야 한다면 default 메서드를 사용한다. default 메서드가 추가 되면서 추상 클래스와 인터페이스를 언제 사용해야 하는지 잘 모르겠습니다...! 감사합니다!
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. <form th:action="@{/items/new}" th:object="${form}" method="post"> <form role="form" action="/members/new" th:object="${memberForm}" method="post"> 첫번째는 상품등록 폼의 action이 th태그로 사용된경우 두번째는 회원등폭 폼의 action이 그냥 사용된경우입니다. 상품,회원의 @getMapping createForm과 @postMapping create의 경로가 같기때문에(member/new, items/new) 저는 위의 2개의 form.html 에있는 action을 action=""으로 둘다 설정했는데 저렇게 따로 하는 이유가 있을까요 ? 제가 배운 기억으로는 경로가 같으면 action="" 이렇게 사용하면 처음 요청했던곳으로 다시 post요청한다고 알고있어서요
해결됨
한 입 크기로 잘라먹는 Next.js
강의를 잘 듣던 도중에 궁금증이 생겨 질문드립니다. #9.1 이미지 최적화 강의를 듣고 나서 생긴 궁금증입니다. 여러 img태그를 next에서 제공하는 Image 태그로 교체함으로써 웹사이트의 이미지를 최적화시킬 수 있다는 점은 잘 이해했습니다. 하지만 이렇게 된다면 이전 강의에서 배운 도서 상세 페이지에서 도서의 표지를 검은색 배경으로 깔기 위해 사용했던 div 태그 내의 css ( BackgroundImage: url(...) ) 부분이 가져오는 이미지는 최적화가 전혀 되지 않을 것 같다는 생각이 들었습니다. 열심히 최적화를 해 봐야 저 부분에서 풀 사이즈의 이미지를 중복해서 가져온다면 성능에 다시 악영향이 갈 것 같다고 생각하였고, 나름의 답을 생각해 보았는데, 어떤 답이 맞는 것인지 잘 모르겠어 이렇게 질문드립니다. 배경 부분도 Image 태그로 불러운 다음 css를 적절하게 사용해 똑같이 배경 느낌으로 만들어 준다. css url로 가져온 이미지는 자주 가져오지 않으므로 최적화하지 않아도 큰 영향은 없다. 사실 고민을 해 보아도 이 두가지 밖에 떠오르지 않아 둘 중에 답이 있는 것인지, 아니라면 어떤 방법을 적용하는 것이 좋은 방법일지 질분드립니다.
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
22:03 do...while문 질문 제 생각으로는 printf문 출력 후 i++이 나와서 증가되고 while문 i에는 2가 들어가야 될거 같은데 잘못 이해하고 있나요... 선생님 말씀대로라면 while문 실행 후 증감이 되야 될거 같은데요
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
비전공자 열심히 쫓아가는중입니다..^^; 21:00초대 int check=i 변수가 가 실행되는 시점이 잘 이해가 안갑니다. i 에 대입되는 값이 그대로 check에 들어가는 원리인가요? 홀수는 "현재숫자"만 출력되고 짝수는 "짝수입니다"까지 출력되구요?
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요! 강의 듣다가 에러가 발생해서 문의드립니다. 어디가 정확히 에러가 나는지 잘 모르겠어서, 어떻게 해결을 해야할지 모르겟네용... 클라이언트와 서버컴포넌트의 하이드레이션 과정에서 에러가 발생한다고 하는데요ㅠㅠ... 4ch 앱라우터 데이터 패칭 할 때 에러난건데, 서버 에러도 같이 뜹니다!! 아니면 서버의 문제라서 클라이언트-서버컴포넌트 하이드레이션까지 문제가 생긴걸까요?? ( 서버는 건드린 적이 없는데 ㅠㅠ ) < 에러 발생 내용 > hook.js:608 A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. 아래 사진은 서버 vscode 터미널 사진입니당 ㅠ Invalid this.prisma.book.findMany() invocation in C:\Users\82106\Desktop\06_onebite-server-main\src\book\book.service.ts:27:35 24 } 25 26 async findAllBooks() { → 27 return await this.prisma.book .findMany( Error querying the database: FATAL: Tenant or user not found PrismaClientInitializationError: Invalid this.prisma.book.findMany() invocation in C:\Users\82106\Desktop\06_onebite-server-main\src\book\book.service.ts:27:35 at In.handleRequestError (C:\Users\82106\Desktop\06_onebite-server-main\node_modules\@prisma\client\runtime\library.js:122:7154) at In.handleAndLogRequestError (C:\Users\82106\Desktop\06_onebite-server-main\node_modules\@prisma\client\runtime\library.js:122:6188)
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
package hellojpa; import jakarta.persistence.*; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); //code EntityTransaction tx = em.getTransaction();//트랜잭션 생성 tx.begin(); try { Member member = new Member(); member.setId(4L); member.setName("유동곤7"); em.persist(member); tx.commit(); }catch (Exception e){ tx.rollback(); } finally { em.close(); } emf.close(); } } 위코드에서 member의 setId와 setName을 바꾸면 강의를 보면 DB에 데이터가 쌓이는것같은데 저는 아이디를 바꾸고 이름을바꿔도 기존 데이터가사라지고 새로운데이터로 바뀌게됩니다 . 뭐가문제일까요