묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hibernate 라이브러리 추가 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요.spring.datasource.username=sa를 추가하였고, javax를 jakarta로 변경하였는데도 오류가 납니다.external libraries에 hibernate를 검색해도 나오지 않습니다.틀린부분 알려주시면 감사하겠습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 CRUD 테스트 할떄 발생하는 500 오류
게시글 CRUD API 구현 테스트 하는 부분에서 13:34쯤에 작성하고 테스트 실행하는 부분에서 아래 오류가 발생하는데 원인이 도대체 뭐일까여..ㅠㅠ 포트 9000에 서버 시작도 해놨었습니다500 Internal Server Error: "{"timestamp":"2025-01-27T06:39:44.186+00:00","status":500,"error":"Internal Server Error","path":"/v1/articles"}"org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-01-27T06:39:44.186+00:00","status":500,"error":"Internal Server Error","path":"/v1/articles"}" at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:102)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 console 실행, cmd 실행 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 윈도우로 h2 console을 진행해서 h2를 켜는 것과, cmd를 이용해서 h2.bat으로 h2를 켜는 것의 차이가 있을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew build 오류 해결완료!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]저는 윈도우10이고 인텔리제이 터미널에서가 아닌 윈도우 cmd에서 오류가 발생했을 때 해결했습니다!gradlew까진 됐는데, gradlew build 했을 때 저랑 같은 오류인 경우 참고하심 좋을 것 같아요1. 프로젝트 생성 할 때 OneDrive 말고 내 PC -> 사용자 -> 내 계정이름(공용x) -> 여기에 study폴더 생성 후 압축 여기에 풀기C:\Users\사용자이름\OneDrive\바탕 화면\study <- 가 아니라C:\Users\사용자이름 에 study폴더를 만들어서, C:\Users\사용자이름\study 여기 안에 hello-spring 넣기----물론 사용자이름은 영어로 설정----2. build.gradle 잘 선택했는지 확인 (<- 저는 gradle 잘못 선택했었어요)여기서도 경로가 OneDrive인지 확인!3. 윈도우 cmd보시는 것처럼 onedrive가 아닌 저 경로에서 cd study -> cd spring-hello를 하고, (강의에서 ll은 윈도우에선 dir)hello-spring 안에 들어가셔서 gradlew를 진행했고, 그 후 gradlew build를 했더니 드디어 성공,,! (윈도우는./ gradlew build가 아닌, 그냥 gradlew, gradlew build)4. java -jar 오류!저기 hello-spring 파일이 2개가 있는데 그 중에서 -plain말고 밑에 걸 선택하시면 됩니다.gradlew build 후에 libs에 가셔서java -jar hello-spring-0.0.1-SNAPSHOT.jar을 진행했는데오류가 떠서 gpt에 물어봤더니 현재 쓰고 있는 자바 버전이 너무 낮아서 안된다고 하네요.cmd에서 java -version해서 봤더니 1.8로 돼있었음... 다른 강의에서 1.8로 설정한 거라 몰랐네요ㅜㅜ그래서 환경변수에 시스템 변수에 있는 Path를 1.8로 되있는 걸 삭제하고 jdk 21이 경로로 설정해주고 가장 위로 올려줬습니다.그 후에 cmd 껏다 키고, libs파일까지 들어간 후에 java -jar hello-spring-0.0.1-SNAPSHOT.jar 을 해주면?Spring 너무 반갑쓰,,,ㅠㅠ (종료하실 땐 컨트롤 + C)정리하자면1. OneDrive 안에 있는지 확인.2. build.gradle 잘 선택했는지 확인.3. 환경변수 Path 자바 버전 확인!이 글을 쓰는 것까지 8시간에 걸쳐 오류 해결과 해결 과정 작성을 마무리 합니다ㅠ너무 두서없이 썼을 수도 있지만 같은 상황이시라면 최대한 도움 되셨음 좋겠네요. 다들 열공하십쇼!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요. 실무에서 JPA 사용법
안녕하세요. 강의 잘 수강하고 있습니다. 현재 회사에서 MyBatis를 주로 사용하고 있습니다. 제가 JPA에 대한 실무 경험이 없다보니 실무에서는 어떻게 JPA를 사용하는지 궁금하여 질문을 드렸습니다. 질문제가 생각할 때 이번 프로젝트는 복잡한 부분이 없어서 단순히 연관 관계가 필요 없다고 생각하는데 복잡한 실무에서 연관관계를 사용하는지 유무가 궁금하다. (상황마다 다르겠지만 일반론 기준) 거의 모든 Repository에서 네이티브 쿼리를 사용을 하였는데 실무에서 native Query를 많이 사용하는지 궁금하며 QueryDsl은 실무에서 어떤 방식으로 사용하는 궁금합니다. ( 크게 런타임 타입 체킹이 필요가 없다면 거의 다 native Query로 풀 수 있을거 같은데 QueryDSL을 사용한 경험을 듣고 싶습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
혹시 26분 30초 경에 대해서 추가적인 강의 찍으실 예정이실까요??
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.너무너무 흥미진진하게 보고 있었는데, 이 내용이 꼭 좀 있으면 좋겠습니다...!ㅠ 테이블을 분리한다면 테이블의 명칭은 각각 어떻게 네이밍 되는지.. 게시글이 1년 단위로 테이블이 분리된다고 했을떄, 테이블을 동적으로 생성하는 어떤 전략이 있는지.. (아니면 직접 1년 지날때마나 만드는 것인지) 등등.. 사소한 것부터 궁금한 것이 너무 많아서요...!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
COUNT 테이블 Lock 관련 문의
안녕하세요.우선 니즈에 맞는 좋은 강의를 찾아서 기분이 좋네요. 감사합니다.게시글 , 댓글 , 좋아요 수 를 따로 테이블을 만들어 관리한다는 것은 처음 알게되었고 좋은 방법이라고 생각합니다.강의에서는 비관적 락, 낙관적 락을 이용해서 동시성 문제를 해결하셨는데, 실무에서도 COUNT 테이블에 비관적 락, 낙관적 락을 많이 사용하나요 ?대규모 트래픽에서는 성능 문제로 비관적 락을 잘 사용하지 않을 것 같았거든요.낙관적 락을 사용하기에는 충돌이 많을 것 같구요.(그저 제 상상입니다. ㅎㅎ;) 의견 부탁드립니다.감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
p6spy 로그가 안찍힙니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 p6spy를 적용을 시도했는데 로그 출력이 되지 않아서 해결해보려다 실패하고 도움을 요청드립니다. 아래와 같이 코드들을 작성했습니다. > Task :compileJava UP-TO-DATE> Task :processResources> Task :classes> Task :compileTestJava UP-TO-DATE> Task :processTestResources NO-SOURCE> Task :testClasses UP-TO-DATE19:25:53.967 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [jpabook.jpashop.MemberRepositoryTest]: MemberRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.19:25:54.333 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration jpabook.jpashop.JpashopApplication for test class jpabook.jpashop.MemberRepositoryTest19:25:55.119 [Test worker] INFO org.springframework.boot.devtools.restart.RestartApplicationListener -- Restart disabled due to context in which it is running. ____ _ __ _ _/\\ / ___'_ __ _ ()_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v3.3.7)2025-01-26T19:25:55.869+09:00 INFO 18332 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : Starting MemberRepositoryTest using Java 21.0.2 with PID 18332 (started by dldbs in C:\Users\dldbs\Desktop\Spring강의\spring boot, jpa활용\jpashop)2025-01-26T19:25:55.874+09:00 INFO 18332 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : No active profile set, falling back to 1 default profile: "default"2025-01-26T19:25:57.515+09:00 INFO 18332 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2025-01-26T19:25:57.570+09:00 INFO 18332 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 33 ms. Found 0 JPA repository interfaces.2025-01-26T19:25:58.728+09:00 INFO 18332 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2025-01-26T19:25:58.896+09:00 INFO 18332 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final2025-01-26T19:25:58.990+09:00 INFO 18332 --- [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled2025-01-26T19:25:59.885+09:00 INFO 18332 --- [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2025-01-26T19:25:59.974+09:00 INFO 18332 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2025-01-26T19:26:00.168+09:00 INFO 18332 --- [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/jpashop user=SA2025-01-26T19:26:00.172+09:00 INFO 18332 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2025-01-26T19:26:02.325+09:00 INFO 18332 --- [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)2025-01-26T19:26:02.369+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :drop table if exists member cascade2025-01-26T19:26:02.383+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :drop sequence if exists member_seq2025-01-26T19:26:02.395+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :create sequence member_seq start with 1 increment by 502025-01-26T19:26:02.401+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :create table member (id bigint not null,username varchar(255),primary key (id))2025-01-26T19:26:02.413+09:00 INFO 18332 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2025-01-26T19:26:02.844+09:00 WARN 18332 --- [ Test worker] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2025-01-26T19:26:02.911+09:00 INFO 18332 --- [ Test worker] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2025-01-26T19:26:03.730+09:00 INFO 18332 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : Started MemberRepositoryTest in 8.647 seconds (process running for 12.331)WARNING: A Java agent has been loaded dynamically (C:\Users\dldbs\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.19\154da3a65b4f4a909d3e5bdec55d1b2b4cbb6ce1\byte-buddy-agent-1.14.19.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future release2025-01-26T19:26:04.981+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :selectnext value for member_seq2025-01-26T19:26:05.235+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :insertintomember(username, id)values(?, ?)2025-01-26T19:26:05.243+09:00 TRACE 18332 --- [ Test worker] org.hibernate.orm.jdbc.bind : binding parameter (1:VARCHAR) <- [memberA]2025-01-26T19:26:05.244+09:00 TRACE 18332 --- [ Test worker] org.hibernate.orm.jdbc.bind : binding parameter (2:BIGINT) <- [1]OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended2025-01-26T19:26:05.291+09:00 INFO 18332 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'2025-01-26T19:26:05.298+09:00 INFO 18332 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...2025-01-26T19:26:05.322+09:00 INFO 18332 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.> Task :testBUILD SUCCESSFUL in 15s4 actionable tasks: 2 executed, 2 up-to-date오후 7:26:05: Execution finished ':test --tests "jpabook.jpashop.MemberRepositoryTest.testMember"'.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
사이드 이펙트 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberRepository에서 return member.getId();사이드 이펙트로 멤버를 저장하는 메서드이기 때문에 리턴값은 안 만들어도 되고다만, 나중에 멤버 조회할 때 ID 정도 있으면 간단하게 조회할 수 있기 때문에 리턴값 설정해둔 것으로 이해하면 될까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderService의 order() 내에서 Delivery 생성메서드가 아닌 생성자 호출 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]OrderService의 주문 생성 코드에서 Order와 OrderItem은 생성메서드를 통해 객체를 생성하여 저장하도록 하셨는데, Delivery 객체에 대해서는 따로 생성 메서드를 만들지 않고 직접 생성자 호출을 통해 만든 이유가 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
UserLoanHistory Entity
id를 할 때는 Entity에서 자료형 Long을 쓰고, user_id는 자료형 long을 쓰는데 왜 두 개 다른것을 쓰나요? 특별한 이유가 있을까요??
-
해결됨실습으로 배우는 선착순 이벤트 시스템
강사님 강의를 듣고 실제 프로젝트에서 이벤트 응모 시스템을 만들어 봤습니다.
안녕하세요 강사님!강사님의 동시성 이슈와 선착순 이벤트 시스템 강의를 듣고 실제 프로젝트에서 이벤트 응모 시스템을 만들어 봤습니다. 아래는 제가 해당 이벤트 응모 시스템을 만들면서 겪었던 이슈와 고민을 블로그 글로 적었습니다.우선 강사님 덕분에 프로젝트 잘 끝낼 수 있어서 감사했습니다.블로그 글을 쓰면서 든 생각은 여기서 더 개선 시킬점은 없을까? 좀 더 고민 해볼만한 부분은 없을까? 라는 생각이 들었습니다.개발에 정답은 없지만 그래도 좋은 방향은 있다고 생각해서 최근에 제가 쓴 글을 다시 보면서 어떤 부분을 고치면 좋을까 라는 생각을 하고 있습니다.혹시 강사님께서 제 글을 보시고 만약 면접관이시라면 어떤식으로 질문이 들어올 수 있을지 특히 꼬리 질문에 대해 얘기를 해주실 수 있을까요 해주신 내용을 바탕으로 깊게 고민을 해보고 면접 대비도 하고 싶습니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
서버 응답관련 질문
안녕하세요, 조교님 30강 강의를 들으면서 문제가 발생해 질문을 남기게 되었습니다. 이 전까지는 정상적으로 작동하였는데 "책 등록" 기능이 제대로 동작하지 않습니다. 코드에는 문제가 없어 보이고, 서버는 정상 동작합니다. 책 등록에서 저장 버튼을 누르면 위와 같은 메시지가 뜨는 상황인데, 혹시 해결방법을 아실까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA 프록시 객체 AccessType.FIELD에서 getId 시 초기화?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하십니까 선생님! 질문 제목을 보고 얘는 왜 이 질문을 여기에 올렸을까라고 의아해하실 수도 있는데, 사실 제가 영한님 스프링 관련 강의는 다 사서 열심히 보고 있는데(정말 도움 많이 받고 있습니다. 항상 정말 잘 듣고 있습니다!!) JPA는 영한님이 쓰신 JPA 책을 사서 보고 있습니다! 그런데 프록시 객체 파트를 읽어보던 도중 이해가 되지 않는 부분이 있어 질문을 쓰고 싶은데 JPA 쪽에 질문으로 쓰려고 해도 강의를 산 사람만 작성할 수 있어 부득이하게 여기에서 질문하게 되었습니다 죄송합니다 ㅜㅜㅜ 다름이 아니라 지금 JPA의 프록시 객체 파트를 공부하고 있습니다. 그런데 294P의 8.1.2 프록시와 식별자 부분에서 엔티티를 em.getReference, 즉 프록시로 조회할 때 엔티티 접근 방식을 AccessType.PROPERTY로 설정한 경우 getId를 호출해도 프록시를 초기화하지 않는다고 하셨습니다. 그래서 직접 한번 코드를 작성해보았습니다. 우선 AccessType.PROPERTY 방식부터 적용해보았습니다. PROPERTY와 FIELD 두 방식 모두 실험 전 create 옵션으로 Parent 객체 하나를 만들어두고 후에 none으로 바꾸어 진행했습니다. Parent 객체 생성 코드Parent parent = new Parent(); parent.setId(1L); parent.setName("parent1"); em.persist(parent); Parent.java@Entity @Setter @Getter @Access(AccessType.PROPERTY) public class Parent { private Long id; private String name; @Id public Long getId() { return id; } }JpaMain.javapublic static void main(String[] args) { EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); Parent foundParent = em.getReference(Parent.class, 1L); System.out.println(foundParent.getClass()); System.out.println(foundParent.getId()); System.out.println(foundParent.getName()); tx.commit(); em.close(); emf.close(); }해당 코드를 실행시켰을 때이렇게 나온걸 보니 확실히 getId 후에 getName 조회시 프록시 객체를 초기화(select 구문 실행)을 했다는 것을 알 수 있었습니다. 그런데 AccessType.FIELD로 조회하면 getId 를 할때에도 프록시 객체를 초기화한다고 하여 아래와 같이 Parent.java의 코드를 다시 작성하여 JpaMain.java를 실행해보았습니다. Parent.java@Entity @Setter @Getter @Access(AccessType.FIELD) public class Parent { @Id private Long id; private String name; }제 예상으로는 getId 실행시 프록시 객체를 초기화 한다고 하셨으니 실제 출력에는 Parent의 getId()가 실행되기 전에 select 문이 실행되어야 할 것이라고 예상하였습니다. 하지만위와 같이 getId()에는 프록시 객체를 초기화하지 않는 것처럼 보여지는 출력이 나왔습니다.책에서는 AccessType.FIELD 사용시 getId()를 호출하면 JPA는 getId()가 id만 조회하는 메소드인지 다른 필드까지 활용해서 어떤 일을 하는 메소드인지 알지 못하므로 프록시 객체를 초기화한다고 나와있는데 왜 이런 결과가 나온 것일까요? 제가 잘못 이해하고 있는 것이 있을까요?
-
미해결견고한 결제 시스템 구축
recovery 동시성 처리 관련 문의
recovery() 를 스케줄로 구현한 부분에 있어서 궁금증이 있습니다.설명에도 언급 되었듯이 k8s 환경과 같이 scale-out 형태로 서비스를 제공하면 동시성 이슈가 발생될 것으로 예상되는데요.단순하게 하나의 unknown order 만 생성해서 테스트로 갈음하기에는 검증이 부족하다고 느껴지는데, 동시성 검증은 어떻게 진행하셨을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
외래키를 사용하지 않아도 되는지 궁금합니다
이렇게 연관관계가 있는 키들은 외래키로 참조하고 있다는 표시를 하지 않아도 되는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Zipkin Dependencies 화면 안나옴...
문제Zipkin Dependencies 화면만 안나옴... (Chrome 에서만 안됨... Firefox 에서는 됨...) 1) 개발자도구 확인 - NetworkYou need to enable JavaScript to run this app 확인https://support.google.com/adsense/answer/12654?hl=en위 링크를 확인해서 크롬에서 JavaScript 가 활성화 되어있는지 확인→ 이미 되어있었음... 2) 개발자 도구 확인 - ConsoleError creating WebGL context. 확인chrome://flagsANGLE graphics backend 옵션 확인 > OpenGL 설정 → 그래도 안됨… 3) 마지막..chrome://settings시스템 탭 클릭"가능한 경우 그래픽 가속 사용" 설정 켜기... → 성공… 같은 문제가 발생하시는 분들에게 도움이 되면 좋겠습니다. 참고 사이트입니다.https://help.lucid.co/hc/ko/articles/17480912789908-문제-해결-WebGLhttps://support.google.com/chrome/thread/25018979/status-could-not-create-a-webgl-context?hl=en
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
파일 실행이 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] HomeController.java 와 home.html을 다 작성하고 localhost:8080으로 실행하려고 하니 HomeController.java가 실행이 안됩니다. 인터넷에는 src를 리소스 루트로 지정하고 하면 된다고 해서 리소스 루트로 src를 지정하고 첫 번째 사진과 같이 파일 위치를 지정하는 부분에서 계속 없다고 뜨는데 어떻게 해야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
콘솔창에 warn이 안떠요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]콘솔창에 warn이 뜨지 않습니다. 스프링을 먼저 실행한 후에 http://localhost:8080/hello-mvc에 들어가서 오류가 나와도 콘솔창에 warn이 나오지 않습니다. 어떻게 해야할까요?
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
10.Pub-Sub모델을 이용한 실시간 알림 (WebSocket, STOMP 이용) part 1 의 자료
학습중 궁금한 것은 언제든 문의 하세요.질문을 최대한 자세히 남겨주시면 반드시 답변 드리도록 하겠습니다.추가로 알고 싶은 내용도 요청해주시면 강의 자료를 업데이트 해서 제공할 예정입니다. 안녕하세요~! 10.Pub-Sub모델을 이용한 실시간 알림 (WebSocket, STOMP 이용) part 1해당 자료가 다운이 되지 않습니다!