묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
중첩 객체 조회 관련
안녕하세요! querydsl 강의를 보고 실무에 적용 하던 중 중첩 객체에 대해서 한번의 join query로 만들 수 없을지 궁금하여 질문 드립니다. 만약, A -< B -< C (-< 은 one to many 를 의미) 관계를 가진 객체가 있다고 할 때selectFrom(A) .leftJoin(A.B) .leftJoin(A.B.C) .where(A.id.eq(1)) .fetch();위 코드의 반환 값이 아래와 같기를 희망 하는데요A = { id: 1, Bs: [ { id : 1, Cs : [ { id: 1 } ] } ] }oneToMany를 조인 하게 되면, SQL은 many의 row를 반환하게 되면서, A객체가 B의 갯수만큼 반환 되게 됩니다.group by등을 통해 해결 하려 했을 때는, oneToMany 컬렉션들이 모두 불러와지지 않는것을 확인 하였고, group by를 활용 하지 않고, 모든 row를 불러와서 aggregate하는 방식으로 코드를 구현 했습니다. 매번 쿼리문을 작성할 때 마다 aggregate하는 코드를 작성하는 것은 옳지 않을 것 같아, 혹시 더 나은 방법이 있을지 문의 드립니다. 혹시 중첩 쿼리를 join 으로 모두 찾아 객체에서 맵핑하려는 시도가 bad practice라면 쿼리 숫자가 늘어나더라도, findByAId, findByBId 등의 방식으로 여러번 쿼리를 하고, 중간에 캐시 레이어를 두는것이 더 나을지도 궁금 합니다. 항상 좋은 강의 감사합니다 :)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
한글 함수 깨짐 현상
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 있는데 해당 글 참고해서 설정 변경했는데 실행 자체가 안됩니다.3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예https://www.inflearn.com/questions/664806/intelli-j-%ED%95%9C%EA%B8%80-%EA%B9%A8%EC%A7%90위의 글 참고해서 설정 변경해 보았지만 첨부한 사진과 같이 실행이 되지 않습니다.스프링 부트 3.0 버전이상이라 jdk 17 버전 사용하고 있는 상황입니다. Execution failed for task ':test'.> There were failing tests. See the report at: file:///D:/인프런/hello-spring/build/reports/tests/test/index.html* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.
-
미해결스프링 시큐리티
GrantedAuthority의 역할 + 추가 질문
GrantedAuthority를 AccountContext 생성자 매개변수로 넘기게 되는데 이 클래스의 역할이 정확이 무엇인가요? 그냥 권한정보를 넘기기 위한 규격(?) 같은거라고 생각해도 될까요?+SecurityFilterChain으로 실습 진행중입니다.궁금한점은 영상에서는 CustomUserDetailsService를 명시적으로 등록해주던데최신버전에선 이렇게만 구현하면@Bean AuthenticationManager authenticationManager(AuthenticationConfiguration authConfiguration) throws Exception { return authConfiguration.getAuthenticationManager(); }어떤 방식으로 CustomUserDetailsService가 자동으로 등록되는 건가요?스프링시큐리티가 UserDetailsService를 구현한 클래스를 자동으로 찾아서 등록해주는 걸까요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
추가로 동시성 해결하는 방법
이번 강의에서 나온 방법말고도 자바에서 동시성을 해결하는 방법 중에 쓰레드 로컬을 사용하는 방법도 있는 것으로 압니다. 근데 이번 재고감소 로직에서 적용해보려고 하니까 코드작성이 잘 안되더라구요. 이번 강의예제에서와 같이 계속 변수값이 변하는 상황에서는 쓰레드 로컬을 적용하기 어려운건가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
콘솔에서 한글 꺠짐문제는 어떻게 해아하나요?
인텔리제이 콘솔창 한글 깨지는 문제 어떻게 해결하셨나요? 구글에 나온대로 설정 들어가서 UTF-8로 다 바꾸는것도 해보고 vm들어가서 추가하는것도 해봤는데 해도 안되네요 구지 한글로 안해도 되긴하는데 먼가 그냥 뒤에서 콘솔창에 한글로 계속 쓰실것 같아서 해결어떻게 하셨나 궁금합니다!-Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
게시판 프로젝트 배포시 질문!
게시판 프로젝트 배포를 하려고 데이터베이스 쿼리를 입력하다보니 이렇게 강의속 간단한 db말고 여러개로 연결되어있는 db들을 작성할때도 다 작성해야하는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
static폴더에 index.html이 실행이 안돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.실행엔 문제가 없는데...
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
손코딩 이후 IDE에 코드 작성하는 방법
안녕하세요! 강의 잘 듣고 있는 학생입니다.선생님 저 같은 경우 코딩 테스트 문제를 풀때, 컴퓨터(IDE)에 바로 작성하지 않고 노트에 solution 부분의 코드를 전부 손코딩으로 작성 해본 뒤에 컴퓨터로 작성합니다. 이런 방식이 코딩테스트 시험 볼때는 시간제한이 있으니,, 비효율적인지 궁금합니다. (현재는 코드가 짧아서 상관 없다고 생각하지만, 어려운 문제들.. 즉, 코드가 길어 지는 문제들을 풀때 문제가 되지 않을까? 생각하여 이렇게 질문을 남깁니다) 이렇게 하게 된 이유는, 펜으로 작성해보지 않고 바로 코드를 타이핑 하려니 생각이 잘 떠오르지 않아 이렇게 하게 되었습니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
intelliJ 실행속도
안녕하세요. 현재 강사님 강의 내용을 intellij에 직접 쳐보고 결과를 출력하고 있습니다.그러나 한 번 실행할 때마다, 콘솔 화면에 출력되는 속도가 현저히 느립니다.여러가지 원인이 있을 것 같지만 노트북 용량에 영향 받는 걸까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
선생님 질문 있습니다.
이번 강의에서 질문이 있는 부분은 get /user 부분의 controller에서 User에 대한 리스트를 그냥 반환하지 않고 UserResponse라는 DTO를 통해 리스트를 반환하신 이유에 대해 궁금합니다. 스프링부트 프레임워크에서 강제하는 부분인건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName만 오류가 뜨는데 이유를 모르겠습니다..
==============================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른거는 다 잘되는데 findByName만 오류가 뜨는데 이유를 모르겠습니다..
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
선생님 자바에 대한 깊은 이해를 갖고자 하는데 추천해주실만한 책이 있을까요?
안녕하세요 선생님! 프론트엔드를 공부하다 백엔드도 하고자 하여 공부를 하고 있는 대학생입니다. 자바를 좀 더 깊이 있게 공부를 하고자하는데 추천해주실만한 책이나 강의가 있으실까요? (선생님의 자바 강의가 있다면 좋겠지만 없으셔서 질문드리게 되었습니다) 또한, 자바를 어떻게 공부하면 좋을지에 대한 방향도 추천해주시면 감사하겠습니다!마지막으로 개발관련 서적 중 실력 향상에 도움이 되셨던 서적이 있으신가요?
-
미해결실전! 스프링 데이터 JPA
@Transactional
spring jpa에 @Transactional을 사용해야하나요???
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
EntityManager 질문드립니다
엔티티 매니저는 쓰레드간 공유를 하면 안된다고 하셨는데 Spring Data JPA를 사용할때는 save 같은 메서드별로 엔티티매니저가 생성되고 소멸되는것인지 아니면 요청 쓰레드 별로 하나의 엔티티매니저가 생성되는것인지 궁금합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
배포 질문!!
안녕하세요 강의 잘 듣고 있습니다!!강의에서 배포를 위해 Java, git, mysql 이렇게 세가지 프로그램을 설치했는데 만약 데이터베이스를 oracle을 사용한다면 mysql이 아닌 oracle을 설치하면 되는걸까요?? 그리고 스프링부트의 dependencies를 통해 여러가지 라이브러리들이 자동으로 설치되는데 jar파일을 EC2에서 실행하면 자동으로 똑같이 라이브러리들(mybatis, websocket 등등)이 설치되는게 맞는걸까요?? 한번 시도해보고 싶어서 질문 드립니다!!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
generatedValue에서 sequence type 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.만약 allocationSize = 50 으로 잡고 애플리케이션을 올렸는데요 값자기 그 id(pk) 값이 1~2 올라가다가 서버가 다운되서 다시 올리면 53인가 부터 시작이잖아요? 그럼 2~52 까지의 pk 값은 안쓰고 계속 올라가는게 맞을까요?실무에서 궁금합니다.
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
undo 메소드 작업중에서
예를 들어 LightOffCommand 클래스에서 Light를 가지고 있는데 undo() {light.on();}이렇게 사용하지 않는건 단일책임 원칙때문에 그런건가요?
-
미해결예제로 공부하는 Java 100 문제풀이 Part.1
static 메서드를 사용하는 이유
static 메서드를 사용하는 이유->객체 생성없이 해당 함수(메서드)를 호출해서 사용가능원래는 클래스를 사용하려면 객체를 생성해서 객체로 하여금 공장(class) 내의 기능(함수)를 사용하는 것이 내용이 맞을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 생성 오류 문의드립니다.
안녕하세요 아래 링크의 문의글과 같은 상황이라 문의드립니다.build 생성 오류 질문드립니다...(윈도우)https://www.inflearn.com/questions/268449/build-%EC%83%9D%EC%84%B1-%EC%98%A4%EB%A5%98-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4-%EC%9C%88%EB%8F%84%EC%9A%B0 인텔리제이에서는 정상적으로 컴파일 되는 상태입니다.인텔리제이를 종료 한 상태에서 CMD를 통해 gradle을 build하면 아래와 같은 오류 메세지가 나오는 상태입니다.댓글에 안내해주신 대로 프로젝트를 새로 생성 후 바로 CMD에서 컴파일을 했는데도 오류 메세지가 동일해서 문의드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA를 적용시에 서비스 로직 간의 순환 참조 상황에 대해서 질문이 있습니다...
안녕하세요 김영한 강사님의 강의를 듣고 개인 프로젝트에 JPA를 정말 잘 사용하고 있습니다.JPA를 사용해서 개발을 하다 보니 JPA를 사용하기 전과 다르게 확실히 객체의 역할을 분리해서 만들 수 있었고 동일 트랜잭션 내에서 영속성 엔티티 객체를 활용하여 DB 통신을 최소화할 수 있었습니다.그러나 동일한 트랜잭션 내에서 모든 비즈니스 로직을 끝내도록 설계를 하다 보니 서비스 클래스 내에서 다른 서비스 클래스를 사용해야 하는 상황이 빈번히 생겼습니다.그렇게 무턱대고 서비스 클래스에서 DI를 남용하다 하여 서비스 클래스 간 순환 참조 상황이 벌어지게 되었습니다.문제를 해결하기 위해 spirng DI 대해서 공부를 하였고 설계가 잘못되었다는 걸 알게 되어 2가지 해결 방법을 생각해 봤습니다.첫번째 해결방법:컨트롤러를 거쳐서 순차적으로 서비스 로직을 수행하는 방식이었지만JPA를 사용하기 때문에 동일한 트랜잭션 내에서 처리하지 않으면 영속성이 해제되어 다시 DB를 참조해야 하는 상황일뿐더러컨트롤러는 http 파라미터를 검증하고 사용자에게 원하는 정보만 전달한다는 컨트롤러 객체 역할의 기준이 모호해질 것 같았습니다.컨트롤러에서 트랜잭션을 걸 수 있도록 설정하는 방법을 알아봤지만 위험성이 존재한다고 들었습니다.두번째 해결방법:조회만 하는 Service 클래스,현재 데이터를 검증하여 저장, 변경하는 객체를 실행하는 클래스 등입출력을 동시에 하는 서비스 객체를 분리하거나검증하는 과정의 로직을 따로 분리하여 단 방향으로 흐르게 재설계 했습니다.분리하게 되면서 검증 클래스 같은 경우 추후에 여러 서비스에서 다양한 검증 로직이 필요하게 되면 인터페이스화하여 공통 검증 기능으로 사용할 수 있는 다형성까지 생각해 볼 수 있게 될 것 같아서 현재 이 방법으로 리팩토링하였습니다.아직 실무를 겪어 보지 못한 취준생이라 제가 해결 한 두번째 방법이 맞는 건지 불안합니다.아니면 에초에 설계가 잘못되어 다시 구성을 해야 하는 상황일까요??