묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전 jOOQ! Type Safe SQL with Java
R2DBC 환경에서 jOOQ generate 된 Dao를 사용할 수 있는 방법이 있을까요?
jOOQ generate을 통해서 생성된 Dao를 기반으로 R2DBC 환경에서 테스트를 진행할 때 findAll(), findById() 등 뒤에 fetch()가 붙어서 Blocking 방식으로 DB에 접근하게 되어 있었습니다.fetch() 코드를 들어가서 확인하였을 때 아래와 같았습니다. @Blocking <E> @NotNull List<E> fetch(RecordMapper<? super R, E> var1) throws DataAccessException; 그래서, jOOQ 공식 사이트에서 찾아보았을 때 아래와 같이 reactor fecth()가 가능하다는 것은 확인하였습니다.https://www.jooq.org/doc/latest/manual/sql-execution/fetching/reactive-fetching/ Dao을 적용해서 Reactor 방식으로 진행할 수 있는 방법은 없을까요??또한, Reactor Fetch 방식으로 실행하였을 때 디버깅 로그가 찍히지 않는 문제가 발생하고 있는데 이것에 대해서도 해결 방법이 있을까요???Configuration이 적용되지 않는 것 같아서 아래와 같이 설정도 해보았지만 적용되지는 않았습니다. import io.r2dbc.spi.ConnectionFactory; ... @Configuration public class JooqConfig { public final ConnectionFactory connectionFactory; public JooqConfig(ConnectionFactory connectionFactory) { this.connectionFactory = connectionFactory; } ... @Bean public DSLContext jooQDSLContext() { DSLContext dsl = DSL.using(connectionFactory).dsl(); dsl.configuration().set(PerformanceListener::new); dsl.settings().withRenderSchema(false); return dsl; }
-
미해결스프링 시큐리티 OAuth2
컨트롤러에서 Authentication이 null 일 때
"/home" 으로 리다이렉트 할 떄 Authentication 이 null로 가져와지는 문제가 있습니다.왜 그럴까?OAuth2AuthenticationToken 은 Principal의 하위 클래스입니다. 이는 ServletRequestMethodArgumentResolver 에서 잡아서 resolve 해줍니다.그런데 여기서 resolve 하는 과정에서 SecurityContext로부터 Authentication 을 꺼내는데 익명사용자일 경우 null 로 반환하게 됩니다. 인증되지 않았다는 것이죠.아까 우리는 인증을 했지만 이 결과가 장기적인 저장을 담당하는 SecurityContextRepository에 저장이 제대로 되지 않았기 때문입니다.CustomOAuth2LoginAuthenticationFilter 의 부모인 AbstractAuthenticationProcessingFilter 가 사용하는 securityContextRepository가 RequestAttributeSecurityContextRepository 또는 NullSecurityContextRepository(예전버전 기준) 로 되어 있습니다.이렇게 되어 있으면 다시 "/home" 으로 리다이렉트되어 요청될 때 SecurityContextHolderFilter에서 인증 결과를 못 불러오는 문제가 생깁니다.실습의 편의상 세션에 저장하는게 좋은데, filter.setSecurityContextRepository(HttpSessionSecurityContextRepository()) 코드를 추가하셔서 설정하시면 될 것 같습니다. 다시 요청이 들어왔을 때 SecurityContextHolderFilter를 거치면서 세션의 Authentication 을 꺼내서 SecurityContext에 담아주기 때문에 성공적으로 인증된 OAuth2AuthenticationToken 을 바인딩 받으실 수 있을겁니다.
-
미해결김영한의 실전 자바 - 중급 1편
섹션 4. Lotto 문제 오름차순 정렬
안녕하세요. 섹션 4의 문제와 풀이2의 로또 번호 자동 생성기 관련 질문 드립니다.답안은 이해했고, 추가로 로또 번호를 오름차순으로 정렬하면 좋겠다는 생각이 들었습니다. 그런데 오류가 뜨면서 해결이 되지 않아 질문 드립니다.(1) LottoGenerator 클래스 생성자의 반환값에 넣었을 경우 안되는 이유// 로또 번호 생성자 public int[] generate() { lottoNumbers = new int[6]; count = 0; while (count < 6) { // 1. 1부터 45 사이의 숫자 생성 int number = random.nextInt(45) + 1; // 2. 중복되지 않은 경우에만 배열에 추가 -> 3. 메서드 추가 if (isUnique(number)) { lottoNumbers[count] = number; count++; // while문은 변수 증가 시켜줘야 한다 } } // 4. 로또 번호 반환 return Arrays.sort(lottoNumbers); }(2) LottoGeneratarMain 클래스의 배열에서 정렬할 경우 안되는 이유public static void main(String[] args) { LottoGenerator generatorObj = new LottoGenerator(); int[] lottoNumbers = Arrays.sort(generatorObj.generate()); 그렇다면 오름차순으로 정렬하기 위해서 어떻게 해야 하나요?
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
함수와 재귀함수
함수와 재귀 함수 강의도 13분 15초에 영상이 끝나는데 16분 51초까지 검은 화면이 나옵니다! 수정하면 좋을 것 같아요~강의 잘 듣고 있습니다~ 2회차때 합격하도록 열심히 공부하겠습니다. 함께 힘내주세요!!
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
synchronized 오류
@Service public class StockService { private final StockRepository stockRepository; public StockService(StockRepository stockRepository) { this.stockRepository = stockRepository; } // @Transactional public synchronized void decrease(Long id, Long quantity) { // Stock 조회 Stock stock = stockRepository.findById(id) .orElseThrow(EntityNotFoundException::new); // 재고 감소 stock.decrease(quantity); // 갱신된 값을 저장 // stockRepository.save(stock); } }안녕하십니까! 제가 알기로는 영속성 컨텍스트의 변경감지 기술로 인해서 별도의 save 메서드를 실행하지 않아도 값이 update 되는 걸로 알고있는데 그럴 경우 @Transactional를 제거하면 영속성 컨텍스트로 관리하지 않기 때문에 테스트를 진행하면 오류가 발생하고있습니다ㅠㅠ 혹시 제가 잘못된 지식을 갖고있는건가요?ㅠ
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
단일 테이블 전략 조회 성능 임계점
단일 테이블 전략에서 단일 테이블에 모든 것을 저장하기 때문에 테이블이 비대해지고, 이에 따라 조회 성능에 문제가 발생할 수 있다고 하는데임계점을 넘는 경우에만 그렇다 라고 말씀하십니다.일반적으로 임계점은 어느정도인지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실무 백엔드, 프론트엔드 관하여 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니요2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의의 실습은 Spring + Thymeleaf 를 이용하여 구현하는데, 실제 현업에서는 백엔드와 프론트엔드가 분리되어 각각 개발할 수도 있는데, 타임리프는 JSP와 같이 프론트단에 서버 관련 로직이 연동되어 분리하여 각각 분담하기엔 어려움이나 프론트의 불만이 있지 않을까 생각되는데, 실제 현업에서는 어떻게 진행하는지 궁금합니다. (서버 개발자가 프론트까지 담당하면 어려움이 없겠으나, 분리되어 프로젝트를 진행하는 경우에도 타임리프를 사용하는지 궁금합니다. )(JSP는 공부한적 있지만 실제 현업에서 사용해본적은 없습니다)
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
영상이 살짝 잘린 거 같네요.
상속과 생성자 강의 살짝 영상이 잘린 거 같습니다.(3:25)이론 강의는 PDF로 제공해 주시는 걸로 알고 있는데 강의 자료는 제공하지 않나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오류가 납니다!!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]WARNING: A Java agent has been loaded dynamically (C:\grade\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.16\4a451ee6484abac3a498df0f3b33ed00a6fced4d\byte-buddy-agent-1.14.16.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 releaseJava HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 이런식으로 오류나는데 어떻게 해결해야 할까요??
-
미해결김영한의 실전 자바 - 중급 2편
ObejctBox 질문
안녕하세요.ObjectBox를 활용하여 int와 String을 받는 과정에서 중복은 해결하였으나 잘못된 타입을 넣을 경우에 대한 예시 들었던 부분에서 질문입니다.integerBox.set("문자100"); Integer result = (Integer)integerBox.get();이 부분에서 문의드릴게 실제 컴파일을 하기 전까지는 ide에서 에러라고 인식을 못하던데 왜 그런걸까요 ? get()을 통해 리턴되는게 object 타입이어도 실제 객체가 Integer 객체가 아니면 저렇게 (Integer)로 캐스트 하는 것 부터가 문제가 되야 할 거 같아서요. 감사합니다.
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
예시코드는 webflux의 이점보단 webclient의 이점 아닌가요?
for문 5번 도는데, resttemplate은 blocking / webclient은 non-blocking 이라 결과가 달라진 것 같아서요 보내는게 non-blocking 이면 mvc도 결과가 동일 했을 것 같아요
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
중간중간 나오는 강사님의 노트도 볼 수 있나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]중간중간 나오는 강사님의 노트도 혹시 볼 수 있나요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
컨트롤러에서 어설픈 엔티티를 생성하면 안 되는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 해당 부분에서 컨트롤러에서 어설픈 엔티티를 생성하지 말라고 하셨습니다그 말인 즉슨 컨트롤러에서 준영속 엔티티를 생성해서 운영을 지양하라는 말씀이신데 이유가 궁금합니다준영속 상태의 엔티티는 불안정하니 가급적 자제해야한다는 이유일까요?아니면 단순 서비스 계층에 수정할 파라메터만 "명확"하게 던지는 게 좋은 설계이므로 그렇게 말씀하신 건가요?
-
미해결김영한의 실전 자바 - 기본편
2. 기본형과 참조형 수업자료 오타있어서 제보합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]2. 기본형과 참조형 수업자료 오타있어서 제보합니다.2. 기본형과 참조형의 pdf 파일 기준 p.5에 두 번째 실행결과에 a=10, b=20이라고 되어있는데 둘의 값이 바뀌어야 해서 제보드립니다.감사합니다.
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
반복문+조건문 문제 풀이
반복문+조건문 문제풀이예제2번에서 2의 배수이거나 3의 배수에서 5의배수와 6의 배수를 빼라는걸로 이해했습니다. 그래서 풀이는2의 배수 : 10123의 배수 : 674더하면 1686 이 되고이중 6의 배수는 두 번 들어갔으니6의 배수 : 337을 빼면 1349가 됩니다.그 후 && 뒷항 조건을 적용하면1349 에서 6의배수(337) 을 한 번 더 빼고5의 배수중에서 숫자 5는 2와 3의 배수에 포함되지 않기 때문에10의 배수 : 20215의 배수 : 134를 또 빼고 30의 배수는 한번만 뺏어야 되었는데 총 3번이 빠졌으니 30의 배수를 두 번 더하여 나온 값이 810 입니다. 혹시 풀이가 이게 맞을까요 ?1012+674-337-337-202-134+67+67 = 810다른 간단한 풀이도 있는지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
메서드의 메모리 상 위치
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상속 강의를 듣던 중 궁금증이 생겨 남깁니다.상속 관계에 있는 두 클래스가 있을 때, 자식 클래스의 인스턴스를 생성하면 부모 클래스의 인스턴스가 같이 메모리 상에 생성된다고 하셨습니다. 그런데 이전에 자바 메모리 구조 강의에서는 메서드는 Heap 영역이 아닌 클래스 영역에 존재하는 것이고 메서드 호출 시 클래스 영역으로 찾아가 메서드를 호출한다고 이해했습니다. 상속 관계에 있는 두 클래스의 메서드가 메모리 상에서 어떤 방식으로 호출되는 것인지 궁금합니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 데이터베이스 설정 질문 드립니다.
안녕하세요 다른 강의랑 병행하며 들으려고 하는중입니다! 다른 강의도 h2 데이터베이스를 사용하는데 , h2 데이터베이스를 두 강의에서 각각 사용하려면 어떻게 설정해야할지 모르겠습니다. 알려주시면 감사드리겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 안돼요,,,ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이건 오류인가요,,,? 자바도 17버전인데,,,잘 모르겠어요 ㅠ
-
미해결김영한의 실전 자바 - 중급 1편
Try-with-resources 질문
안녕하세요. Try-with-resource 질문 있습니다.강의에서는 disconnect() 메서드에서 예외가 발생하지 않도록 하여서 @Override close()에서 throws Exception 구문을 지웠는데요.만약에 disconnect()메서드에서 예외가 발생하도록 작성했다면 close() throws Exception으로 예외를 던졌을 때 try-with-resource 쪽(호출한 쪽)에서는 sendMessage() 메서드에서 throws Exception으로 처리를 따로 해야 하나 ? 그리고 직접 예외를 잡으려면 어떻게 해야 하나요 ? 왠지 try 구문 안에서 발생한 거니 자연스레 catch 구문으로 넘어갈거 같기도 해서요. 확인 부탁드립니다.@Override public void close() throws Exception { System.out.println("NetworkClientV5.cloase"); disconnect(); //만약 예외 발생시, try-catch로 여기서 직접 잡아주지 않으면 }public void sendMessage(String data){ String address = "http://example.com"; try (NetworkClientV5 client = new NetworkClientV5(address)){ client.initError(data); client.connect(); client.send(data); //AutoClosable 이니 여기서 나갈 때 예외가 발생 -> 이럴 떈 sendMessage 쪽에서 sendMessage(String data) throws Exception 처리 해야 하나 ? 만약 그 에러를 직접 잡으려고 try catch 구문을 쓰려면 어떻게 해야 하나 } catch(Exception e){ System.out.println("예외 확인 = " + e.getMessage()); throw e; }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost연결이 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]HelloSpringApplication.java의 main 실행 했을 때 사진과 같은 화면이 뜹니다. locallhot는 연결이안됩니다.JDK는 17.0.11.9 버전으로 다운받았습니다.어디가 잘못된걸까요..