묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결토비의 스프링 6 - 이해와 원리
스프링 부트와의 강의 순서 질문
안녕하세요, 토비님.저는 Spring 과 Java로 개발을 했었으나 좀 까먹은 상태고, 이번에 하면서 스프링에서 말하는 DI, AOP, Spring Application Context 등 여러 개념을 한번에 이해하고 넘어가고 싶습니다.업무에 사용할 예정은 Spring 3.X 대의 최신 버전입니다.이런 상태에서 토비의 스프링 부트와 토비의 스프링 6이 둘 다 있는데 어떤 것부터 들으면 좋을까요?
-
미해결김영한의 실전 자바 - 기본편
static2.ex 문제1번 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 첫번째 사진과 정답 코드를 비교했을때============[정답코드] ============public Car(String name) { System.out.println("차량 구입, 이름: " + name); this.name = name; totalCars++; }=============================== this.name = name; 없이도 코드가 실행이 잘되는 이유를 알고 싶습니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
index.html 에 질문있습니다!
안녕하세요 선생님 도서관리 앱을 만드는 과정을 모두 영상과 함께 코딩하여 완성하고 나니 문득 궁금한 점이 생겼습니다. 지금 여기에는 회원등록, 도서 등록, 도서 대출, 도서 반납, 상단에는 목록보기 정도가 있는데 선생님이 만들어 놓으신 버튼 이외에 다른 버튼을 제가 더 추가 해 더 완성도 높은 도서관리 앱으로 공부해서 만들어 보고 싶다면 HTML은 어디서 수정을 해야 하나요? v1/index.html 파일에서 할 수 있나요?? 몹시 궁금해서 여쭤봅니다!
-
해결됨Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
StepVerifier를 이용한 Testing (1) - expectNoEvent 에 관해서
안녕하세요! 강의 잘 듣고 있습니다. 다름이아니라 section10.class01.StepVerifierTimeBasedTestExample04 여기서 expectNoEvent 이 오퍼레이터가 시간을 기다려 주는 기능을 한다 이렇게 이해했는데 제가 조금 커스텀해서 찍어보다 보니 작동 방식이 도저히 이해가 되지 않아서 질문 남겼습니다. 아래 코드 처럼 1분마다 emit되는 예제에서 중구, 서초구는 1분씩 기다렸으니 순서대로 나오는게 맞는데 그 다음은 2분을 기다렸으니 강동구가 나와야 할 것 같았는데 강서구가 나오더라고요. expectNoEvent라는 오퍼레이터가 가지는 의미를 어떻게 이해야 할지 도저히 감이 안잡힙니다...ㅠ [전체코드(테스트성공)]public class StepVerifierTimeBasedTestExample04 { @Test public void getCOVID19CountTest() { StepVerifier .withVirtualTime(() -> TimeBasedExample.getVoteCount( Flux.interval(Duration.ofMinutes(1)) // 1분마다 data를 emit ) ) .expectSubscription() .expectNoEvent(Duration.ofMinutes(1)) // 1분동안 아무런 이벤트가 발생하지 않음 .expectNext(Tuples.of("중구", 15400)) // 첫번째 튜플 .expectNoEvent(Duration.ofMinutes(1)) .expectNext(Tuples.of("서초구", 20020)) .expectNoEvent(Duration.ofMinutes(1)) .expectNoEvent(Duration.ofMinutes(1)) .expectNext(Tuples.of("강서구", 32040)) .expectNoEvent(Duration.ofMinutes(1)) .expectNextCount(2) .expectComplete() .verify(); } } [getVoteCount 함수]public static Flux<Tuple2<String, Integer>> getVoteCount(Flux<Long> source) { return source .zipWith(Flux.just( Tuples.of("중구", 15400), Tuples.of("서초구", 20020), Tuples.of("강서구", 32040), Tuples.of("강동구", 14506), Tuples.of("서대문구", 35650) ) ) .map(Tuple2::getT2); }
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 11분17초경에 나오는 while2_3 코드변경문제 질문입니다while문 맨 끝에 i++;를 작성하지 않으면 i <= endNum을 정의해도 무한루프?로 실행이 되던데 왜 그런지 알 수 있을까요?
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
16:50부분에서 타입락 질문드립니다.
ResourceA의 methodA메서드가 호출될때 ResourceA.cass락이 1번쨰로걸리고 ResourceB.class락이 두번째로 걸리고나서 ResourceB.class락이걸린상태에서 resourceB.methodB2()메서드가 호출되는데 resourceB.methodB2()메서드 내부에서 ResourceB.class락으로 컨트롤 하고있는데 ResourceA의 두번째 락에서 ResourceB.class로 락을 반환하지않은상태에서 실행된다고 생각하는데 resourceB.methodB2()의 내부는 어떻게 실행되는걸까요? 정리methodA()ResourceA1번째락 > ResourceA.cassmethodA()ResourceA2번째락 > ResourceB.cassResourceA2번째락내부에서 resourceB.methodB2()실행resourceB.methodB2()내부는 ResourceB.cass락질문사항methodA()ResourceA2번째락에서ResourceB.cass을 점유하고있는데 resourceB.methodB2()도 ResourceB.cass락으로 블록락 실행중인데도 불구하고 점유 가능한 이유가 무엇인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 매니저 초기화 방법 질문입니다
@Repository public class MemberRepository { @PersistenceContext private EntityManager em; } @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; }안녕하세요엔티티매니저 초기화 방법에 대해 질문드리고 싶습니다.DB 2편 데이터 접근 활용 기술에서는 후자의 방법으로 초기화하셨고이번 강의에서는 전자의 방법으로 초기화 하셨는데검색해보니 @RequiredArgsConstructor가 아닌 @PersistenceContext를 사용하라는 글이 있던데 몇년 된 게시물들이었고최근에는 @RequiredArgsConstructor를 사용해도 괜찮다는 게시글도 봤습니다 결론적으로는 둘 다 사용해도 괜찮은지아니면 둘 중 추천하시는 어노테이션이 있는지그리고 둘의 차이가 궁금합니다
-
해결됨실습으로 배우는 선착순 이벤트 시스템
안녕하세요 질문 있습니다!
현재 카프카로 데이터를 보내기전에 redis를 사용하여 발급된 쿠폰 개수에 대한 동시성 처리를 해서 개수에 대한 검증 로직이 있다고 앞서 강의에서 얘기를 하셨습니다. 그러면 발급된 쿠폰 개수가 100개 되고 난 이후의 요청은 그냥 무시하면 되나요?쿠폰이 천개, 만개 이렇게 매우 많다면 쿠폰 발급에 대한 요청을 바로 DB에 저장을 하면 DB에 부하가 심해져서 카프카를 도입해 이러한 부하를 낮춘다고 이해를 했습니다. 궁금한 점은 DB에 대한 부하를 낮춰도 이벤트 시기에 수많은 사용자들의 요청으로 인해 서버 자체에 대한 부하는 굉장히 심할꺼 같은데 서버에 대한 부하를 낮추는 방법은 없나요?현재 흐름이 쿠폰 요청 -> 서버 -> reids에서 쿠폰 개수 확인 -> 카프카 -> 컨슈머 -> DB 인데 이러한 흐름을 요청 -> 서버 -> 카프카 -> 컨슈머 -> redis에서 쿠폰 개수 확인 -> DB 이렇게 바꾸는 방식은 어떤지 궁금합니다. 이런식으로 하면 서버쪽에서 카프카로 데이터를 비동기로 전송한다면 서버 자체에도 부하가 낮아지지 않을까 라는 생각이 들어서 여쭤 봅니다.redis streams나 래빗엠큐 같은 다른 기능들도 있는데 Kafka를 사용하신 이유가 궁금합니다.만약 쿠폰 발급이 100개처럼 적게 발급하는 시스템이라면 굳이 카프카를 도입을 할 필요가 없는건가요?publisher가 카프카로 데이터를 보내면 consumer가 바로 받아와서 DB에 처리를 하면 안되겠죠? 이렇게 처리를 하면 바로 DB에 저장을 하는 상황이니 DB에 부하가 심해진다고 생각합니다.현재 강사님이 알려주신 코드를 바탕으로 시스템을 구축하고 여기에 부하 테스트를 한다고 했을때 어떤 식으로 단계를 잡아서 부하 테스트를 하면 좋을지 조언을 해주실 수 있을까요 한번에 너무 많은 질문해서 죄송합니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
교안으로만 공부해도 충분할까요?
팬심 또는 언젠간을 위해 강의를 전부 구매했습니다.구매 후 기본편 까지는 강의를 다봤거든요.그런데 교안을 너무 잘만드셔서 교안만 봐도 될꺼같다 라는 생각이 들더라구요.물론, 강의를 진득하게 듣고 이해하여, 그것을 체화하면 자바에 대해 더 깊게 이해할 수 있겠지만,문제는 역시 트레이드오프... 시간이 너무 많이 걸리네요. 자바 고급 2편까지 1달 반에서 2달 내로 끝내고 싶은데 강의를 들으면 도저히 그 시간을 맞출 수 없을꺼같아서 질문해봅니다.제목 그대로 교안만으로도 충분할까요?
-
미해결김영한의 실전 자바 - 중급 2편
Tree
혹시 스택,큐,set, hash등의 강의는 있는데, tree 에 대한 강의는 없는 것 같은데 다른 편에서 Tree 에 대해서 어느정도라도 다루어주시나요 ?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
삭제를 눌렀을때의 오류..
안녕하세요 강사님 영상으로 스프링을 처음 배우기 시작하여 공부 중인데 도서관 애플리케이션에서 사용자를 등록은 가능하나 삭제를 눌렀을때 서버 내부 오류입니다라는 내용이 나오는데요 에러 내용은 .. java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.updateNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:186) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.getNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:161) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:107) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:224) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:178) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.14.jar:6.1.14]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar:6.1.14]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar:6.1.14]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar:6.1.14]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar:6.1.14]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar:6.1.14]at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar:6.1.14]at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:936) ~[spring-webmvc-6.1.14.jar:6.1.14]at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:596) ~[tomcat-embed-core-10.1.31.jar:6.0]at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar:6.1.14]at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar:6.0]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar:10.1.31]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar:6.1.14]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar:6.1.14]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar:6.1.14]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar:6.1.14]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar:10.1.31]at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]이런 내용으로 출력이 됩니다. 도무지 해결할 방법을 찾이 못해 질문드립니다~
-
미해결
자바 버전을 다운받고 jdk, sdk 설정을 17이상으로 햇는데 오류가 뜹니다.
스프링강의 입문 강의를 따라 강의를 학습중입니다. java 20 버전으로 설정해 사용중, 설정과 project structure에 sdk, jdk를 모두 20버전으로 설정하엿습니다. 하지만 화면 과 같은 오류가 떠서 자바 버전을 찾을 수 없다고 하는데. 혹시 어떻게 해결해야 하나여? 밑에는 버전사진입니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
auto = update
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 있지만 적용이 안 됩니다3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]<property name="hibernate.hbm2ddl.auto" value="update" /> update 옵션 사용시에 에러가 발생합니다. h2 database는 1.4.200 버전으로 변경 후 사용하고 있습니다 (기존 2.xx)아무리 찾아봐도.. 이거 해결책이 안 보이는데, 버전이 잘못 되거나 다른 이슈가 있을까요..?에러 로그는```Exception in thread "main" jakarta.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1591) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1512) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at hellojpa.JpaMain.main(JpaMain.java:13)Caused by: org.hibernate.exception.SQLGrammarException: Unable to build DatabaseInformation [Column "start_value" not found [42122-200]] [n/a] at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:66) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:194) at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:98) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:286) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:145) at java.base/java.util.HashMap.forEach(HashMap.java:1429) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:142) at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:315) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1507) ... 4 moreCaused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "start_value" not found [42122-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:453) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) at org.h2.message.DbException.get(DbException.java:205) at org.h2.message.DbException.get(DbException.java:181) at org.h2.jdbc.JdbcResultSet.getColumnIndex(JdbcResultSet.java:3169) at org.h2.jdbc.JdbcResultSet.get(JdbcResultSet.java:3268) at org.h2.jdbc.JdbcResultSet.getLong(JdbcResultSet.java:680) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetStartValueSize(SequenceInformationExtractorLegacyImpl.java:110) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.lambda$extractMetadata$0(SequenceInformationExtractorLegacyImpl.java:54) at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:50) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:66) at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.<init>(DatabaseInformationImpl.java:60) at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:185) ... 14 more``` pom.xml 입니다```<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>jpa-basic</groupId> <artifactId>ex1-hello-jpa</artifactId> <version>0.0.1-SNAPSHOT</version> <name>ex1-hello-jpa</name> <description>ex1-hello-jpa</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>21</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.4.2.Final</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> ```
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
강의랑 교안이랑 다른 부분이 있습니다.
File, Files의 4페이지밑에서 세 번째 줄Path newFile = Paths.get("temp/newExample.txt");교안에는 위와 같이 나와있는데, 강의 영상에서는 아래와 같이 코드를 작성해주셨습니다.Path newFile = Path.of("temp/newExample.txt"); 두 코드는 같은 역할을 하는 것인가요??
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
버퍼 질문입니다.
1. 1byte 씩 전송하면 당연히 시스템콜이 많이 작동하므로 속도가 느리다2. 8바이트씩 전송하면 시스템 콜에서 어차피 8바이트씩 전송하므로 시스템 콜을 적게 호출 할 수 있다 [질문]한번에 전송해도 시스템콜에서 8kb바이트씩 보낼텐데시스템콜 요청하는 횟수가 2번과 비슷할텐데 왜 버퍼를 쓰는게 더 빠르게 나오는 걸까요?혹시 이게 한번 전송하면 한꺼번에 시스템콜 직전까지 전달하므로 병목현상 뭐 그런걸까요?++강의에서 한번에 써도 os상에서 8kb씩 보내신다고 했던것 같은데 맞나요?메모리에 한번에 올려서 시스템콜에 가져다 주는 것이 부하가 걸려서 8kb씩 버퍼로 하는 것보다 더 느린걸까요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
버퍼 질문입니다!
한번에 쓰는 것과 8kb씩 버퍼를 이용해서 쓰는 것에 대해서어차피 시스템 콜에서 8kb씩 전송하는데한번에 가져다 주는 게 더 빨라야 하는 것이라고 인식되는데어떻게 8kb씩 버퍼로 주는게 더 빠른걸까요?한번에 주든 8kb씩 버퍼로 주든시스템 콜에서 8kb씩 전송하는 거면한번에 주는 게 나은 거 아닌가요!?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
update 함수를 만든다는게 어떤 의미인지 예시가 궁금합니다!
안녕하세요, 오랜만에 흥미로운 강의를 알게되어 주말동안 강의를 몰아보다보니 9강까지 듣게 되었네요. 23분 59초 정도에 setter를 지양하기 떄문에 custom setter를 잘 사용하지 않고, update함수를 만들어 사용한다 라는 내용에 예시가 있다면 알 수 있을까요? java 프로젝트를 활용할 때 setter를 커스텀하게 수정해서 쓰는 경우가 아주 간혹 값이 업데이트 될 때 다른 필드를 함께 업데이트 해야하는 케이스들 때문에 사용했던 기억이 있는데, setter를 사용하지 않고 update를 사용한다는게 어떤 말씀이신지 조금 더 상세히 알려주시면 감사하겠습니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
프로젝트 익스포트에 대해 질문이 있습니다.
Module 'library-app' output path is incompatible with the Eclipse format which supports output under content root only. Make sure that "Inherit project compile output path" is not selected혹시 배포하신 프로젝트를 제가 STS에서 실행하기 위해 인텔리제이에서 Export to Eclips를 하고 Project Status Modul에서 Eclipse를 선택하고 ok를 눌렀더니 저런 경고 문이 뜨는데.. 배포하신 프로젝트는 이클립스 환경으로 익스포트가 안되는건가요??
-
미해결실전! Querydsl
JPAQueryFactory를 스프링 빈으로 등록 시 테스트 코드 작성
안녕하세요.좋은 강의 잘 보고 있습니다. 13:43초 쯤에 말씀하신 JPAQueryFactory를 스프링 빈으로 등록하는 방법은 테스트 코드를 작성하는 데 귀찮아진다고 말씀하셨습니다. 테스트 클래스(MemberJpaRepositoryTest)를 수정하지 않고도 통과가 되는데, 어떤 점이 귀찮아진다는 말씀이신가요? @SpringBootTest를 사용하지 않고 순수 자바로 테스트할 때, EntityManager와 JPAQueryFactory를 2개 생성해야 해서 귀찮아진다고 하신 것일까요?
-
해결됨Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
backpressure latest 전략
백프레셔 latest 전략으로 코드를 돌려보니 버퍼가 가득찼는데 새로 데이터가 들어오면 기존에 버퍼에 있던 데이터들이 모두 사라지는 것처럼 보여서 reactor 공식문서를 찾아보니 Discard Support: Each time a new element comes in (the new "latest"), this operator discards the previously retained element. 라고 하는걸로봐서 버퍼가 가득 찬 상태에서 새로 데이터가 들어오면 버퍼에 기존에 있던것들 다 비워버리고 최신 데이터를 버퍼에 넣는 것 같아요