묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
중급편 질문
toString 에 대해서 다룬 강의가 있나요? 아니면 중급편에서 다룰 예정이신가요 ? 2.만약 library 를 출력할때 toString 이 자동으로 실행되는 관련된 것을 수업에서 다뤄주신 적이 있나요?Locale, NumberFormat 관련해서 다뤄주셨거나 중급편에서 다뤄주실 예정이신가요 ?
-
미해결자바 코딩테스트 - it 대기업 유제
잃어버린 강아지 문제 count 관련 질문있습니다
안녕하세요 강사님 강의 잘 듣고 있습니다!잃어버린 강아지 문제에서 count관련 이해가 안되는 부분이 있어서요. 관련 부분만 가져왔는데 count는 처음에 0으로 초기화 된 상태에서 while문에 들어가자마자 1이 증가하고, 마지막으로 들어갈 때는 9999상태에서 들어가서 10000이 되고, 그시점에 마지막 번째 while을 실행하면서 현수가 강아지를 찾아서 x1 == x2 && y1 == y2이 된 후 break(사실상 while문이 끝나서 break된거나 마찬가지지만)될수도 있는건데 강아지를 못찾고 반환하는 0을 리턴하는 조건이 count >= 10000이 되면 10000번째에 찾더라도 못찾은걸로 표현될수 있지 않나 싶어서요.그런데 이런 생각을 하다보니까 그러면 진짜로 10000을 넘을때까지 못찾는 경우는 어떻게 알수 있게 되지? 라는 생각이 들면서 정리가 안되기 시작했습니다. ㅠㅠ count가 while안에 있기 때문에 10000번째에 딱 찾고 끝나고 나면 더이상 count를 올려줄 방법이 없는데, 어떻게 해야 만번 이상을 했고 그래도 찾을수 없었던걸 증명할수 있을지...일단 생각으로는 while을 true로 해놓고 break하는 조건을 하나 더 둬서 if(x1 == x2 && y1 == y2) break; 아래에 if(count == 10000) break;나 if(count >= 10000) break; 이렇게 하는 방법이 떠오르긴 하는데 이렇게 해도 괜찮을지, 강사님이 해주신 코드로 충분한데 제가 이해를 못하고 있는것일지.. 설명 늘 자세히 해주시는데도 질문해서 죄송합니다🥲 항상 감사합니다int d1 = 0, d2 = 0, count = 0; while (count < 10000) { count++; int nx1 = x1 + dx[d1]; int ny1 = y1 + dy[d1]; int nx2 = x2 + dx[d2]; int ny2 = y2 + dy[d2]; boolean flag1 = true, flag2 = true; if (nx1 < 0 || nx1 >= n || ny1 < 0 || ny1 >= n || board[nx1][ny1] == 1){ d1 = (d1 + 1) % 4; flag1 = false; } if (nx2 < 0 || nx2 >= n || ny2 < 0 || ny2 >= n || board[nx2][ny2] == 1){ d2 = (d2 + 1) % 4; flag2 = false; } if(flag1 == true){ x1 = nx1; y1 = ny1; } if(flag2 == true){ x2 = nx2; y2 = ny2; } if(x1 == x2 && y1 == y2) break; } if (count >= 10000) return 0;
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
CascadeType 자식 엔티티 삭제
public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tr = em.getTransaction(); tr.begin(); try{ Parent parent = new Parent(); Child child = new Child(); Child child1 = new Child(); parent.addChild(child); parent.addChild(child1); em.persist(parent); em.flush(); em.clear(); Parent newParent = em.find(Parent.class, parent.getId()); Child child2 = newParent.getChildList().get(0); em.remove(child2); tr.commit(); } catch (Exception e){ tr.rollback(); e.printStackTrace(); } finally { em.close(); } emf.close(); } }안녕하세요 CascadeType 관련해서 질문을 남깁니다. Parent에 CascadeType을 ALL 또는 PERSIST로 했을 때 위에서 child 삭제 쿼리가 나가지 않습니다. 다른 속성들은 모두 잘 동작을 하는데 왜 저 두 속성만 안되는건지 혹시 알 수 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수 Jdbc 강의에서 요구하는 데로 다 하고 마지막에 회원 목록을 눌렀을때 에러가 납니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.어떤 것을 잘못했는지는 잘 모르겠는데, 회원 목록을 눌렀을때 에러가 뜹니다.IntelliJ에서는 다음과 같은 오류가 납니다. org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:522) ~[h2-2.2.224.jar:2.2.224] at org.h2.engine.SessionRemote.readException(SessionRemote.java:650) ~[h2-2.2.224.jar:2.2.224] at org.h2.engine.SessionRemote.done(SessionRemote.java:619) ~[h2-2.2.224.jar:2.2.224] at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:163) ~[h2-2.2.224.jar:2.2.224] at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:438) ~[h2-2.2.224.jar:2.2.224] at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:330) ~[h2-2.2.224.jar:2.2.224] at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125) ~[h2-2.2.224.jar:2.2.224] at org.h2.Driver.connect(Driver.java:59) ~[h2-2.2.224.jar:2.2.224] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-5.0.1.jar:na] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) ~[spring-jdbc-6.1.4.jar:6.1.4] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) ~[spring-jdbc-6.1.4.jar:6.1.4] at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) ~[spring-jdbc-6.1.4.jar:6.1.4] at hello.hellospring.repository.JdbcMemberRepository.getConnection(JdbcMemberRepository.java:116) ~[classes/:na] at hello.hellospring.repository.JdbcMemberRepository.findAll(JdbcMemberRepository.java:74) ~[classes/:na] at hello.hellospring.service.MemberService.findMembers(MemberService.java:40) ~[classes/:na] at hello.hellospring.controller.MemberController.list(MemberController.java:40) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:259) ~[spring-web-6.1.4.jar:6.1.4] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:192) ~[spring-web-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:920) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:830) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.4.jar:6.1.4] at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.19.jar:6.0] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.4.jar:6.1.4] at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.19.jar:6.0] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.19.jar:10.1.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.4.jar:6.1.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.4.jar:6.1.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.4.jar:6.1.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.4.jar:6.1.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.4.jar:6.1.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.4.jar:6.1.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.19.jar:10.1.19]
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
선생님 키보드가 궁금합니다.
학습 관련 질문은 아니여서 죄송합니다. 강의를 듣고 있는데, 키보드 소리가 너무 맘에 드네요.. 혹시 모델명좀 알 수 있을가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
전체 소스코드 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]혹시 강의 전체 소스코드는 어디에 있나요?강의 자료에는 해당 강의에서 수정한 내용이나 추가한 내용만 있는데, 그거말고 전체 소스 코드를 받을 수 있나요?강의를 보며 따라 치다보니 에러가 났는데 도저히 못찾겠습니다ㅠㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
BeforeEach
service에서 repository를 주입받을 때, repository는 메소드 실행 전 new로 새로 만들기 때문에 테스트케이스의 메소드는 전부 다른 인스턴스를 주입받는 것 아닌가요? 아래 비슷한 질문에서 repository의 변수는 static이기 때문에 동일한 타입의 인스턴스가 전체 공유하고 있다고 답변 달아주신걸 확인했습니다.이부분은 repository를 주입받는 방식이 아니라 service에 선언했을때도 동일한데 그럼 DI방식으로 분리하기 전후 차이점이 무엇인가요?
-
미해결스프링 시큐리티
버전업하면서 deprecated된 것들이 너무많아요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의따라갈려니까 관련해서 오류가 계속 발생하고 extends가 안되는데 어떻게 해야하는지 추가글이나 방법을 알려주세요.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4
위의 이미지처럼 스캐너 넥스트 라인을 상품명 다음에 했을때 출력값에 상품명이 뜨지 않습니다. if다음에 바로 스캐너.넥스트라인을 두는것과 왜 이런 차이가 생기는건가요? 이해가 잘 되지않습니다
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
쓰레드풀에서 쓰레드를 재사용할 수 있는 이유가 궁금합니다.
강의 초반부 스레드는 start해서 작업이 끝나면 재사용할 수 없다고 하셨고 자바독에서도 아래와 같이 start()가 재사용되는 것은 legal하지 않다고 표현하고 있습니다It is never legal to start a thread more than once. In particular, a thread may not be restarted once it has completed execution.그런데 스레드풀 재사용 시에는 뭔가 다른 작업이 있을까 해서 강의와 함깨 디버깅해보니 addWorker()에서도 Worker에 할당된 스레드의 start()메소드로 호출하고 있었습니다. 스레드 풀의 경우 start()호출 후 메소드가 종료되었음에도 스레드를 재사용할 수 있는 이유는 무엇인가요? 질문을 작성하고 나서 조금 더 고민해보니 아래와 같은 결론에 도달했습니다.(혹시 틀린 내용이 있다면 수정 의견 부탁드립니다) 비슷한 고민을 하신 분이 있을 것 같아 글을 남겨둡니다.생성된 스레드의 start() 실행 -> Worker의 run()실행 -> Worker의 runWorker()실행 -> while()조건에 의해 무한 루프무한루프가 되는 이유 : getTask()를 통해 큐에서 작업을 꺼내와 실행하고 큐에 작업이 없을 경우 블록킹되므로 블로킹이 해제된 시점에서는 task변수에 작업이 할당되어 while조건문이 true가 됨
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080/hello가 실행되지 않습니다.
typo나 폴더 위치를 잘못 설정해서 localhost:8080/hello가 실행되지 않는 줄 알았는데, 몇 번을 재검토 해봐도 다 맞게 쓴 것 같아서 어디가 잘못 되었는지 궁금해서 질문드립니다. 환경설정밖에 안 하기는 했지만 입문강의임에도 내용이 잘 이해가 안 되는데 듣다보면 괜찮아질까요..?
-
미해결김영한의 실전 자바 - 기본편
문제 풀이 방식에서 컴파일 에러가 뜬 이유를 알고 싶습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]물품 관리 프로그램을 작성할 때 위 사진에서 체크표시한 코드처럼 물품의 이름, 가격, 수량을 입력받는 즉시 물품배열에 대입해주었는데 컴파일에러가 뜨더라구요.이유를 생각해봤는데 물품'배열'에 대한 인스턴스는 생성해놨지만 해당 배열의 각각의 물품에 대한 인스턴스는 아직 생성하지 못한 상태여서 그런 건가요?그렇기 때문에 물품 정보를 입력받은 뒤 맨 마지막(밑줄 표시)에 메서드를 이용하여 객체를 만드는 동시에 물품 정보를 대입해주는 것이구요...?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 설계시 주의점 질문입니다.
1. 엔티티 설계시 주의점 10분6초에서 fetch=FetchType.LAZY 을 fetch=LAZY 로 변경하시는데요. 강의 아래화면에서 방향을 보니까 alt +endter를 누르시는데 저는 오른쪽 화면 처럼 나옵니다. 어떻게 해야하나요? 24분 40초에 나오는 setMember(Member member) 부분 코드 설명이 아래처럼 이해해도 되나요?public void setMember(Member member){ // 현재 Order 객체의 member 필드에 매개변수로 받은 Member 객체를 할당합니다. this.member = member; // Member 객체의 getOrders 메서드를 호출해 주문 목록을 가져온 뒤, 현재 Order 객체(this)를 그 목록에 추가합니다. // 이는 Member 객체 내부의 주문 목록에도 현재 Order 객체가 포함되도록 하는 역방향 연결을 설정합니다. member.getOrders().add(this); } 3.getOrders()는 메소드로 정의된게 없는데 왜 빨간줄이 안뜨나요?강의에서 setter 기능은 쓰지 말라고 하셨는데 setMember와 setter 는 다른 기능인가요?setMember 이 부분을 쓰는 이유가 아래 동그라미 표시가 있기 때문인가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
투포인터 슬라이딩 방식이 아니면 어떻게 구현해야 하나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 기존에 남겨주신 코드들 보면 합계를 이용해서 rt를 하나 증가시키고 lt도 합계에 따라 증가시키는 방식으로 이해습니다. 궁금한 부분이 lt에서 rt까지의 합이 아닌 lt와 rt 두 포인터의 합의 최소값으로 구현하려고 하니까 구현 방식이 greedy와 다를게 없어져서 어떻게 구현해야할지 잘 모르겠는데 어떻게 해야하나요? 현재 아래와 스니펫처럼 어떻게든 구현해보려고 하는데 구현하신 방식대로 하려고 하니 잘 풀리지 않습니다. for(int rt = 1; rt < arr.length; rt++){ sum = arr[lt] + arr[rt]; if(Math.abs(sum) < gap){ gap = Math.abs(sum); answer[0] = arr[lt]; answer[1] = arr[rt]; } while(lt + 1 < rt){ lt++; sum = arr[lt] + arr[rt]; if(Math.abs(sum) < gap){ gap = Math.abs(sum); answer[0] = arr[lt]; answer[1] = arr[rt]; } } lt++; }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
어떤 경우 cascade 를 적용해도 되는지 이해가 되지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]스프링 cascade 활용도 측면에서 궁금한 것이 있습니다. 영한님 - 인프런 (inflearn.com)이 질문을 남겼었던 수강생입니다! 잠깐 상황을 요약하면 Program 과 Review 그리고 User 가 다대 1 1대 다 로 묶여 있는 상황입니다. program 에서 program.addReview 메서드를 활용하기 위해 cascade type 을 적용하였었습니다. 하지만 영한 님은 이부분의 코드는 별로 좋은 코드가 아니다! cascade 옵션 질문 - 인프런 (inflearn.com)를 참고해서 보아라. 라고 하셨습니다. 위 질문의 요약은 강의에서 Order 는 OrderItem 을 개인 소유 하나, Order 와 Delivery 는 Delivery 가 여러 곳에서 참조할 수 있으므로 개인 소유 하지 않는다. 라고 읽었습니다. 참조 하는 것과 Cascade Type .all 이 무슨 관계가 있는지 모르겠습니다. 6줄요약하면: Delivery 와 Review 는 여러 곳에서 참조할 수 있으므로 CascadeType all 을 붙이지 말라고 하신 것 같은데 여러 곳에서 참조가능성이 있으면 CascadeType all 을 왜 붙이지 말아야 하는지 궁금합니다. 단순히 계속 코드를 보며 추적해야 하는 것 때문인가요?? 이 부분이 와닿지 않습니다. 혹시 실제 예를 들어 설명해주실수 있나요??
-
해결됨김영한의 실전 자바 - 기본편
[super - 생성자] 기본생성자 생략 부분
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]```public class ClassB extends ClassA{ public ClassB(int a) { super(); // 기본 생성자 생략 가능 System.out.println("ClassB 생성자 =" + a); }``````public class ClassA { public ClassA() { System.out.println("ClassA 생성자"); } }```강의에서 자식 클래스의 생성자에서 super(); 부모 클래스의 생성자 호출을 기본 생성자일 경우 생략가능이라고 하셨습니다.제가 이해가 안 가는 부분은 ClassA의 생성자는 기본 생성자가 아닌 매개변수가 없는 사용자 정의 생성자이고 자식 클래스에서는 기본생성자일 경우 생략가능이 아니라 자바 컴파일러가 부모 생성자의 호출이 명시적으로 없는경우 super();를 첫줄에 삽입해주기에 매개변수가 없는 생성자나 또는 생성자 정의가 없을 경우 기본 생성자를 호출한다가 맞지 않나 생각해 보는데 이 부분에 대해서 제가 잘못 알고 있는 점이 있으면 알려주시면 감사하겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 설계시 주의점 질문있습니다.
엔티티 설계시 주의점 8분 39초에서요.사용하지 말라는게 위 사진에서 빨간색 박스를 의미하시는건지 노란색 박스를 의미하시는 건지 궁금합니다.onetonoe와 ManyToOne OneToMany 셋다 사용하지 말라는 건가요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 테이블 미생성 및 임베디드 모드 실행되는 이유
[질문 내용]안녕하세요 현재 H2 테이블을 이 생성되지 않고 있습니다. 관련 질문들을 찾아봐서 update에서 create로 바꿔봐도 안되고 있느데 문제를 모르겠습니다.SprongBoot Applicaton에 @EnitityScan을 하여도 생성아 안되고 있습니다. spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug org.hibernate.type: trace이렇게 DB도 생성이 되었고 커넥션도 문제가 없습니다. @SpringBootApplication @EntityScan(basePackages = "jpabook.jpashop.domain") public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } } 위에서 말한 것처럼 EnitityScan을 하였는데도 테이블이 생성이 안되어서 진행을 못하고 있습니다. 문제가 어디에 있는것 일까요? 파일 디렉토리 구조는 다음과 같습니다. 추신: 현재 로그를 보니 H2가 임베디드로 실행되는거같은데 Gradle에도 runtimeOnly라고 잘 적어놨습니다. 이유를 도저히 모르겠습니다.2024-03-12T20:56:51.434+09:00 INFO 5352 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:6f48c70e-23df-4595-9e73-2ad1be4993e1' 아래는 제 Gradle 코드입니다.plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' } group = 'jpashop' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' } test { useJUnitPlatform() }도움을 주신 다면 감사하겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
깊은 연쇄 호출에 대한 성능 문제 질문입니다.
엔티티가 member, A,B,C 가 있습니다.엔티티 사이의 연관관계는 member, A : 일대다 양뱡향A,B : 일대다 양뱡향B,C : 일대다 양방향 관계입니다.이때 C 에 대한 조회를 하는데 있어서 memberId 도 같이 응답을 해줘야합니다.이런 경우 어떻게 처리하는게 좋을지에 대한 질문이 생겼습니다.memberId = C.getB().getA().getMember().getId() 이렇게 계속 호출을 해서 가져오는 방법은 성능상 안좋을 것 같아 실무에서는 어떻게 하시는지 궁금합니다.애초에 DB 설계가 안좋은건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
자바 프로그램은 자바가 설치된 모든 OS에서 실행할 수 있다고 하셨는데요
자바 프로그램은 자바가 설치된 모든 OS에서 실행할 수 있다고 하셨는데 제가 아는 언어들 예를들면 python, c 등 도 모두 다른 OS에서 실행되는걸로 알고있는데 제가 잘못알고 있는건가요?자바가 다른 OS에서 실행되는게 다른 언어의 차이점이 되는 이유가 뭔지 궁금합니다.