inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

ArrayJson의 dto 관련

미해결

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

안녕하세요! 이번에 처음으로 jpa를 사용해서 토이프로젝트를 하고있습니다. 질문에 앞서서 이런 강의 만들어주셔서 너무 감사합니다 한눈에 쏙들어오고 이해가 됩니다 ㅎㅎ 제가 드릴 질문은 json방식이 Array방식일경우 dto에 자동으로 맵핑이 안되더라구요...어떤방식으로 해야자동맵핑이 될지 궁굼합니다.

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

강사님 락관련 질문있습니다.

해결됨

실전! 스프링 데이터 JPA

강사님 안녕하세요! 강의 잘 보고 있습니다. 실무에서 애플리케이션에서 데이터를 DB로 저장할때 애플리케이션을 사용하는 사용자가 정해져 있기 때문에 딱히 락에 대해서 고민해 본적이 없었습니다. 그러다가 강의를 보면서 문득 든 생각이 인기있는 쇼핑몰에서 트래픽이 몰려서 특정 상품 구입에 여러명이 동시에 구매 버튼을 눌렀을 때 재고 수를 맞추기 위해서 왠지 락이 필요할 것 같다는 생각이 문득 들었습니다. 하지만 락을 사용하면 성능 이슈가 발생한다고 하셨는데, 그렇지만 재고를 정확하게 관리하려면 필요할 것 같기도 하다는 생각이 들었지만 제기준에서는 실무에서는 트랜잭션도 READ_COMMIT레벨에서만 사용했기 때문에 감이 잘 오지는 않습니다. 혹시 락이 적용된 사례를 한두가지 알려주실 수 없을까요? 엉뚱한 질문이지만 답변해주시면 감사하겠습니다

  • java
  • spring-boot
  • JPA
  • spring
갓다귀갓장국 댓글 2 좋아요 4 조회수 728

안녕하세요. 다대다 관계에서 질문 있습니다.

해결됨

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

안녕하세요. 예제에서는 Category에 JoinTable을 설정하고 Item에는 mapped by를 설정해주셨는데요. 그러니까 Category를 연관관계 주인으로 잡아주셨는데, 이거는 혹시 꼭 Category로 잡은 기준이 있는 걸까요?

  • spring
  • spring-boot
  • JPA
  • java
  • 웹앱
koiyeon 댓글 2 좋아요 5 조회수 575

provider 관련 궁금증이 있습니다.

미해결

스프링 핵심 원리 - 기본편

logic() 메서드 호출 시 그때 마다 프로토타입 빈이 생성되어 사용이 되는데 해당 코드를 보면 provider.get() 입니다. 이 경우에는 new PrototypeBean(); 을 호출하는 것과 다른 점이 있을까요? ObjectProvider 같은 경우에는 이외 많은 기능이 있어 사용 하는것이 수긍이 가나 단순히 빈을 해당 라인에서 생성하는 것은 생성자를 호출하는것과 동일한데 provider.get() 코드와 new PrototypeBean(); 코드가 다른점이 있을까요?

  • oop
  • spring
안병찬 댓글 1 좋아요 7 조회수 348

영상 11:00 ~ 11:30 내용 질문입니다.

해결됨

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

OrderRepository에 직접 접근해서 findAll을 호출해서 DTO 객체를 만드는데요. 이메서드에는 @Transactional이 안붙어있어서 엔티티매니저가 메서드 호출이 완료되더라도 1차캐시가 끝나지않고 유지되는데 문제는 @Transactional를 붙일경우 메서드 호출이 끝나면 엔티티 매니저도 같이 종료시켜버리지만, 이 코드에서는 컨트롤러에서 엔티티 매니저를 close()를 명시적으로 호출하지 않는데 이럴경우 문제 없을까요?

  • JPA
  • spring-boot
  • java
  • spring
갓다귀갓장국 댓글 1 좋아요 2 조회수 235

헉 앱개발 면접 때...

미해결

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

질문은 아니지만..정말강의쏙쏙입니다 감사합니다

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

findById() 메소드 관련 질문입니다.

해결됨

스프링 데이터 JPA

기선님의 jpa 강의를 듣고 jpa 를 활용해보기 위한 연습용 프로젝트를 진행하고 있는 중입니다. DB에 데이터가 들어가 있는 상태에서 스프링 데이터 jpa 의 findById() 메소드를 활용해 select 쿼리를 보내봤습니다. 그런데 이상하게도 값이 받아와지지 않아 두번 연속 요청을 보냈더니 그 다음부터는 값을 받아오는데 이게 가능한 일인지 궁금해서 여쭤봅니다 .. 기본적으로 이런 일은 발생하지 않는게 맞고 어디선가 제가 코드를 잘못 작성해놓은거겠죠..? orderDetailRepository 에 findById() 를 재정의 하거나 다른 메서드를 구현해놓지도 않은 상태입니다 .

  • java
  • spring
  • JPA
jaden 댓글 1 좋아요 1 조회수 258

안녕하세요, 선생님. 몇 가지 질문 여쭙겠습니다.

미해결

스프링 핵심 원리 - 기본편

안녕하세요, 김영한 선생님? 강의 내용 중 궁금한 부분이 생겨 질문 드립니다. 첫 째로, DiscountService 라는 static class에서, ` private final Map<String , DiscountPolicy> policyMap ;` 의 Autowired가 동작하는 방식이 Map<String, DiscountPolicy> 라는 데이터 타입을 보고, 스프링이 "아, Map이니까 이에 걸맞게 넣어줘야 하는구나" 라고 인식해서 주입해주는 것인가요? 바꿔 말하면, List, Map 이외에 다른 컬렉션에서도 모두 사용될 수 있나요? 혹은 더 나아가서, 커스텀 클래스에도 사용할 수 있나요? 그 범위가 어디까지인지, 동작 방식이 궁금합니다. 두 번째로, pdf 강의자료 중, "로직 분석" 의, 'discount() 메서드는 discountCode 로..' 부분에서, rateDiscountPolicy가 넘어오면 fixDiscountPolicy 스프링 빈을 찾아서 실행한다고 작성되어 있는데, 이는 rateDiscountPolicy의 오타인가요? 마지막으로, 조금 다른 이야기인데, 11월 중에 출시하실 스프링 웹 MVC의 구체적인 날짜를 혹시 알 수 있을까요? 너무 기대되는 강의라 하루 빨리 듣고싶습니다. :) 항상 강의 잘 보고 있습니다. 감사합니다.

  • oop
  • spring
댓글 1 좋아요 7 조회수 263

Spring의 Bean주입 관련 질문입니다

해결됨

스프링 핵심 원리 - 기본편

안녕하세요 영한님 이번 강의를 듣고 궁금증이 생겨 이렇게 질문드립니다. 1. 첫번째 질문입니다. 평소에 의존성 주입을 할때 의존성을 주입할 객체를 private final로 선언한후에 Lombok의 @RequiredArgsConstructor를 사용하거나 final로 선언된 객체를 생성자를 통하여 받아 주입을 하였습니다. 근데 강의를 듣다보니 영한님같은 경우는 @Autowired를 생성자에 사용하고 계신데 로그상으로 봣을때는 @Autowired가 있고 없고가 차이가 없어 보입니다. 혹시 @Autowired의 사용 유무에 따라서 내부적으로 차이점이 있는건가요? 2. 두번째 질문은 14:40 구간에 스프링 빈저장소 그림을 보다가 문득 생각났는데요 Bean객체가 빈 저장소에 등록되는 순서가 존재하는 걸까요? MemberService의 경우는 MemberRepository의 의존성을 주입 받아야하는데 MemberService가 먼저 빈저장소에 등록되고 이후에 MemberRepository에 등록되는 경우는 MemberService가 생성될때 MemberRepository의 빈정보는 빈 저장소에 없는 상태인데 이럴경우는 어떻게 해당 객체를 생성자를 통하여 주입후 MemberService가 생성되는지 궁금해졌습니다. 그래서 제가 스스로 생각해본 내용은 전체의 빈을 먼저 스캔한후 주입받을 내용이없는 빈을 먼저 빈저장소에 등록후 이후에 주입받을 빈이 있는 객체를 생성하여 빈저장소에 저장한다. 라고 생각도 해보았는데 로그상으로 보면 Creating shared instance of singleton bean 'AClass' Creating shared instance of singleton bean 'BClass' Autowiring by type from bean name 'AClass' via constructor to bean named 'BClass' 이 순서대로 빈이 생성되어 주입되는듯하네요 그래서 또 다른 생각은 SpringMVC같은 경우는 컨트롤러에서 요청된 내용을 reflection을 통하여 해당하는 요청의 메소드를 invoke시키는 것으로 배웠는데 그렇다면 빈들을 먼저 빈 저장소에 저장후에 그 이후에 저장된 빈에서 주입이 안된 객체를 찾아 꺼내고 reflection을 통하여 생성자의 파라미터에 주어진 객체를 저장해줄까 라는 생각도 해보았습니다. 스프링에서는 내부적으로 빈이 어떻게 주입이 되는지가 궁금합니다. ㅎㅎ!

  • spring
  • oop
형짱 댓글 3 좋아요 3 조회수 552

기본키 매핑 전략을 AUTO에서 IDENTITY로 변경 시 고려사항

해결됨

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

안녕하세요. 기본키 매핑 전략을 AUTO에서 IDENTITY로 변경 시 고려해야하는 부분들에 대해 조언을 얻고자 질문드립니다. 현재 저는 MariaDB 10.3.11 version을 사용중이며 엔티티 클래스 개발시 LONG 타입 PK에 기본키 전략을 AUTO로 해왔습니다. 서비스를 오픈 후, 개선 사항들을 확인해보던 중 기본키 전략이 TABLE전략으로 되어있더라구요. (hibernate_sequence 테이블이 생성되어있고 엔티티 수만큼 next_val row가 있으면 TABLE 전략이겠지요..?) 성능 문제 및 여러 이유때문에 모든 엔티티 클래스를 AUTO에서 IDENTITY 전략으로 변경하려 합니다. 그러기 위해, 엔티티 클래스 ID 필드를 IDENTITY로 바꾸고 DB 모든 테이블에 Auto Incerement 속성을 부여하고, 개발 서버에서 테스트한 결과 지금까지는 큰 문제를 발견하지 못했습니다. Id 값이나 필드 속성이 아닌 바꾸는 것이 아니라 크게 문제는 없을 것 같긴해서 운영 환경에서도 변경을 하려는데 지금까지 너무 수월하게(?) 변경이 되어서 좀 걱정이 되더라구요. 그래서 강사님께 엔티티 ID 매핑 전략 변경 시 추가적으로 고려해야하는 부분이 있는지 여쭤보고자 이렇게 질문을 드립니다. 감사합니다.

  • spring
  • spring-boot
  • 웹앱
  • java
  • JPA
이완수 댓글 2 좋아요 0 조회수 288

SpringConfig

해결됨

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

@Autowired지우고 SpringConfig 파일 생성 후 실행해보니 bean이 이미 정의 되어 있다는 식의 오류가 떴습니다. 구글링 해보니 spring boot 2.1 이후로는 bean을 overriding 못하도록 설정되어있다고 하더라고요. application.properties 파일에 spring.main.allow-bean-definition-overriding=true 를 추가하니 작동하긴 하는데, 빈이 오버라이드 될 경우에 무슨 문제점이 발생하나요? 뭔가 문제점이 있으니까 스프링에서 디폴트 설정을 바꾼 것 같은데... 구글링 해도 해결법만 나오고 왜 그런지는 설명이 없네요ㅜㅜ

  • spring
  • spring-boot
  • java
  • MVC
yeon 댓글 5 좋아요 0 조회수 782

final 질문

해결됨

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

15:21 쯤에 MemberRepository를 밖에서 넣어줄 수 있도록 메소드를 하나 생성했는데 똑같은 코드인데 오류가 나네요ㅠㅠ The final field MemberService.memberRepository cannot be assigned final 키워드를 없애면 잘 돌아가긴 하는데 문제가 생기진 않을까요?

  • spring-boot
  • MVC
  • java
  • spring
yeon 댓글 1 좋아요 0 조회수 198

도메인에 대해서..

해결됨

스프링 핵심 원리 - 기본편

"도메인", "도메인모델"이라는 "뜻"과 "설명"이 저에게 아직 와 닫지 않아서 질문드릴게 있는데요!! 제가 이해한 도메인은... 예를들어 회원가입 이라는 소프트웨어를 만든다고 하면 가입, 수정, 탈퇴 등 단위적인 부분들을 도메인이라 부르고, 도메인 모델은... 가입, 수정, 탈퇴 등 기능과 데이터를 함꼐 보여주는 클래스 다이어그램으로 표현하는 부분들이 도메인 모델이라 부르나요? 자세한 설명 부탁드립니다.

  • oop
  • spring
이승환 댓글 1 좋아요 4 조회수 2961

영상 초반에 OrderApp 및 테스트 부분에서 질문 있습니다.

미해결

스프링 핵심 원리 - 기본편

초반에 OrderApp (및 테스트) 에서 궁금한게 있습니다. 1) MemberService의 구현체인 MemberServiceImpl 안의 MemberRepository 2) OrderService의 구현체인 OrderServiceImpl 안의 MemberRepository 1),2) 각각 다른 인스턴스의 MemberRepository를 가지는게 아닌가요? (new 연산으로 인해) memberService.join(member)는 1)의 MemberRepository에 save되는 거고, orderService.createOrder.createOrder()는 2)의 MemberRepository에서 member를 꺼내오는건데, member가 없으므로 npe가 나야하는게 아닌가 싶어서요! (제가 강의 중간에 놓친게 있는건가요 ㅠㅠ)

  • spring
  • oop
kts327 댓글 6 좋아요 9 조회수 589

강사님 파라미터에서 데이터 받는것에 질문 드립니다.

미해결

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

updateItemForm 메소드에서 강사님은 modelattribute로 데이터를 받으셨는데, modelattribute를 안쓰고 그냥 BookForm form으로 데이터를 받아도 잘 수정이되더라구요. 1.modelattribute를 쓰신 이유가 궁금하며, 2. 파라미터로 데이터를 매칭할때 modelattribute를 쓰지 않는 상황에서 파라미터 변수가 form이라는 이름 때문에 매칭되는건지, 아님 Bookform이라는 객체타입를 인식해서 알아서 매핑되는건지 궁금합니다.

  • spring-boot
  • JPA
  • 웹앱
  • java
  • spring
두잇베스트 댓글 4 좋아요 1 조회수 339

Long과 long의 차이는 무엇이고 왜 Long을 쓰신건가요?

해결됨

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

Member클래스의 id 타입과 MemberRepository 인터페이스에 존재하는 findById의 id를 모두 Long으로 작성하셨는데 왜 long을 안쓰시고 Long을 쓰셨는지 궁금합니다.

  • MVC
  • spring-boot
  • java
  • spring
SEAOTTER 댓글 1 좋아요 2 조회수 1214

private final 에서 final의 역할...

미해결

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

안녕하세요. 제목과 같습니다. final의 역할이 궁금합니다!

  • java
  • MVC
  • spring-boot
  • spring
기쁜 흰동가리 댓글 2 좋아요 2 조회수 539

findByName() 테스트 오류

해결됨

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

@Test public void findbyName() { Member member1= new Member(); member1.setName("spring1"); repository.save(member1); Member member2= new Member(); member1.setName("spring2"); repository.save(member2); Member res = repository.findByName("spring1").get(); assertThat(res).isEqualTo(member1); } 코드에 이상이 있는 것 같지는 않은데... java.lang.NullPointerException이 뜨네요ㅠㅠ 다른 테스트들은 잘 돌아갑니다. MemoryMemberRepository.java 일부 @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); }

  • java
  • spring-boot
  • spring
  • MVC
yeon 댓글 3 좋아요 1 조회수 590

Validation 이 적용이 잘 되지 않습니다.

미해결

스프링 웹 MVC

안녕하세요 기선님 언제나 좋은 강의 너무 감사드립니다! 최신버전 부트를 사용하고 있어서 @Valid 어노테이션을 사용하기위해 의존성은 추가했습니다. 그런데 Event 의 limit 프로퍼티에 @Min(0) 을 추가했고, mock으로 -10을 넘기는데 BindingResult 에서 에러로 잡지 못하고 그대로 넘겨주는데 제가 뭘 잘못한걸까요 ㅠㅠ 작성한 코드는 다음과 같습니다 테스트코드 @Test void createEventModel () throws Exception { mockMvc . perform ( post ( "/eventsModel" ) . param ( "name" , "event1" ) . param ( "limit" , "-10" )) . andDo ( print ()) . andExpect ( status () . isOk ()) ; } 핸들러 @PostMapping ( "/eventsModel" ) @ResponseBody public Event createEventModel ( @Valid @ModelAttribute Event event , BindingResult bindingResult ){ if ( bindingResult . hasErrors ()) bindingResult . getAllErrors () . stream () . forEach ( e -> System . out . println ( e . toString ())) ; Event event1 = new Event () ; event1 . setId ( 10 ) ; event1 . setName ( event . getName ()) ; event1 . setLimit ( event . getLimit ()) ; return event1 ; } 이벤트에 @Min 은 추가했습니다 @Min ( 0 ) private Integer limit ; 다음에서 테스트를 수행해도 hasErrors()로 걸리질 않습니다..

  • MVC
  • java
  • spring
jaden 댓글 3 좋아요 0 조회수 421

Order 엔티티 setter에 대해서 질문드립니다.

미해결

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

강사님께서 되도록 setter 메소드를 생성하지 말라고 하셨는데 createOrder 메소드에서 편의 메소드를 제외하고, setStatus, setOrderDate를 통해서 값을 설정하였습니다. 이 강의는 setter는 열었지만 , 되도록이면 status와 orderdate는 order 객체를 생성할시 생성자로 값 설정해주면 좋다는 의미신가요?

  • JPA
  • 웹앱
  • java
  • spring-boot
  • spring
두잇베스트 댓글 1 좋아요 2 조회수 270

인기 태그

인프런 TOP Writers

주간 인기글