inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

dslContext 작성 시 fetchGroups 이렇게 작성해도 될까요?

해결됨

실전 jOOQ! Type Safe SQL with Java

fun findActorFilmography(searchOption: ActorFilmographySearchOption): List<ActorFilmography> { val actorListMap = dslContext.select( ACTOR, FILM, ).from(ACTOR) .join(FILM_ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .join(FILM).on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .where( containsIfNotBlank(ACTOR.FIRST_NAME.concat(" ").concat(ACTOR.LAST_NAME), searchOption.actorName), containsIfNotBlank(FILM.TITLE, searchOption.filmTitle), ) // 이 부분!! .fetchGroups( { record -> record[ACTOR.name, Actor::class.java] }, { record -> record[FILM.name, Film::class.java] } ) return actorListMap.entries .map { entry -> ActorFilmography(entry.key, entry.value) } } private fun containsIfNotBlank(field: Field<String?>, inputValue: String?): Condition { if (inputValue.isNullOrBlank()) { return DSL.noCondition() } return field.likeRegex(inputValue) } alias을 사용하지 않고, name으로 추출해봤더니 데이터가 정상적으로 잘 나와서요!! 혹시나 예외 케이스도 있을 수 있을 것 같아 질문합니다!

  • java
  • sql
  • spring-boot
  • jooq
  • dsl
chhong 댓글 6 좋아요 2 조회수 697

44강) grep으로 임시 비밀번호가 안뜨는 경우

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

sudo cat /var/log/mysqld.log | grep "temporary password” 이걸로 수정해서 진행해보세요! 출처) https://www.fedoralinux.or.kr/forums/topic/21405

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
학습중입니다 댓글 2 좋아요 0 조회수 180

서버간의 인증에 Oauth활용

미해결

스프링 시큐리티 OAuth2

안녕하세요...! 클라이언트단에서 로그인을 통한 OAuth가 아닌 서버간의 통신에 인증을 위해 OAuth를 활용하고 싶은데 이때에는 그럼 WAS01(클라이언트1, 리소스서버1) , WAS02(리소스서버2) , 인가서버로 구성해서 클라이언트1이 인가서버로 토큰 요청 클라이언트1이 받은 access token을 셋팅해서 RestTemplate을 통해 WAS02의 특정 api 호출 WAS02에서 클라이언트 자격 증명 WAS01로 응답 제공 => 이렇게 해야하는건가 구성을 생각하고 있는데, 한대의 서버에 클라이언트와 리소스서버를 같이두고 이렇게 구성하는게 맞는 방향일까요? 그리고 인가서버를 꼭 다른 포트로 띄워야하는지도 궁금합니다...!

  • java
  • spring
  • spring-boot
  • oauth
kanghyojung 댓글 1 좋아요 0 조회수 412

update with dto 질문

해결됨

실전 jOOQ! Type Safe SQL with Java

안녕하세요 강사님 update, delete를 통한 데이터 수정, 삭제 강의를 듣는 도중 이상한 점이 있는것 같아 질문드립니다. update with dao 설명 중 var firstname과 var lastname의 반환값이 Filed<String>이 된다는 설명(약 7분정도)을 해주셨고 값이 없을때는 무시가 된다고 하셨는데, 7분 33초쯤에 로그를 아래 제가 첨부한 사진과 같이 나옵니다. last_name이 TTTTT로 되어있습니다. 편집상의 오류인지 로그 출력이 왜 저런지 의문이 들어 질문드립니다.

  • java
  • sql
  • spring-boot
  • jooq
  • dsl
sw 댓글 1 좋아요 1 조회수 283

회원 상속전략

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요 일정 부분을 공유하는 회원 엔티티를 설계할 때의 상속전략 vs 분리가 궁금합니다. 민원인, 직원 이렇게 2종류가 있고 아이디, 비밀번호, 사번 등이 동일하고 직원은 여기서 몇개만 추가된다고 가정한다면 엔티티를 따로 분리하는게 아닌 공통속성 엔티티를 상속해서 만들어도 괜찮을까요? 몇일을 고민해도 답이 쉽게 나오지 않네요ㅜㅜ

  • java
  • jpa
tjddnjs2598 댓글 1 좋아요 0 조회수 142

mysql 질문이요!

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

저는 Developer Default가 없는데 그냥 server only로 해도 상관없을까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
김병곤 댓글 1 좋아요 0 조회수 224

재생속도 질문이요

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 재생속도가 같은 강의여도 재생속도 최대치가 2배속에서 3배속, 3배속에서 2배속으로 자꾸 변경되던데 고정할 수 있는 방법이 있을까요?!

  • java
  • 객체지향
Chanmi LEE 댓글 1 좋아요 0 조회수 570

@PostMapping("/order") 에서 @RequestParam 대신 @ModelAttribute 사용하려면

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 강의에서 사용하신 코드를 이거에서 @PostMapping("/order") public String createOrder(@RequestParam("itemId") Long itemId, @RequestParam("memberId") Long memberId, @RequestParam("quantity") int quantity) { orderService.order(memberId, itemId, quantity); return "redirect:/"; } 이렇게 ModelAttribute 를 사용해서 변경하고 싶은데 값을 조회해보니까 testForm 값이 안들어가게 되는데 이러한 방식이 왜 불가능한지 알고 싶습니다. @PostMapping("/order") public String createOrder(@ModelAttribute TestForm testForm) { orderService.order(testForm.getMemberId(), testForm.getItemId(), testForm.getQuantity()); return "redirect:/"; } TestForm 의 필드입니다. public class TestForm { private Long memberId; private Long itemId; private int quantity; } 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
따뜻한 당나귀 댓글 1 좋아요 0 조회수 310

자바 프로그램 실행 강의 첫부분인데 no usage 라는게 떴어요..

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 그냥 클래스 만든것밖에 없는데 저게 안사라지네요 뭘까요ㅜ 저 텍스트를 클릭해서 환경설정을 누르면 아래와 같이 나옵니다ㅜㅜ

  • java
  • 객체지향
Chanmi LEE 댓글 1 좋아요 0 조회수 237

GPG 체크 오류

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

만약 GPG체크오류가 계속 해서 뜬다면 이것을 시도해보세요 다운로드한 패키지들을 dnf 명령어를 사용하여 설치합니다. 먼저, 패키지들을 다운로드합니다: wget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-client-8.0.37-1.el9.x86_64.rpm wget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-client-plugins-8.0.37-1.el9.x86_64.rpm wget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-common-8.0.37-1.el9.x86_64.rpm wget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-icu-data-files-8.0.37-1.el9.x86_64.rpm wget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-libs-8.0.37-1.el9.x86_64.rpm wget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-server-8.0.37-1.el9.x86_64.rpm dnf 명령어를 사용하여 GPG 체크 없이 패키지를 설치합니다: sudo dnf install ./mysql-community-client-8.0.37-1.el9.x86_64.rpm --nogpgcheck sudo dnf install ./mysql-community-client-plugins-8.0.37-1.el9.x86_64.rpm --nogpgcheck sudo dnf install ./mysql-community-common-8.0.37-1.el9.x86_64.rpm --nogpgcheck sudo dnf install ./mysql-community-icu-data-files-8.0.37-1.el9.x86_64.rpm --nogpgcheck sudo dnf install ./mysql-community-libs-8.0.37-1.el9.x86_64.rpm --nogpgcheck sudo dnf install ./mysql-community-server-8.0.37-1.el9.x86_64.rpm --nogpgcheck MySQL 서비스 시작 및 상태 확인 sudo systemctl start mysqld sudo systemctl status mysqld 이렇게 하면 해결 되는것 같아요 저도 엄청 꼬였는데 이 코드면 해결되네요

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
대기업취준생 댓글 4 좋아요 1 조회수 608

R2DBC 환경에서 jOOQ generate 된 Dao를 사용할 수 있는 방법이 있을까요?

해결됨

실전 jOOQ! Type Safe SQL with Java

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; }

  • java
  • sql
  • spring-boot
  • jooq
  • dsl
이찬형 댓글 3 좋아요 2 조회수 1275

컨트롤러에서 Authentication이 null 일 때

미해결

스프링 시큐리티 OAuth2

"/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 을 바인딩 받으실 수 있을겁니다.

  • java
  • spring
  • spring-boot
  • oauth
땃쥐 댓글 1 좋아요 0 조회수 263

섹션 4. Lotto 문제 오름차순 정렬

미해결

김영한의 실전 자바 - 중급 1편

안녕하세요. 섹션 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()); 그렇다면 오름차순으로 정렬하기 위해서 어떻게 해야 하나요?

  • java
  • 객체지향
김미림 댓글 1 좋아요 0 조회수 178

함수와 재귀함수

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

함수와 재귀 함수 강의도 13분 15초에 영상이 끝나는데 16분 51초까지 검은 화면이 나옵니다! 수정하면 좋을 것 같아요~ 강의 잘 듣고 있습니다~ 2회차때 합격하도록 열심히 공부하겠습니다. 함께 힘내주세요!!

  • python
  • java
  • c
  • 정보처리기사
정처기합격할거야 댓글 2 좋아요 0 조회수 315

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를 제거하면 영속성 컨텍스트로 관리하지 않기 때문에 테스트를 진행하면 오류가 발생하고있습니다ㅠㅠ 혹시 제가 잘못된 지식을 갖고있는건가요?ㅠ

  • java
  • spring
  • 동시성
도콩 댓글 2 좋아요 0 조회수 268

단일 테이블 전략 조회 성능 임계점

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

단일 테이블 전략에서 단일 테이블에 모든 것을 저장하기 때문에 테이블이 비대해지고, 이에 따라 조회 성능에 문제가 발생할 수 있다고 하는데 임계점을 넘는 경우에만 그렇다 라고 말씀하십니다. 일반적으로 임계점은 어느정도인지 궁금합니다.

  • java
  • jpa
WOOKI 댓글 1 좋아요 0 조회수 260

실무 백엔드, 프론트엔드 관하여 질문드립니다

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니요 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의의 실습은 Spring + Thymeleaf 를 이용하여 구현하는데, 실제 현업에서는 백엔드와 프론트엔드가 분리되어 각각 개발할 수도 있는데, 타임리프는 JSP와 같이 프론트단에 서버 관련 로직이 연동되어 분리하여 각각 분담하기엔 어려움이나 프론트의 불만이 있지 않을까 생각되는데, 실제 현업에서는 어떻게 진행하는지 궁금합니다. (서버 개발자가 프론트까지 담당하면 어려움이 없겠으나, 분리되어 프로젝트를 진행하는 경우에도 타임리프를 사용하는지 궁금합니다. ) (JSP는 공부한적 있지만 실제 현업에서 사용해본적은 없습니다)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 281

영상이 살짝 잘린 거 같네요.

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

상속과 생성자 강의 살짝 영상이 잘린 거 같습니다.(3:25) 이론 강의는 PDF로 제공해 주시는 걸로 알고 있는데 강의 자료는 제공하지 않나요?

  • python
  • java
  • c
  • 정보처리기사
seoljn 댓글 2 좋아요 0 조회수 371

오류가 납니다!!

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 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 warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 이런식으로 오류나는데 어떻게 해결해야 할까요??

  • java
  • spring
  • mvc
  • spring-boot
이주영 댓글 1 좋아요 0 조회수 507

ObejctBox 질문

미해결

김영한의 실전 자바 - 중급 2편

안녕하세요. ObjectBox를 활용하여 int와 String을 받는 과정에서 중복은 해결하였으나 잘못된 타입을 넣을 경우에 대한 예시 들었던 부분에서 질문입니다. integerBox.set("문자100"); Integer result = (Integer)integerBox.get(); 이 부분에서 문의드릴게 실제 컴파일을 하기 전까지는 ide에서 에러라고 인식을 못하던데 왜 그런걸까요 ? get()을 통해 리턴되는게 object 타입이어도 실제 객체가 Integer 객체가 아니면 저렇게 (Integer)로 캐스트 하는 것 부터가 문제가 되야 할 거 같아서요. 감사합니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
인프린 댓글 2 좋아요 0 조회수 306

인기 태그

인프런 TOP Writers

주간 인기글