Remote Partitioning
미해결
죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
킬구형 6장 작전3에 첫번째 예제 Manager 노드 실행 명령까지 전체 코드를 볼 방법이 있어?
- java
- spring
- spring-boot
- spring-batch
- backend
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
킬구형 6장 작전3에 첫번째 예제 Manager 노드 실행 명령까지 전체 코드를 볼 방법이 있어?
미해결
김영한의 실전 자바 - 중급 1편
안녕하세요. ppt에 나와 있는 TemporalAdjusters 클래스가 제공하는 주요 기능표에 있는 lastDayOfNextMonth(), lastDayOfNextYear() 메서드는 존재하지 않는 듯 합니다.
미해결
실습으로 배우는 선착순 이벤트 시스템
안녕하세요 강의 잘 듣고 있습니다. ApplyService와 Consumer서비스의 db관련 질문을 하려 합니다. 9:30분쯤부터 ApplyService와 컨슈머서비스를 분리해서 테스트를 진행하는데 AppliServiceTest를 보면 자신의 CouponRepository에서 count개수가 100개인지 체크하는것 같습니다. 저는 쿠폰생성 및 저장 로직을 전부 컨슈머서비스로 옮겨서 여기서 쿠폰테이블을 관리한다고 생각했는데 어떻게 ApplyService가 자신이 이전에 사용하던 CouponRepository에서 count 체크가 가능한건지 궁금합니다. 혹시 두 서비스가 하나의 db를 공유하는건가요?
미해결
스프링과 JPA 기반 웹 애플리케이션 개발
현재보면 repository에 저장하고 나서 manager등을 set하게 되는데 이렇게 되면 쿼리수가 늘어나서 set을 먼저하고 repository에 저장을 해주는게 효율적이지 않을까요? 다른 특별한 이유때문에 순서를 save를 하고 set으로 결정하셨는지 궁금합니다.
미해결
김영한의 실전 자바 - 기본편
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 쇼핑카트 문제 요구사항이 명확하지 않아서 혼돈을 준다고 생각합니다. -상품을 최대 10개만 담을 수 있다. 라는 것을 저는 상품의 '개수'(quantity 총 합) 를 생각했으나, 문제 풀이하시는 것을 보니 상품의 '종류'가 총 10개 더군요. 둘의 풀이는 완전히 달라지기에, 더 명확히 해야한다고 봅니다.
미해결
죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
킬구형, 히사시 부리데쓰요야 JPA ItemReader와 ItemWriter를 배워보니 생각보다 복잡하고 여러 고려사항들이 많이 보이는 것 같아, 물론 JPA와 통합이 되서 좋지만 JPA를 쓰고 있어도 Jdbc ItemReader/ItemWriter가 훨씬 더 간단해보이고 별다른 추상화도 많이 없어서 성능도 괜찮아 보이는데, 실무에서는 어때? JPA ItemReader / ItemWriter를 더 많이 써 Jdbc ItemReader/ItemWriter를 더 많이써? PS: 킬구형 어떻게 이렇게 자세한 내용들을 알 수 있는거야? spring batch 공식 docs를 봐도 내용이 없던데 ㅋㅋㅋ 킬구형 없었으면 큰일 날뻔했자너~
미해결
실전! 스프링 데이터 JPA
MemberRepository의 구현체는 프록시 객체라고 배웠습니다 그렇다면 해당 프록시 객체 안에서 SimpleJpaRepository 와 MemberCustomRepositoryImpl 등을 필드로 갖고 있는 형태인가요?
미해결
백엔드 개발자 성능 개선 초석 다지기
계속해서 똑같은 오류만 나오고있습니다. 오류를 몇시간씩 찾아봤고, 테스트의 버전을 변경하고, 다 지우고 다운로드를 다시받고, jdk버전을 홈 기준 11로도 맞춰보고 다 해봤지만 계속해서 같은 오류가 나는데 어떻게 해결할 수 있을까요?
미해결
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강의 잘 보고있습니다. 다름이 아니라 프론트쪽 코드가 궁금해서 리액트 코드좀 받고싶은데 받을 수 있을까요? 메일:ad0362320@naver.com 입니다. 항상 감사드립니다!!
미해결
김영한의 실전 자바 - 중급 1편
강의 자료 42페이지에 "날짜와 시간" 포매팅으로 되어있는데 날짜만 포매팅이 아닌가 합니다
해결됨
멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]
안녕하세요! 유익한 강의 감사합니다. Executor 설명 중 한 가지를 정정드리고 싶습니다. 강의에서 설명해주신 내용은 maxPoolSize까지 바로 스레드가 생성되는 것으로 이해될 수 있는데, 실제 동작은 먼저 corePoolSize만큼 스레드를 생성하고, 그 이후 요청은 큐에 쌓이며, 큐가 가득 찼을 때 maxPoolSize까지 확장되는 구조입니다. 물론 강의 흐름상 의도적으로 설명을 단순화하신 것일 수도 있습니다만, 혼동될 수 있는 부분이라 참고용으로 댓글 남깁니다!
미해결
오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
안녕하세요 강사님 덕분에 강의 잘 듣고 있습니다 table full scan과 index_ffs 성능 비교 시 index_ffs 가 크기가 작아서 무조건 더 빠를 것이라고 생각했는데요 table full scan 시 direct i/o가 발생하여 index_ffs 보다 더 빠른 경우도 생길 수 있는건가요?
해결됨
포트폴리오 어나더레벨 | 합격하는 이력서 작성법
큰돌님 안녕하세요. 알고리즘강의부터 유튜브까지 잘 시청하고있습니다. 프론트엔드를 목표로 준비를 하고있는데 대부분 포트폴리오 페이지를 하나씩 구축을 하고 이력서와 같이 첨부하더라구요.. 과거에 리액트 + GSAP로 인터렉션 위주로 만들어놓은게 있지만 손볼것도 많고 요즘은 NextJS가 추세라하여 새로 만들어야할것같은데 이부분이 프론트 지원시 거이 필수적인지 궁금합니다.
해결됨
제미니의 개발실무 - 커머스 백엔드 기본편
CouponService쪽에선 다른 Service와 다르게 Implement Layer를 의존안하고, DataAccess Layer의 Repository 계층에 의존하고 있던데, 왜 그런걸까요?
해결됨
3일 만에 끝내는 백엔드 면접 핵심 압축 공략집 [네카라쿠배당토]
13:27초에 5단계로 나누어서 문제 - 선택지 - 결정 - 구현 - 결과를 이력서에 적으라고하셨는데, 저의 이력서 같은 경우는 아래와 같이 적어두었습니다. 프로젝트 개요 - 담당업무 - 성과 이런식으로 적는건 별로일까요??
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
이번 강의에서 영한님이 기본적으로 트랜잭션을 시작할 때 커넥션을 가져온다고 말씀해 주셨습니다. 주문 api 관련 내용에서는 바로 리포지토리를 참조하여 @Transactional 없이 사용했는데요 그럼 이런 경우는 커넥션을 어느 타이밍에 가져오나요?
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. Future를 거치는 SumTaskMainV2에서 future2.get()이 future1.get() 실행 후 task1의 call() 완료를 기다리지 않고 바로 실행되는 것을 콘솔 로그로 확인 가능했는데요. 그렇다면 Future를 거치지 않고 결과를 반환한다 가정할 때, task2가 task1 완료를 기다린 후 수행된다고 나와있는데, "Future는 한 스레드 작업의 future1.get() 실행 후, 다른 스레드의 작업 future2.get()은 future1의 call() 완료까지 기다리지 않는 기능이 있다" 이렇게 이해해도 될까요?
미해결
포트폴리오 어나더레벨 | 합격하는 이력서 작성법
안녕하세요 큰돌님! 항상 유튜브 잘 보고 있습니다. 저는 백엔드 개발자로 취업을 준비하고 있고, 현재 이력서와 포트폴리오를 만들기 위해 강의도 듣고 제 경험을 정리하고 있습니다. 본 강의와 큰돌님의 유튜브에서 항상 성능 개선을 수치적으로 표현 하라고 말씀하시는 것을 많이 들었습니다. 여기서 성능 개선에 있어서 제가 프로젝트를 할 때, 제 지식의 부족함으로 인해 성능이 안좋았던걸 개선한거에 대해서는 어떻게 적으면 좋을지 궁금합니다. 실제로, 웹에서 SSH 접속을 위한 프로젝트를 하면서 초기 SSH 접속을 할 때, sleep(500), 쉘에서 실행할 명령어를 송수신 하는 while문에서 sleep(10)을 설정 했었습니다. Java의 InputStream으로 입력값을 받도록 하였는데 개발 당시에는 안정적인 송수신을 위해서 sleep을 추가했는데, 리팩토링을 하는 과정에서 InputStream이 Blocking I/O의 특성으로 인해 불필요하다는 것을 알게 되었습니다. 이런 부분도 성능 개선 작업으로 적어도 되는지 궁금하고, 특히 면접에서 제 부족함?을 직접적으로 표현하지 않고 어떻게 말해야할지도 궁금합니다. 질문이 최대한 간략하게 적으려고 하다보니 두서없네요 ㅠㅠ. 감사합니다!
해결됨
제미니의 개발실무 - 커머스 백엔드 기본편
상품 목록 조회가 복잡해질 때의 상황을 생각해보고 있는데요. 감이 오지 않는 부분들이 몇가지 있어 질문드립니다. 상품 목록 조회 시 옵션 개념이 있다면 재고는 어떻게 처리해야 할까요? 재고는 상품옵션들의 조합이 가지고 있는 것이 이상적일 것 같은데, 상품 목록 조회던, 상세 조회던 품절 여부와 최대 구매가능 수량을 나타내기 위해서는 재고 정보도 필요해보입니다. 따라서 Product 필드에 해당 상품의 전체재고수량(모든 조합의 실재고 합)을 필드로 가지고 있는게 맞나? 라는 생각이 들고... 필드로 가지고 있다면 상품 조회 시 조합을 전부 조회하고 매번 합해 주어야 하나? 그럼 Product 테이블 컬럼단에 미리 합한 값을 넣어두어야 하나? 여러 생각이 듭니다. 다음으로는 프로모션(타임세일) 적용가, 쿠폰적용가 등으로 보여줘야 한다면 이게 실질적으로 Product 도메인 객체의 가격을 변경해도 되는 건가? 라는 생각도 했습니다.프로모션(타임세일) 적용가, 쿠폰적용가 등으로 보여줘야 한다면 쿠폰적용가, 타임세일 적용가 등이 처음에는 보여주기만을 위한 정보이지 않을까 생각했는데, 실제 주문할 때 반영될 금액이기도 하고, 타임세일 같은 경우는 대부분 모두에게 적용되어 보이는 형태이기에... 뷰의 목적이 아니라 개념적으로 봐도 되는걸까? 라는 생각이 듭니다. 조금 고도화 하여 생각해보니 감이 잡히지 않는 부분들이 너무 많네요,,, 실무에서는 주로 어떤 구조를 추구하는지 제미니님은 어떻게 생각하시는지 궁금합니다. 긴 글 읽어주셔셔 감사드려요!
미해결
죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
형 병렬 중첩 시키는 예제 코드있잖아. Worker Step Multithreading Implementation @Bean public Step managerStep(Step workerStep) { return new StepBuilder("managerStep", jobRepository) .partitioner("workerStep", dailyTimeRangePartitioner) .step(workerStep) .taskExecutor(partitionTaskExecutor()) .gridSize(4) .build(); } @Bean public Step workerStep(SynchronizedItemReader<TestLog> redisLogReader, ItemProcessor<TestLog, TestLog> logProcessor, MongoItemWriter<TestLog> mongoLogWriter) { return new StepBuilder("workerStep", jobRepository) .<TestLog, TestLog>chunk(500, transactionManager) .reader(redisLogReader) .processor(logProcessor) .writer(mongoLogWriter) .taskExecutor(workerTaskExecutor()) .build(); } @Bean @StepScope public SynchronizedItemReader<TestLog> redisLogReader(@Value("#{stepExecutionContext['startDateTime']}") LocalDateTime startDateTime) { log.info("{} read {}", Thread.currentThread().getName(), startDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHH"))); RedisItemReader<String, TestLog> itemReader = new RedisItemReaderBuilder<String, TestLog>() .redisTemplate(redisTemplate()) .scanOptions(ScanOptions.scanOptions() .match("logs:" + startDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHH")) + ":*") .count(10000) .build()) .build(); return new SynchronizedItemReader<>(itemReader); } @Bean public TaskExecutor workerTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(5); executor.setWaitForTasksToCompleteOnShutdown(true); executor.setAwaitTerminationSeconds(10); executor.setThreadNamePrefix("Worker-Thread-"); executor.setAllowCoreThreadTimeOut(true); executor.setKeepAliveSeconds(30); return executor; } 이렇게 했는데 2025-12-17T13:34:07.885+09:00 ERROR 1568 --- [ main] o.s.batch.core.step.AbstractStep : Encountered an error executing step workerStep in job testLogJob java.lang.NullPointerException: Cannot invoke "org.springframework.data.redis.core.Cursor.hasNext()" because "this.cursor" is null at org.springframework.batch.item.redis.RedisItemReader.read(RedisItemReader.java:62) ~[spring-batch-infrastructure-5.2.4.jar:5.2.4] 이런 오류가 나. 그리고 ItemReader쪽에 log.info("{} read {}", Thread.currentThread().getName(), startDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHH"))); 로그를 찍었는데 Worker-Thread-5 read 2025121712 Worker-Thread-1 read 2025121706 Worker-Thread-2 read 2025121700 Worker-Thread-3 read 2025121718 이런식으로 찍히고 있어. 하나의 파티션을 여러 스레드가 읽어야 하는데 workerTaskExecutor가 서로 다른 파티션을 읽고 있어. 내가 뭐 놓친게 있는걸까?