묻고 답해요
163만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew build test 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]java -version에서 21인거 확인했고환경변수,path 설정도 제대로 된것 확인하였습니다.인텔리제이에서 tool 설정에서 실행이 인텔리제이로 되어있는것도 확인했습니다 근데 왜 자꾸 test부분에서 오류가 나는지 모르겠습니다.혹시 build.gradle 파일 안에 junit 부분이 인텔리제이에서 밑줄 쳐진것처럼 이상하게 보이긴 했는데 거기가 문제인걸까요?gradlew 까지는 잘 실행되는데gradlew build를 입력하면 항상 실패합니다.https://drive.google.com/file/d/1H2-IATqwNphgZoDcjcEQXkbAmcfELT8D/view?usp=sharinghello-spring이 들어있는 zip 입니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
저만 화면이 나오지 않나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]PC에서 소리는 나오는데 검은화면으로 나옵니다.
-
미해결김영한의 실전 자바 - 중급 1편
바깥 클래스의 인스턴스의 멤버에 접근
1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 수강 중 궁금한 것이 생겨 여쭤보게 되었습니다. 내부 클래스가 바깥 클래스의 인스턴스의 멤버에 접근, 지역 변수는 내부 클래스 특징 + 지역 변수에 접근 이라는 것에 대해 여쭤보고 싶습니다. 강의 자료 중 '바깥 클래스의 인스턴스의 멤버에 접근' 이라는 것이 바깥 클래스에 있는 '바깥 클래스 자기 자신'에 대한 객체나 '다른 클래스 타입으로 선언한 객체'를 사용할 수 있다는 말일까요 ? 그리고 지역변수 접근이라는 말도 여쭤보고 싶은데, 예시 코드 void process()를 보면 메서드 내부에 지금 지역 클래스가 있습니다. 지역 변수 접근이라는 말은 바깥 클래스의 메서드 내부에서 존재한다는 말일까요 ?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
spring boot 3.0 이상에서 p6spy 적용이 안됩니다.
plugins { id 'java' id 'org.springframework.boot' version '3.4.4' id 'io.spring.dependency-management' version '1.1.7' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:3.4.4' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() }오류 화면같은 문제인거 같아서요 https://inf.run/ZzfxG추가하라는 내용을 pdf 어디에서 찾아볼 수 있나요? 아래 질문글로 해결했습니다! implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'https://inf.run/jdbjL
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
마지막 테스트 케이스에서 타임에러 발생하는데 이유를 모르겠어요 (해결완료)
import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int n, m, left=0; static int[][] boxes; static int[][] directions = new int[][]{{-1, 0}, {0, -1}, {1, 0}, {0, 1}}; static Queue<Integer[]> q; public int BFS() { /* 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마토가 들어있지 않은 칸 | 모두 익을 때까지의 최소 날짜 nx-1, ny | nx, ny-1 | nx+1, ny | nx, ny+1 */ if (left==0) return 0; int L = 0; while (!q.isEmpty()) { int size = q.size(); for (int i=0; i<size; i++) { Integer[] point = q.poll(); for (int j=0; j<4; j++) { int nx = point[0] + directions[j][0]; int ny = point[1] + directions[j][1]; if (nx>=0 && nx<n && ny>=0 && ny<m && boxes[nx][ny]==0) { left--; boxes[nx][ny] = 1; q.offer(new Integer[]{nx, ny}); } } } L++; } if (left >0) return -1; return L-1; } public static void main(String[] args) { Scanner kb = new Scanner(System.in); m = kb.nextInt(); n = kb.nextInt(); boxes = new int[n][m]; q = new LinkedList<>(); for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { boxes[i][j] = kb.nextInt(); if (boxes[i][j]==1) q.offer(new Integer[]{i, j}); if (boxes[i][j]==0) left++; } } Main main = new Main(); System.out.println(main.BFS()); } } 코드는 위와 같이 짰는데 계속 타임 에러가 발생해서 강의를 들었습니다.. 제가 보기엔 강사님이 짜신 거랑 차이를 모르겠는데 제 코드의 어떤 부분이 문제가 됐을까요?===========================AI 답변 보고 혹시나 싶어서 강사님이 하신대로 Point class 를 따로 만들어서 진행했더니 해결됐습니다..!!!! 배열로 선언한 것과 차이가 있네요
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
9:30질문있습니다
9:30질문있습니다 코드는 항상 메인부터 보고 출력순서를봤는데이 문제는 main이 실행 되기도 전에 생기는 오류인 걸까요?
-
해결됨김영한의 실전 자바 - 기본편
final int value를 생성자를 통해 초기화하는 경우
[질문 내용]final이 붙은 int value를 생성자를 통해 초기화하는 법을 배웠습니다. 그런데, final이 변수 앞에 붙은 경우, 생성자를 통해서 한번만 초기화 될 수 있다고 했는데, 아래 ConstructInit 메서드를 두 번 사용하여 초기화를 두 번 진행한 것을 볼 수 있습니다. 한번만 초기화 할 수 있다고 했는데, 왜 객체를 두개나 생성해서 final int value를 두번 초기화한 것일까요?final int value; public ConstructInit(int value) { this.value = value; } package final1; public class FinalFieldMain { public static void main(String[] args) { //final 필드 - 생성자 초기화 System.out.println("생성자 초기화"); ConstructInit constructInit1 = new ConstructInit(10); ConstructInit constructInit2 = new ConstructInit(20); //한번만 초기화 된다며 System.out.println(constructInit1.value); System.out.println(constructInit2.value); } }
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
7:10
자식클래스 호출전에 부모클래스 먼저 호출된다했는데출력값 둘쨋줄은 자식클래스의 기본 생성자인데 따로 호출한적이 없는데 왜 호출 되는건가요??그리고 부모클래스 기본생성자의 출력 시점은 eCar.star();를 호출할때 출력되는건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 설치하고 설치옵션이 뜨는데 뭘 선택해야되나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
javac에 대해서 궁금한 점이 있습니다
안녕하세요 강의를 보고 javac에 대해서 궁금한 점이 있어서 질문 드립니다..class로 컴파일 된 파일을 각각 os에 맞는 자바가 각자의 os에 맞게 바꿔서 실행을 한다고 하셨는데javac도 java이지 않나요?. 정확한지 모르겠지만 linux에서 컴파일한 .class와 window에서 컴파일한 .class의 값이 다르다면window에서 컴파일한 .class 파일이 linux에서 실행이 되는 건가요? 모든 os에서 실행이 되려면 .class 파일의 내용은 같아야 될 것 같은데궁금합니다.
-
해결됨김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
2.람다.pdf
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 2.람다.pdf 36p MyFunction 은 함수형 인터페이스이며, String apply(String s) => StringFunction 이거죠??
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
문제와 풀이 invokeAll()로 풀때 예외처리
안녕하세요 해당 문제를 invokeAll()로 풀었는데 예외처리 부분을 어떻게 처리해야할지 궁금해 질문 올렸습니다. 저는 예외를 main메서드에서 잡았지만 , NewOrderService에 try-catch문을 써서 예외를 잡는게 뭔가 응집도가 높아보인다 해야하나? 관련있는 코드끼리 모여있어서 더 유지보수 하기 좋은 코드라고 생각합니다. 그럴려면 order 메서드 안에 이중 try문을 써야하는게 최선인가요? (invokeAll, future.get() 2번) public class NewOrderService { private final ExecutorService es = Executors.newFixedThreadPool(10); public void order(String orderNo) throws InterruptedException, ExecutionException { InventoryWork inventoryWork = new InventoryWork(orderNo); ShippingWork shippingWork = new ShippingWork(orderNo); AccountingWork accountingWork = new AccountingWork(orderNo); List<Callable<Boolean>> works = List.of(inventoryWork, shippingWork, accountingWork); //작업 요청 try { List<Future<Boolean>> futures = es.invokeAll(works); for (Future<Boolean> future : futures) { Boolean result = future.get(); } } finally { es.close(); } } .........InventoryWork,ShippingWork,AccountingWork 클래스 } public class OrderServiceTestMain { public static void main(String[] args) { String orderNo = "Order#1234"; NewOrderService orderService = new NewOrderService(); try { orderService.order(orderNo); log("모든 주문 처리가 성공적으로 완료되었습니다."); } catch (ExecutionException e) { log("일부 작업이 실패했습니다."); throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } } }
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
FutureTask 객체의 사용후 GC 유무
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 Future 관련 공부를 하다가 궁금증이 생겨 질문 남겼습니다. ThreadPoolExecutor 객체 안에 FutureTask 객체를 만들고 그 안에 task(Callable 구현 객체)를 보관한다고 알고 있습니다. 그러면 스레드풀에 있는 스레드가 해당 Future 작업을 완료한 후에 main 스레드에서 future.get()으로 값을 반환 받고 난 후에 해당 future 객체는 GC가 알아서 처리해주는건가요?
-
미해결김영한의 실전 자바 - 중급 2편
LinkedList의 for-each 동작 방식이 궁금합니다.
본 강의 약 10분 쯤에 나오는 코드private static boolean contains(LinkedList<Integer>[] buckets, int searchValue) { int hashIndex = hashIndex(searchValue); LinkedList<Integer> bucket = buckets[hashIndex]; for (Integer integer : bucket) { if (integer == searchValue) { return true; } } return false; }이 부분에서 배열은 각 인덱스의 요소를 하나씩 꺼내는데 LinkedList는 어떤식으로 for-each문을 사용하는지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 1편
중급2편 수강 전 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예중급2편 수강 전 문의 한번만 확인 부탁드려요 ㅠㅠ[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
응용이 어렵습니다.
강의를 꾸준히 보고 따라하면서 여기까지 왔는데요아직 제대로 된 복습보다는 이해가 잘 안되는 부분은 나중에 한번 더 보고 일단 한 바퀴 돌아보자 생각 하며 왔습니다.반복문에서 도저히 응용이 안돼서 여기까지 넘어왔는데요.. 일단 다 보고 나서 다시 복습 해보는 것이 나을까요?아니면 반복문으로 돌아가서 이해할 때 까지 복습을 하고 다시 오는 방법이 좋을까요?자바 공부 하면서 꼭 이해하고 넘어가고 싶었는데 도저히 진도가 안나가다 보니까 방법을 여쭙고 싶습니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
TRACE 레벨의 로그가 찍히지 않는 것 같아요( 해결완료 )
JPA 와 DB 설정, 동작확인 강의에서 리뉴얼된 메뉴얼을 따라서 진행하고 있는데 24분 34초에 나오는 BasicBinder 와 관련한 로그가 TRACE 레벨인 것 같은데 해당 로그가 찍히지 않습니다.또한 org.hibernate.SQL 과 관련한 로그도 영상과는 다르게 찍히는데 이유가 뭘까요?p6spy를 적용하여 나오는 결과 로그도 영상과 다릅니다 ( 27분 28초 )p6spy 를 적용하면서 동일한 쿼리 내용이 2번 찍히는 것 같기도 하고 문제를 모르겠습니다.2025-03-25T23:48:11.976+09:00 INFO 12200 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-03-25T23:48:12.165+09:00 INFO 12200 --- [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/jpashop user=SA 2025-03-25T23:48:12.168+09:00 INFO 12200 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2025-03-25T23:48:12.225+09:00 INFO 12200 --- [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info: Database JDBC URL [Connecting through datasource 'p6SpyDataSourceDecorator [com.p6spy.engine.spy.P6DataSource] -> dataSource [com.zaxxer.hikari.HikariDataSource]'] Database driver: undefined/unknown Database version: 2.2.224 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 2025-03-25T23:48:12.864+09:00 DEBUG 12200 --- [ Test worker] org.hibernate.SQL : create global temporary table HTE_member(rn_ integer not null, id bigint, username varchar(255), primary key (rn_)) TRANSACTIONAL 2025-03-25T23:48:12.869+09:00 INFO 12200 --- [ Test worker] p6spy : #1742914092869 | took 2ms | statement | connection 1| url jdbc:h2:tcp://localhost/~/jpashop create global temporary table HTE_member(rn_ integer not null, id bigint, username varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_member(rn_ integer not null, id bigint, username varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-03-25T23:48:12.976+09:00 INFO 12200 --- [ 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-03-25T23:48:12.988+09:00 DEBUG 12200 --- [ Test worker] org.hibernate.SQL : drop table if exists member cascade 2025-03-25T23:48:12.990+09:00 INFO 12200 --- [ Test worker] p6spy : #1742914092990 | took 1ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists member cascade drop table if exists member cascade ; 2025-03-25T23:48:12.990+09:00 DEBUG 12200 --- [ Test worker] org.hibernate.SQL : drop sequence if exists member_seq 2025-03-25T23:48:12.991+09:00 INFO 12200 --- [ Test worker] p6spy : #1742914092991 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop sequence if exists member_seq drop sequence if exists member_seq; 2025-03-25T23:48:12.995+09:00 DEBUG 12200 --- [ Test worker] org.hibernate.SQL : create sequence member_seq start with 1 increment by 50 2025-03-25T23:48:12.996+09:00 INFO 12200 --- [ Test worker] p6spy : #1742914092996 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create sequence member_seq start with 1 increment by 50 create sequence member_seq start with 1 increment by 50; 2025-03-25T23:48:13.000+09:00 DEBUG 12200 --- [ Test worker] org.hibernate.SQL : create table member ( id bigint not null, username varchar(255), primary key (id) ) 2025-03-25T23:48:13.002+09:00 INFO 12200 --- [ Test worker] p6spy : #1742914093002 | took 2ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table member ( id bigint not null, username varchar(255), primary key (id) ) create table member ( id bigint not null, username varchar(255), primary key (id) ); 2025-03-25T23:48:13.005+09:00 INFO 12200 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-03-25T23:48:13.328+09:00 WARN 12200 --- [ 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 warning 2025-03-25T23:48:13.368+09:00 INFO 12200 --- [ Test worker] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2025-03-25T23:48:13.881+09:00 INFO 12200 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : Started MemberRepositoryTest in 4.281 seconds (process running for 5.626) 2025-03-25T23:48:14.568+09:00 DEBUG 12200 --- [ Test worker] org.hibernate.SQL : select next value for member_seq 2025-03-25T23:48:14.589+09:00 INFO 12200 --- [ Test worker] p6spy : #1742914094589 | took 13ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashop select next value for member_seq select next value for member_seq; 2025-03-25T23:48:14.685+09:00 INFO 12200 --- [ Test worker] p6spy : #1742914094685 | took 0ms | rollback | connection 4| url jdbc:h2:tcp://localhost/~/jpashop ; OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 2025-03-25T23:48:14.710+09:00 INFO 12200 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2025-03-25T23:48:14.716+09:00 INFO 12200 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2025-03-25T23:48:14.730+09:00 INFO 12200 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.현재 설정 파일 내용들입니다.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.orm.jdbc.bind: traceJunit5를 사용하기 위해서 Junit4를 추가하지 않았습니다.plugins { id 'java' id 'org.springframework.boot' version '3.4.4' id 'io.spring.dependency-management' version '1.1.7' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.10.0' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() }
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
Integer: 뒤에 띄어쓰기까지 해야하는 건가요?
16:46 Integer: 이랑 42 사이에 띄어쓰기까지 해야하는 건가요? 안하면 틀리는 건가요?18:45하얀글씨 5번째줄인 float fnum =3.14f;에서 마지막 f는 뭔가요? 저것도 같이 출력하는건줄 알았는데
-
미해결[백엔드/예외처리 시나리오/집계 최적화] 백엔드 포트폴리오와 실무 이력 강화 전략. 올인원 PART1
bulkInsert 부분에서 마지막에 이상한? 부분이 있는것 같아서 문의드립니다.
마지막 부분에 getBatchSize()를 1000정도 권장해주셨는데요.jdbcTemplate.batchUpdate()는 내부적으로 배치사이즈만큼 for문을 통해 반복하는것 같습니다. 즉 실제 처리해야할 대상 데이터가 1000개가 넘는다면 1000번째 이후 데이터부터는 INSERT가 안될거고요.만약 1000개 미만이라면 예를 들어 500개밖에 없다면 501번째 반복때 java.lang.ArrayIndexOutOfBoundsException발생할것 같습니다.만약 chunk가 최대 1000개정도가 적당하다라는 말씀이신거면 모르겠지만 1000으로 하드코딩해서 쓴다 라고 하신것처럼 와닿아서.. 오해의 소지가 있는것 같아 남깁니다~ private void bulkProcessSettlements(Map<Long, BigDecimal> settlementMap, LocalDate paymentDate) { String sql = "INSERT INTO settlements (partner_id, total_amount, payment_date) VALUES (?, ?, ?)"; jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { // } @Override public int getBatchSize() { return 1000; } }); }
-
미해결[백엔드/예외처리 시나리오/집계 최적화] 백엔드 포트폴리오와 실무 이력 강화 전략. 올인원 PART1
팰월드 스트림..?
parallelStream 발음하실때 패럴드? 팰월드?스트림이라고 하시는데, 패러럴스트림 아닌가요..?추가로.. 병렬처리쪽 테스트 하실때 1분 기다리기보다는 테스트 코드를 작성해서 직접 실행하거나 가능하다면 스케줄러 테스트하는 꿀 팁같은 것도 있으면 좋을것 같아요~~