묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
출력 로그가 저랑 많이 다른데.. 해결 방법좀 알려주세요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 강의 내용과 달리 테스트를 실행하면 저는 영한님과 다르게 로그가 출력이 되는데요, 이 부분은 어떻게 설정을 하나요? 저도 찾아보고 있는데 아직 찾지 못하여 질문 남깁니다! 저는 Test Result 아래로 페키지도 출력이 안되고 로그도 너무 다르게 출력이되네요.. 강의와 맞추고 싶은데 방법좀 알려주시면 감사하겠습니다!
-
미해결고성능 JPA & Hibernate (High-Performance Java Persistence)
질문 올려도 되는지..?
여기 내용에서 대부분 통합 테스트시 h2 디비 인메모리 기반으로 테스트를 하는게 아니라,,docker 기반 mysql 설치후에 볼륨을 tmpfs 로 마운트한다음에 해도 빠르다는건가요,,?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다를 일대다,다대일로 풀어낼 때 항상 양방향?
링크위 질문의 AI 답변을 보면 다대다를 일대다,다대일로 풀어낼 때 양방향 매핑이 되어야 한다고 하였습니다. 근데 Member나 Product 입장에서 MemberProduct 를 알 필요가 없으면 단방향으로 해도 되지 않나요?
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
NotificationMessage가 필요한 이유 질문
학습중 궁금한 것은 언제든 문의 하세요.질문을 최대한 자세히 남겨주시면 반드시 답변 드리도록 하겠습니다.추가로 알고 싶은 내용도 요청해주시면 강의 자료를 업데이트 해서 제공할 예정입니다.Pub-Sub 모델을 이용한 실시간 알림 part2에 질문이 있습니다 ! package com.example.messagequeue.step2.step2; public class NotificationMessage { private final String message; public NotificationMessage() { message = ""; } public NotificationMessage(String message) { this.message = message; } public String getMessage(){ return message; } }짊여기에서 NotificationMessage DTO를 만들어주셧는데, 뭐 때문에 만드신걸까요 ? 직렬화, 역직렬화와 관련이 있는거 같은데, 잘 이해가 안되네요 ㅎㅎ 답변 주시면 감사드리겠습니다 !
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
joinColumns, inverseJoinColumns
@JoinTable 에서 joinColumns와 inverseJoinColumns 속성은컬럼명을 직접 정하기 위함이고해당 속성들이 없을 때는 컬럼명이 자동으로 설정 되는 것이라고 보면 될까요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
app.host 관련 질문이 있습니다
dev 프로퍼티 파일에 app.host 를 정의하지 않고 dev 환경으로 실행후, 메일을 보낼시 host 값이 http://localhost:8080 으로 어떻게 넣어지는건가요? dev 프로퍼티 파일에 정의가 안되어 있으면 local 프로퍼티 파일을 참조하게 되는것인가요...?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
MySQL 연결 오류
태현님 안녕하세요 좋은 강의 잘 듣고 있습니다. 수강하면서 실습 진행하면서 3번 정도 mysql 연결 오류가 발생해서 gpt를 통해 해결해보려고도 하고 구글링도 해보았지만 근본적인 해결이 안되어 고민 끝에 질문 남깁니다.우선, 문제 상황을 말씀드리면mysql 설치 후 인텔리제이에서 연결도 잘되어 실습을 진행하다 [S1009] !AuthenticationProvider. BadAuthenticationPlugin! 라는 메시지가 뜹니다.mysql 8.0 CLI-Unicode 에 들어가서 초기에 설정한 비밀번호를 입력하면 바로 unicode가 종료되어 진입 조차 불가능합니다.cmd 실행하여 mysql -u root -p 명령을 입력해서 정확한 비밀번호를 입력하면 ERROR 2059 (HY000): Authentication plugin 'auth_gssapi_client' cannot be loaded: ÁöÁ¤µÈ ¸ðµâÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù. 에러 메시지가 뜹니다.최후의 수단으로 mysql 관련 모든 파일 및 프로그램 삭제 후 재설치하여 인텔리제이 연동해서 실습이 정상적으로 진행이 되다가 랩탑을 몇 번 껐다 키면 위의 문제가 반복됩니다. 왜 저런 문제가 발생하고, 어떻게 해야 해결이 가능할까요..?지금까지는 완전 삭제 및 재설치하여 db 테이블 구성을 처음부터 다 다시 하면서 실습을 어떻게든 따라했지만 근본적인 해결책을 찾고 싶어 질문 드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문취소문의
주문취소 부분에 cancel()을 실행하면 왜 db업데이트가 되는지 이해가잘안갑니다 .주문을 저장할때처럼 엔티티매니저에서 persist를 해주어야 commit되는게 아닌가요 ?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
멀티모듈 질문
혹시 강의에 멀티모듈구조 설정하는 방법이 있을까요 ? 하나의 프로젝트에서 무듈별로 나누는 방법은 제공하지 않겠죠 ?
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
목록처리(2)에서 페이지 넘버 버튼을 누르면 표시되는 목록이 10개로 안 나옵니다
위 사진들과 같이 각 페이지에 항목이 10개씩 표시되어야 하는데 페이지 버튼의 숫자대로 표시되고 있습니다.ListConponent.js쪽이 이상한가 싶어서 찾아봐도 뭐가 문제인지 모르겠습니다.혹시 참고 자료 필요하신 게 있으시다면 말씀 부탁드리겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티타입의 의미
안녕하세요. 단어의 의미가 조금 모호한거같아서 질문드립니다.엔티티타입은 @Entity가 붙은 클래스의 타입을 의미하는것인가요? 아니면 @Entity가 붙은 클래스로 만든 객체를 의미하는것인가요?
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
서비스 구동하며 테스트와 디버깅하기 - 1 에서 기동하는 방법
서비스 구동하며 테스트와 디버깅하기 - 1에서 기동하는 방법을 알려주실 수 있을까요?? 강의에서 갑자기 포트번호가 왜 3000으로 설정되어 나오는지도 모르겠고, start.sh로 실행시켜서 localhost:7002로 하면이렇게 나옵니다... /register 이건 어디서 설정하는 건가요?? 대체 뭐가 문제인걸까요..ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa batchsize 관련 문의입니다
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]이해가 잘 되었는 지 확인하고 싶어서 질문 드립니다팀마다 100개의 맴버가 있고 팀이 400개가 있다고 가정하고 다음 명령을 실행 한다면String jpql = "select t from Team t"; List<Team> result = em.createQuery(jpql, Team.class) .setFirstResult(0) .setMaxResults(3) .getResultList();result.forEach(team -> { System.out.println("teamname = " + team.getName() + ", team = " + team); team.getMembers().forEach(member -> { //페치 조인으로 팀과 회원을 함께 조회해서 지연 로딩 발생 안함 System.out.println("-> username = " + member.getName() + ", member = " + member); }); });1.배치 사이즈를 적용하지 않은 경우em.createQuery 실행으로 400개의 팀이 영속성 컨텍스트에 로딩된다스트림에서 팀 내부의 맴버에 접근시 멤버를 영속성 컨텍스트에 로딩 하기위한 쿼리가 날아간다. 이 쿼리는 한 팀당 팀에 소속된 멤버를 로딩한다따라서 1+400개의 쿼리가 날아간다2. 배치 사이즈(100)을 적용한 경우em.createQuery 실행으로 400개의 팀이 영속성 컨텍스트에 로딩된다스트림에서 팀 내부의 멤버에 접근 하면 해당 팀의 멤버가 로딩되지 않은 것을 확인한다영속성 컨텍스에 존재하는, 멤버가 로딩되지 않은 팀들의 id를 배치 사이즈 즉 100개 만큼 수집한다.수집된 팀 ID들을 사용하여 하나의 IN 쿼리를 날려 해당 팀들의 멤버들을 한 번에 로딩한다이후 다른 팀의 getMembers()가 호출되면, 아직 멤버가 로딩되지 않은 팀들의 ID를 다시 수집하여 IN 쿼리를 날리는 과정을 반복한다총 1+4 만큼 쿼리가 날아간다이 시나리오가 정확한지 알고 싶습니다!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트 역할
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 매번 좋은 강의 감사드립니다!영속성 컨텍스트는 메모리 구조인데, 캐시와 버퍼 역할을 모두 한다고 이해해도 될까요?캐시는 자주 사용하는 데이터에 빠르게 접근할 수 있는 속도 향상이 목적이고,버퍼는 입출력을 잠깐 모아두는 임시 저장소 개념입니다.영속성 컨텍스트가 둘 다의 역할을 한다고 볼 수 있을까요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
업로드 파일 보여주기(교재 191~199) 관련 질문
위 그림은 교재 195페이지 내용입니다.localhost:8080으로는 교재의 내용대로 잘 실행이 되었습니다.그래서, 지금은 aws beanstalk에서(localhost:8080이 아니 aws 서버)에서 윗 부분을 실행 시켜볼려고 하니, 3가지에 부딪혔는데...당장 내 서버(aws서버)의 upload폴더는 어디에서 볼 수 있으며,어떻게 upload 폴더에 aaa.jpg를 올리며,'localhost:8080/api/products/view/aaa.jpg 대신에 "beanstalk도메인/api/products/view/내파일이름"으로 위의 사진 처럼 실행시킬 수 있는지위 3가지에 대해서 정중히 질문드립니다.(수정 추가) 지금 aws RDS 의 CRUD는 원활히 이루어지고 있습니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
querydsl QTodo관련 문의
안녕하세요. 강의를 듣다가 QTodo 사용하는 시점에서 문제가 발생하여 문의드립니다. gradle 빌드시점에 QTodo 클래스를 생성하는 것 까진 확인을 하였는데 search1 메소드에서 QTodo를 사용하려고 하니 클래스 인식 자체를 못하고 있습니다.(import도 안됨) 강의 내용상으로 봤을 때 build 디렉토리에서 인위적으로 복사한 것 같진 않은데 해당 클래스를 어떻게 import해서 사용해야 할지 몰라서 문의드립니다. springboot 버전은 3.3.10입니다.
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
todo list 검색 기능 문의
todo list 에서 검색어를 입력하여 검색된 결과를 화면에 출력하려면 어떻게 구현해야 하는지요?예제에는 이런 것이 없는 거 같은데 제가 대충봐서 잘못 이해하고 있는 건가요?전체적인 흐름으로 설명해주시면 감사하겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
쓰기지연 vs batch_size 네트워크 전송 횟수 질문
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 영한님 안녕하세요! 비슷한 질문이 있긴했는데.. AI 인턴 및 다른 답변들과 영한님이 이전 질문글 에서 남겨주신 부분이랑 조금 맞지 않는 부분이 있는 것 같아서 한 번 더 여쭤봅니다..application.yml에서 설정하는spring.jpa.properties.hibernate.jdbc.batch_size 속성 값과쓰기지연저장소의 DB 쿼리 요청 방식이 조금 헷갈리는데요..! 쓰기지연저장소의 경우, 트랜잭션 커밋 시까지 SQL을 모아두었다가, 트랜잭션이 커밋되는 시점에 flush()를 통해 DB에 쿼리를 하는 개념으로 알고 있습니다. 그러면 쿼리가 4개가 쓰기 지연저장소 버퍼에 있다고 할 때, 네트워크 전송은 1번만 이루어지나요? 아니면 4번 이루어지고, 네트워크 전송에서 이점을 얻는게 아닌, 커넥션을 맺는 행위를 1번만 함으로써 성능상 이점을 챙기는 걸까요?spring.jpa.properties.hibernate.jdbc.batch_size의 경우는, 한 번의 네트워크 전송마다 해당 size의 값만큼 쿼리를 보냄으로써, 네트워크 전송 횟수를 줄이는 데 그 목적이 있는 것으로 아는데, 쓰기 지연 저장소가 네트워크 전송을 커밋 시점에 1번으로 줄인다면 굳이 batch_size라는 속성이 필요한가 싶습니다..!각각의 경우에 네트워크 전송이 어떻게 이루어지는 지 알 수 있을까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
Controller / Service 분리
안녕하세요 선생님 강의 잘들었습니다.! 강의 이후 복습 하며 사이드 프로젝트를 하며 성장 하고 있습니다.프로젝트를 하던중 궁금증이 생겨서 블로그 글을 찾아 보았지만 관련된 글을 찾지 못하여 질문을 드립니다.회원 관련된 API = UserController -> UserService의 흐름으로 사용 하였습니다.하지만 User API가 너무 많아져 특정 API를 수정할 때 찾기 어려워졌습니다.그레서 이걸 분리 할수 없을까에 대한 고민이 생겼고 행위에 따라 분리 했습니다. [ Controller 분리 ]검증 관련한 API를 VerficationController으로 모았습니다.VerficationController에서 필요한 자원에 따라 UserService, EventService를 사용 하였습니다. [ 질문 ]1. Controller를 행위에 따라 부분적으로 분리 하여도 괜찮나요?UserController / EventController / VerificationController분리 했을때 통일성이 없다는 느낌이 들어서 고민 입니다. Controller / Service 책임을 어떻게 설정 하시나요? 회원 관련된 요청이면 UserController 회원 로직이면 UserService를 사용 했습니다.하지만 API가 너무 많아 분리를 할때 어떤 기준으로 분리를 해야 할지 모르겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@OneToOne, @OneToMany만 가능한 이유
안녕하세요.강의와 강의 자료를 보는 도중, 강의 자료에 있는 고아객체 - 주의 부분에서, @OneToOne, @OneToMany만 가능한 이유에 대해서는 특별히 설명을 안해주신거 같아서요..혹시 @OneToOne, @OneToMany만 가능한 이유가 무엇인지 알 수 있을까요?감사합니다.