inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

일대N 컬렉션 페치 조인시의 페이징이 '불가능'?

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요. 영한님은 강의에서 컬렉션 페치 조인으로는 페이징이 불가능하다고 말씀하셨는데요, 빌드와 실행까지는 어쨌든 되니 불가능하다는 표현은 좀 안맞지 않을까요? 다만, 매우 위험하고 의도한 결과를 못낼 수 있기 때문에 사실상 쓰지 않는 것이 좋다 정도로 이해하는 게 적절한 것 같아서 소견을 말씀드리고 여쭙습니다. _ _;; 읽어 주셔서 감사합니다.

  • java
  • JPA
  • spring
  • spring-boot
최성규 댓글 1 좋아요 0 조회수 397

formatter 추천

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

안녕하세요 영한님. 이번에 java를 쓰면서 느낀 것인데 python 같은 경우 "black 이나 yapf"와 같은 코딩을 할때 가독성이 좋게 줄 바꿈을 맞춰주는 formatter 같은게 있던데 java도 혹시 영한님 쓰시는 좋은 formatter 추천해주실수 있나요? 감사합니다.

  • formatter
  • MVC
  • java
  • spring
fightnyy 댓글 1 좋아요 0 조회수 219

stateless 하게 설계 예시에 대한 부연설명 부탁드립니다.

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요! 강의 잘 듣고 있습니다. 마지막 부분에 stateless 한 설계가 중요하다고 하면서 높은 트래픽이 예상될 경우에 정적 페이지를 첫 페이지로 설정하기도 한다는 케이스를 소개해주셨는데, 이 예시가 트래픽, stateless 와 어떻게 상관이 있는 건지 조금 더 부연설명 해주실 수 있을까요?

  • network
전은정 댓글 2 좋아요 1 조회수 348

패킷모아보내기 실습 보내는 갯수가 500으로 안떨어지는경우

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

더미클라이언트 수를 500으로 설정하고 실행 했을때 500으로 유지되지는 않고 267 정도로 계속 보내게 됩니다. 프로세스 메모리는 일정하게 유지가 되구요. 이런경우 프로세스 성능에 따라서 모아보내기가 적게 자주 보내게 될수도있나요? 예를 들어 while에서 패킷을 모아보내는 수가 500이 안차더라도 보낼수 있는건가요?

  • unity
  • C#
  • network
용감한 너구리 댓글 1 좋아요 1 조회수 432

null 값 부분에서 오류를 못 찾겠습니다.

해결됨

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

안녕하세요~~!! 김영한 선생님!! 강의를 듣다가 해결이 되지 않아서 질문 하나 드리겠습니다. <질문> ItemRepository 부분의 save 메소드 안에 Item.getId() == null이 "Operator '==' cannot be applied to 'long', 'null'"오류 메세지가 나옵니다. 항상 좋은 강의로 보답 해주셔서 감사합니다. 코로나 조심하시고 다음 강의 기대하겠습니다.

  • spring
  • spring-boot
  • 웹앱
  • java
  • JPA
안지환 댓글 1 좋아요 1 조회수 1767

내부 클래스 질문

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 선생님! 바쁘신데 이곳저곳 여러번 질문드려 죄송합니다. 강의를 복습하다가 정말 궁금한게 생겨서요.. Request Dto는 인자로 받아야돼서 테스트같은 곳에서 직접 생성해야하 되기 때문에 static으로 선언했고, Response Dto 같은 경우에는 그럴 필요가 없기 때문에 non-static으로 선언했다고 이해했습니다. 그런데 이런 경고가 뜨길래 찾아봤더니 이펙티브 자바에서 메모리 문제나 gc 문제 떄문에 바깥 인스턴스에 접근할 일이 없다면 무조건 static을 붙여서 정적멤버 클래스로 만들라고 되어있습니다. 실제 프로젝트나 실무에서는 reponse dto처럼 외부에서 직접 생성할 일이 없어도 static inner class로 선언해야 될까요? 정말 감사합니다.

  • spring
  • JPA
  • java
  • spring-boot
현집 댓글 2 좋아요 1 조회수 654

@Transactional을 Service에서 처리하는 이유?

미해결

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

@Transact ional의 사용 이유에 대해서는 이해가 되었습니다만, 왜 굳이 Service에서 그 처리를 해주는지 이유를 모르겠습니다. 개인적인 생각으로는 직접적으로 em을 사용하는 Repository에서 해주는 게 더 적절하지 않을까 싶습니다. Service에서 사용해야만 하는 특별한 이유가 있을까요?

  • spring-boot
  • spring
  • JPA
  • java
  • 웹앱
akakakakak 댓글 1 좋아요 7 조회수 1042

상속관계매핑 Item 클래스의 abstract 관련질문입니다.

미해결

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

선생님 다른 학생 질문의 답에서 다형성 개념을 생각하면 3가지 방법다 ITEM 클래스를 abstract로 생성하는 것이 맞다라고 하셨는데 TABLE_PER_CLASS 옵션만 abstract 를 했을때 ITEM 테이블이 생성되지 않고 나머지 옵션들은 생성이되는데 그냥 그러려니 넘어가면 될까요? 혹시나 해서 album, movie, book 클래스에서 @Entity를 지우고 실행해봐도 결과는 동일 했습니다.

  • 상속관계매핑
  • JPA
  • java
임도현 댓글 1 좋아요 2 조회수 411

interface default 메소드 질문입니다.

미해결

더 자바, Java 8

Foo, Bar 인터페이스에서 printUppercase 라는 default 메소드로 각각 정의후 DefaultFoo에서 Foo, Bar를 implements 하였는데 영상처럼 컴파일 오류가 나지않습니다. 현재 자바 11을 사용중인데 자바11에서는 인터페이스의 디폴트 메소드의 사용법? 이 재정의 된건가요?

  • java
m3252 댓글 5 좋아요 1 조회수 486

post 관련 질문드립니다.

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요! 항상 좋은 강의 감사드립니다 ^^ post 와 put 신규등록을 하는 경우가 헷갈리는데요 클라이언트가 등록될 리소스의 uri를 모르는 상황이라고 설명해주셨는데 예를들어 회원을 가입할 때 회원 id는 유니크 해야되고 사용자가 회원 id를 입력을 합니다 ( ex: testid) 클라이언트는 본인이 입력한 id이기 때문에 알고 있습니다. /member/testid 그리고 거꾸로 파일을 등록할땐 (ex : test.jpg)를 등록하면 서버에는 동일한 파일명이 존재할 수 있으니 식별자를 알 수 없고등록후에 test.jpg와 매핑된 아이디를 전달받아야 됩니다. 이런 상황이라면 예시와 똑같은 업무지만 post와 put 을 거꾸로 적용하면 될까요?

  • network
jung 댓글 1 좋아요 0 조회수 168

Action Invoke 질문입니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

action 에 이벤트를 할당하고 Invoke 해서 실행시키는데 이게 그냥 실행시키는거랑 어떤 차이가 있을까요? Action<PacketSession , IPacket> action = null ; if ( _handler . TryGetValue (p. Protocol , out action)) { //1 action. Invoke (session , p) ; //2 action(session , p) ; }

  • C#
  • unity
  • network
302302 댓글 2 좋아요 1 조회수 3794

일반조인 m,t 와 패치조인 m

미해결

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

https://www.inflearn.com/questions/164472 위의 질문 그대로 입니다! 답변에 궁금한 점이 생겨서 질문 드립니다. === 영한님 답변 === 이렇게 하면 쿼리는 같지만 결과를 분리해서 받게 됩니다. fetch join을 사용하면 객체 하나로 깔끔한 객체 그래프를 받을 수 있습니다. fetch join의 핵심은 성능 최적화 + 객체 그래프 입니다. ====== 결과를 분리해서 받게 된다는게 어떻게 받는다는 건지 이해가 잘 안갑니다. 패치조인을 사용하면 일반조인을 사용하면 이렇게 리스트 안에 받는 타입이 Member로 받느냐 Object로 받느냐라는 차이가 있는데 이걸 말씀하시는 걸까요? 추가로 이렇게 각자 받는거보다 객체 그래프로 받았을때의 장점이 더 있을까요?

  • JPA
  • java
jsungmin6 댓글 1 좋아요 4 조회수 289

DELETE의 응답 메시지 포맷

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요. 강의 항상 잘 듣고 있습니다. DELTE의 경우에 응답 메시지를 어떻게 해야 하는지가 강의에 나오지 않은 것 같아서요. 찾아보니 200,202,204 정도가 가능하다고 나와있는데(https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/DELETE), 실무에서는 상태코드와 응답메시지를 어떤 식으로 처리하는 경우가 많은지 궁금합니다!

  • network
클라우드 댓글 1 좋아요 1 조회수 234

데이터 중심 테이블 설계와 객체 중심의 테이블 설계

미해결

실전! 스프링 데이터 JPA

안녕하세요 김영한 스승님. JPA를 공부하다가 갑자기 궁금한게 생겨서 질문드립니다. 객체 중심의 테이블 설계와 데이터 중심의 테이블 설계가 차이점이 어떤것인가요? RDB도 객체처럼 테이블을 만들 수 있는데 그러면 굳이 객체중심으로 테이블을 설계할 필요가 없는거 아닌가요? 이 부분이 너무 헷갈려서 질문드렸습니다...

  • java
  • spring
  • spring-boot
  • JPA
레알이 댓글 1 좋아요 0 조회수 458

Test method 접근제어자 질문드립니다.

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요. 강의를 듣던 중 테스트 메소드 접근 제어자에 궁금한점이 생겨서 질문드립니다. [회원 리포지토리 테스트] @Test public void save() { ... } [서비스 테스트] @Test void join() { ... } 이전 회원 리포지토리 테스트 코드에서는 위 코드와 같이 public로 선언했었지만, 이번 강의에서 Create Test 단축키로 생성한 테스트 메소드들은 public가 아닌 default로 선언되었습니다. default로 메소드를 선언했을 때 테스트를 수행하는데 문제가 없었는데 강의 코드에서 public으로 메소드를 선언하는 이유는 무엇인가요?

  • java
  • spring
  • spring-boot
  • MVC
도호 댓글 1 좋아요 0 조회수 482

연관관계에 대한 질문이 있습니다!

해결됨

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

안녕하세요 강사님 jpa시리즈를 다 보고 기초를 다시 보고있는 도중 궁금한 점이 생겨서 질문 남겨봅니다! 우선 Member 와 OrderItem이라는 엔티티가 있을때, 만약 양방향 관계를 설정한다면 @Entity public class Member { @OneToMany(mappedby = member) privte List<Order> orders = new ArrayList<>(); } @Entity public class Order { @ManyToOne @JoinColumn("member_id") private Member member; } 이런식으로 설계가 되겠는데, 강사님 께서는 Member에서 Orders를 갖고 있는게 좋은 설계가 아니라고 생각한다는 말씀을 하셨는데(실전예제2- 09:00), 그럼 Member엔티티에서 Order에 대한 연관관계를 지우면 Order에서 Member로 가는 단방향 연관관계만 남아있는데, 저는 여기서 Order에서 Member에 대한 연관 관계가 필요한지 궁금하더라고요. Orders를 가져올때 회원 아이디가 일치하는지 조회하는 정도만 한다면, 연관 관계를 빼고 @Entity public class Order { private Long memberId; } 이런식으로 갖고 있어도 되는건지 궁금하더라고요.. 아님 필요 없더라도 무조건 Member에 대한 연관관계를 넣어주는 게 맞는건지 모르겠습니다 ..!

  • java
  • JPA
단무지 댓글 1 좋아요 0 조회수 290

Optional 사용 방법에 대해서 질문드립니다.

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

1) Optional<Member> result = memberRepository.findByName(member.getName()); 2) Member result = memberRepository.findByName(member.getName()).get(); 1. 위 코드에서 2번의 방법보다 1번 같은 사용법을 권장한다고 하셨습니다. 1) memberRepository.findByName(member.getName()) .ifPresent( m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); 2) Optional<Member> result = memberRepository.findByName(member.getName()); result.ifPresent( m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); 2. 또한 바로 위의 코드에서도 2번의 방법보다 1번의 방법 사용을 권장한다고 말씀하셨습니다. 위 방법들이 권장되는 이유가 궁금합니다. 또 권장되는 Optional 사용법 같은게 따로 문서로 존재하는건가요?

  • java
  • spring
  • spring-boot
  • MVC
도호 댓글 1 좋아요 0 조회수 367

IP가 틀려서그런지 유니티에서 서버로 접속이 안되네요.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

첫번째 사진이 서버 IP로그구요. 밑에 사진이 유니티 클라이언트 IP로그 입니다. 유니티에서 서버로 접속할때 OnConnectCompleted Fail: ConnectionRefused 로그가 뜨면서 플레이어 케릭터가 생성이 안되는 현상이 발생했습니다. 서버에 연결이 실패한 원인을 찾아보니 서버쪽에선 아이피가 :::1인반면 유니티쪽은 127.부터 시작하는 아이피로 서로 틀리더라고요. 서버쪽 로그를 보니 더미 클라에서 모아 보내기가 계속 찍히는거 보면 문제는 없어보입니다만, 이 경우 어떻게 해야될까요? 잘 부탁드립니다 ^^

  • 서버연결
  • C#
  • unity
  • network
iamparkc 댓글 5 좋아요 1 조회수 1295

변경 감지와 cascade 질문

미해결

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

안녕하세요, 공부하다 cascade 옵션과 변경 감지에 혼동되는 점이 있어 질문 드립니다. 주문 생성 메서드(order)의 경우, Order -> OrderItem / Order -> Delivery가 Cascade 설정이 되어 있어 orderRepository.save(order)만 하더라도 연관된 OrderItem과 Delivery가 각각 Insert된다고 이해했습니다.(remove, detach 등등 모두 동일) 주문 취소 메서드(cancelOrder)를 보면 orderId를 통해 order를 조회하고(조회된 order는 영속 상태), order.cancel()시 orderItem.cancel()과 그 안의 item.addStock()을 통해 변경감지가 되어 order와 item의 update 쿼리가 실행된다고 하셨습니다. 여기서 제가 헷갈리는 부분은 주문 취소시 item이 변경감지가 되어 update쿼리가 실행되는 부분인데요. item.addStock()을 통해 item의 update 쿼리가 실행됐다는 것은 item이 영속성 컨텍스트에 영속상태가 되었다는 것을 뜻하는데, 단순히 order를 orderRepository로 조회를 하게 되면 order와 연관된 모든 엔티티들이 영속상태가 되는 것인가요? (order 한 개 조회 시-> orderItem... 영속-> item... 영속) 위의 과정이 맞다면 연관된 여러 엔티티의 변경감지는 cascade 설정과는 무관하게 엔티티 조회 시 관련된 엔티티는 모두 영속화 되는 것인지 궁금합니다. (order -> orderItem -> item 의 변경감지를 위해 order->orderItem cascade.ALL 설정 & orderItem->item cascade.ALL 설정이 되어야 orderRepository를 통해 order 조회 시 하위 엔티티들이 모두 영속화 되는 것인가?) 만일 연관관계가 있는 엔티티들이 cascade설정이 되어있어야 모두 영속성 상태로 변하는 것이라면 order->orderItem에는 cascade.ALL 설정이 있으나 orderitem->item에는 cascade.ALL 설정이 없는데 order -> orderItem -> item 순으로 변경감지가 되는지 궁금합니다. 질문이 좀 길어졌는데요 변경감지와 cascade 두 개념에 혼동이 와서... 위 질문에 답변해주시면 감사하겠습니다!

  • JPA
  • spring
  • 웹앱
  • java
  • spring-boot
윤빵꾸 댓글 1 좋아요 2 조회수 489

인기 태그

인프런 TOP Writers

주간 인기글