inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

application.yml이 아닌 application.properties 쓰시는 분은 이거 쓰시면 됩니다!

미해결

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

스프링 생성시 버전이 높아 application.properties로 생성되시는 분은 yml쓰셔도 되고 아님 properties 파일에 밑에 복붙하시면 되세요! # H2 설정 spring.datasource.url = jdbc:h2:tcp://localhost/~/jpashop spring.datasource.username = sa spring.datasource.password = spring.datasource.driver-class-name = org . h2 . Driver # JPA 설정 spring.jpa.hibernate.ddl-auto = create spring.jpa.properties.hibernate.format_sql = true # Log 설정 logging.level.org.hibernate.SQL = debug logging.level.org.hibernate.type = trace

  • 웹앱
  • spring-boot
  • java
  • JPA
  • spring
박상호 댓글 5 좋아요 12 조회수 751

JPQL Concat 질문

미해결

실전! Querydsl

안녕하세요 선생님! 수업 잘 듣고있습니다 : ) ! 질문이 있습니다. concat 문자열 합치기 처리는 JPQL 문에서 처리 하지 않고 entity column 값을 그대로 가져와서 자바에서도 합치는 처리가 가능할 것 같은데 보통은 어떻게 처리하는게 좋을까요? 저는 공부하면서 뭔가 JPA가 객체지향 SQL을 사용하기 때문에 가능한 데이터를 entity 에 맞춰 그대로 값을 가져오고 자바에서 객체지향처럼 조작해서 처리하는게 것이 재사용성이 있어서 좋다고 생각했는데 실무 경험이 많이 없어서 어떤 기준을 잡아야 할지 헷갈리네요!

  • JPA
  • java
댓글 1 좋아요 0 조회수 559

id값을 Long 타입으로 지정하는 이유가 따로 있나요??

해결됨

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

강의를 보면서 계속 궁금했던 건데 id 값을 int가 아닌 Long 타입으로 하는 이유가 뭔지 궁금합니다! 

  • spring
  • java
  • spring-boot
  • JPA
  • 웹앱
나 좀 도와줘요 댓글 2 좋아요 1 조회수 3406

@ModelAttribute 질문 있습니다.

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요 영한님 강의 정말 잘 보고 있습니다!! 다름이 아니라 MemberController의 addForm 메서드 파라미터를 @ModelAttribute("member") Member member 위와 같이 받으신 이유가 단순히 아래와 같이 Model을 파라미터로 받아서 직접 추가하는 것과 같은 효과를 내기 때문인가요? @GetMapping("/add") public String addForm(Model model) { model.addAttribute("member", new Member()); return "members/addMemberForm"; }

  • spring
  • MVC
springbom 댓글 2 좋아요 4 조회수 500

Enum 관련 질문드립니다.

미해결

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

아무래도JPA 보다는 DB쪽 질문에 가까운거같은데 이해해주시면 감사합니다. Enum이라는게 결국 어떤 카테고리의 역할을 할때가 많은거같은데요 이런경우 보통 인덱스를 걸어주는게 맞나요? db이론상으론 카디널리티가 낮은경우 인덱스를 걸면 효과가 적다고 해서 좀 혼란스럽더라구요. 그리고 강의중간에 말씀하신걸로 보면 그냥 String 형태로 저장해도 된다고 하고 차이가 적다구 하셨긴했는데 카테고리 역할을 할때 의 컬럼이 조건식도 그렇고 많이 쓰이는거 같아서 String비교보단 int비교가 빠르지 않나? 라는 생각이 좀 들었어서 혹시 int값을 주고 다른테이블로 외래키를 연결해서 id값과 String값을 주고 이어준다던가 이럴 필요는 없다고 생각해도 될까요?

  • java
  • JPA
Jimin Park 댓글 1 좋아요 2 조회수 531

패치조인 사용이유 라고 해야할지 ??

미해결

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

예를들어 N:1 관계에서 Member에 team 필드를 Lazy로 설정한 상태일 경우 만약 비즈니스 적으로 대부분이 Member에 관한것만 조회하고 아주 가끔 Member랑 Team을 같이 조회해야 하는경우가 있다면 이럴때 fetch조인을 쓰면 될까요?

  • java
  • JPA
원석나 댓글 2 좋아요 1 조회수 250

데이터뻥튀기, n+1 질문..

미해결

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

1) N+1 문제는 1의 쿼리를날렷을시 N방의 쿼리가 나가는것이고 , 데이터 뻥튀기는 중복값이 나오는 거라고 이해하고있는데요 이둘은 다른 의미라고 봐도되는건가요? 2)N+1 문제에서 맴버와, 팀 LAZY 설정, N:1 관계라고 한다면요~ 초기셋팅 Team teamA = new Team (); teamA. setName ( "teamA" ); em. persist (teamA); Team teamB = new Team (); teamB. setName ( "teamB" ); em. persist (teamB); Member member = new Member (); member. setName ( " 김 A" ); member. changeTeam (teamA); Member member5 = new Member (); member5. setName ( " 홍 A" ); member5. changeTeam (teamA); Member member1 = new Member (); member1. setName ( " 정 B" ); member1. changeTeam (teamB); Member member2 = new Member (); member2. setName ( " 진 B" ); member2. changeTeam (teamB); em. persist (member); em. persist (member1); em. persist (member2); em. persist (member5); List<Member> resultList = em.createQuery("select m from Member m join m.team", Member.class).getResultList(); for (Member memberOne : resultList) { System.out.println(memberOne.getTeam().getName()); } 맴버에관한 쿼리 1방. 팀에대한 쿼리 두방이 나갈거같습니다.. 이런경우가 N+1 이고 데이터 뻥튀기는 없다. 라고 봐도될까요? 3) 이번엔 2번문제의 반대인데요~ 조건은같구요 List<Team> result = em.createQuery("select t from Team t join t.members", Team.class).getResultList(); for (Team team : result) { System.out.println("team = " + team.getName()); for(Member members : team.getMembers()){ System.out.println("members = " + members.getName()); } } 이런경우는 팀에관한 쿼리 한방, 맴버의 이름 2방이 나가니, N+1 이고 , 데이터 뻥튀기가 발생한다가 맞을까요 몇일째 N+1과 데이터 뻥튀기에대해 강의도 다시듣고 , 찾아보고하지만 머리 뇌리속에 안박히네요..

  • java
  • JPA
더콰니 댓글 1 좋아요 1 조회수 342

V5 에서 질문이있습니다.

미해결

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

여기서 oi.order.id in 을사용하셨는데욤 이곳은 배치사이즈가 안먹히나요?~~ 배치사이즈설정도 in 쿼리로 나가는걸로 이해를해서요~ List<OrderItemQueryDto> orderItems = em.createQuery( "select new jpabook.jpashop.repository.order.query.OrderItemQueryDto " + " ( oi.order.id, i.name, oi.orderPrice, oi.count )" + "from OrderItem oi " + " join oi.item i " + " where oi.order.id in :orderIds ", OrderItemQueryDto.class) .setParameter("orderIds", orderIds) .getResultList();

  • JPA
  • spring-boot
  • java
  • spring
woojin126 댓글 2 좋아요 3 조회수 484

라디오 버튼에 기본값 설정

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

라디오 버튼의 경우 모두 선택하지 않는 null을 사용할 경우는 거의 없어 보입니다. 따라서 처음 addForm을 표시할 때 부터 제일 앞의 도서가 선택되어있는 상태로 만들고 싶은데 이 경우는 Thymeleaf에서 어떻게 할 수 있을까요? [x] 도서 [ ] 음식 [ ] 기타

  • 라디오버튼
  • spring
  • 기본값
  • MVC
YONGHYUN LEE 댓글 3 좋아요 2 조회수 1188

@CreationTimestamp와 @CreatedDate의 선택

미해결

실전! 스프링 데이터 JPA

저는 평소에 실무에서 @CreationTimestamp를 썼는데요. 이게 하이버네이트에서 제공하는 건줄도 모르고 그냥 막 사용했는데, 이번에 영한님 강의에서 @CreatedDate를 알게되어 둘을 비교해보니 @CreationTimestamp 는 하이버네이트 제공 @CreatedDate 는 스프링 프레임워크 제공 인 것 같더라고요 @CreationTimestamp는 JPA의 표준이 아니라 하이버네이트에서 제공하는 거라 아무래도 나중에 그럴일은 없겠지만, JPA 구현체를 하이버네이트 말고 딴거로 바꾸면 못쓴다는 단점이 있을 것 같긴 한데, @CreationTimestamp를 쓰면 @EnableJpaAuditing 같은거 안 해줘도 돼서 편하더라고요. 실무에서는 어떤 방식이 더 선호되나요?

  • @CreatedTimestamp
  • @CreatedDate
  • JPA
  • java
  • spring-boot
  • spring
제이크서 댓글 1 좋아요 2 조회수 5665

강사님 외람된 질문입니다만 ...

미해결

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

너무 실례되는 질문인걸 알지만 도저히 못찾겠어서 그러는데요 unInjection 옵션을 켜기 전에는 다 코드상에서 jpql을 인식해서 자동완성을 좀 편하게 했는데요 이번에 따라 치다가 unInjection 한 후로 모든 파일에 jpql이 그냥 일반 string으로 인식되더라구요 ㅠㅠ 이거 코드 하나하나 injection 하는거 말고 다 같이 injection 하는거 없을까요 ?

  • JPA
  • java
원석나 댓글 2 좋아요 0 조회수 530

강의 관련 질문이 있습니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

항상 좋은 강의 감사드립니다. 1. Member loginMember = memberRepository .findById(memberId) ; if (loginMember == null ) { return "home" ; } 이부분 로직에서 궁금한것이 쿠키가 이미 발급되었다는것은 로그인 입력정보와 일치하는 회원이 회원저장소에 존재한다는것을 전제로 하는데 왜 loginMember과 null인지 한번더 검증하는지 이해가 가질 않습니다. 2. cookie만료와 관련해서 addcookie를 여러번 하면 결국 오버랩되어서 마지막으로 set-cookie로 보낸 쿠키만이 저장되는 것인가요?? 3. loginhome에서 로그아웃을 왜 post메서드로 보내는지 이해가 가질 않습니다. 단지 maxage가 0인 쿠키만 보내고 홈화면으로 리다이렉트로 get하면 되는것 아닌가요???

  • spring
  • MVC
rere 댓글 2 좋아요 1 조회수 1312

test 코드

미해결

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

OrderService의 order 메소드에 대한 단위 테스트를 작성해보려는 중에 질문이 생겨서 문의드립니다! orderRepository에서 save(order)를 하려면 Order객체를 만들어줘야하는데 Order 객체를 만드는게 Member, Delivery, OrderItem 이게 필요하니깐 테스트 코드에서 일일이 생성해서 만들어준 다음에 when(orderRepository.findOne(orderId)).thenReturn(만든 order객체) 요런식으로 해줘야 할까요? 아래는 그냥 제가 끄적여 본건데 단위테스트가 독립적인 테스트라 해서 Mockito를 이용해 짜본건데 맞게 했는지 잘 모르겠습니다... OrderService의 order 메소드에 대한 단위 테스트는 어떤식으로 짜면 좋을지 조언 부탁드립니다...! @Mock private OrderRepository orderRepository; @InjectMocks private OrderService orderService; @Mock private MemberRepository memberRepository; @Mock private ItemRepository itemRepository; @Test public void 상품_주문(){ //given Member member = createMember(); Item item = createBook("시골JPA", 10000, 10); int orderCount = 2; //when when(memberRepository.findOne(member.getId())).thenReturn(member); when(itemRepository.findOne(item.getId())).thenReturn(item); doNothing().when(orderRepository).save(any(Order.class)); Long orderId = orderService.order(member.getId(), item.getId(), orderCount); //then //when(orderRepository.findOne(orderId)).thenReturn() Order getOrder = orderRepository.findOne(orderId); assertEquals("상품 주문시 상태는 ORDER", OrderStatus.ORDER, getOrder.getStatus()); assertEquals("주문한 상품 종류 수가 정확해야 한다.",1, getOrder.getOrderItems().size()); assertEquals("주문 가격은 가격 * 수량이다.", 10000 * 2, getOrder.getTotalPrice()); assertEquals("주문 수량만큼 재고가 줄어야 한다.",8, item.getStockQuantity()); }

  • spring-boot
  • spring
  • 웹앱
  • java
  • JPA
김나연 댓글 1 좋아요 0 조회수 217

필드에 있는 컬렉션을 초기화 시키는 이유가 뭔가요?

미해결

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

List<Order> orders = new ArrayList<>(); 이렇게 컬렉션만 초기화 해주는 이유가 궁금합니다. 단순히 NPE 방지를 위해서인가요? 그렇다면 왜 래퍼 클래스는 초기화 하지 않나요?

  • java
  • spring-boot
  • 웹앱
  • JPA
  • spring
Gareeo 댓글 1 좋아요 1 조회수 1953

java 객체, enum

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요~ modelattribute로 값을 넘길때, Map, enum, java object 등 다양한 방법으로 예시를 보여주셨는데요 어떤 경우에 어떤 type을 쓰는지 궁금합니다.

  • MVC
  • spring
조용한 바닷가재 댓글 1 좋아요 3 조회수 264

강의 업로드 일정 질문있습니다.

미해결

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

영한님 강의 매우 잘 듣고 있습니다. 9월까지 모든 강의를 다 들을 것 같은데 혹시 "스프링 DB 접근 기술"과 "스프링 부트"는 언제 쯤 나오나요? 감사합니다.

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

인터셉터 대신 필터를 사용해야되는 특별한 상황이 어떤 상황인지 궁금합니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • 인터셉터
  • 필터
  • MVC
  • spring
펭귄 댓글 1 좋아요 3 조회수 732

미리 사용할 정보를 다음과 같이 구현하면 되는 것인지 궁금합니다!!!

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요 강사님. 항상 좋은 수업 감사드립니다. 다름이 아니라 @ModelAttribute를 사용하면 매번 생성하는 문제가 있다고 하셔서 한번 제 생각대로 구현해봤습니다. 이전 Memory에 사용했던 싱글톤 패턴? 형식으로 DeliverCode 값을 초기화한 List를 가지는 클래스를 구현하고 이를 호출하는 식으로 구현하였는데 이런 방식으로 사용하면 되는것인지 궁금합니다. package hello.itemservice.domain.item ; import java.util.Arrays ; import java.util.List ; public class DeliveryCodesCreate { private static final List<DeliveryCode> deliveryCodes = Arrays. asList ( new DeliveryCode( "FAST" , " 빠른 배송 " ) , new DeliveryCode( "NORMAL" , " 일반 배송 " ) , new DeliveryCode( "SLOW" , " 느린 배송 " ) ) ; public static List<DeliveryCode> getInstance () { return deliveryCodes ; } private DeliveryCodesCreate () { } } @ModelAttribute ( "deliveryCodes" ) public List<DeliveryCode> deliveryCodes () { // List<DeliveryCode> deliveryCodes = new ArrayList<>(); // deliveryCodes.add(new DeliveryCode("FAST", " 빠른 배송 ")); // deliveryCodes.add(new DeliveryCode("NORMAL", " 일반 배송 ")); // deliveryCodes.add(new DeliveryCode("SLOW", " 느린 배송 ")); // return deliveryCodes; return DeliveryCodesCreate. getInstance () ; }

  • MVC
  • spring
최한슬 댓글 1 좋아요 18 조회수 380

이 강의를 다 들은 후 어떤 로드맵을 따라갈까요?

미해결

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

이 강의를 들으며 스프링을 처음 공부해봤습니다. 이 강의를 다 들은 후 [스프링 완전 정복]로드맵을 들을지 [스프링부트와 JPA 완전 정복]을 들을지 고민이 되는데, 추천해주실 수 있나요? 현재 저의 상황을 말씀드리자면 이 강의를 듣기 전 장고로 간단하게 개인 프로젝트를 해본 적이 있습니다. 규모는 크지 않고 간단한 CRUD 정도 해봤습니다. 현재 앱개발 외주를 받았는데, UI를 만드는 사람은 따로 있고 저는 백엔드 서버만 개발하면 됩니다. (외주 개발 기간은 2달 +@ 입니다. 기능은 로그인, 회원가입, 결제.. 등이 있고 택배 어플과 유사한 기능을 하는 앱입니다) 이런 상황을 전체적으로 고려했을 때 어떤 로드맵이 더 좋을까요? 참고로 김영한님의 모든 강의는 이미 구매했습니다.

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

@Valid를 이용하여 BeanValidation과 @InitBinder를 동시에

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

만약 다음과 같이 인풋을 받았다고 가정하겠습니다. @Valid @ModelAttribute ItemDto itemDto 이 경우에, 각 필드에 대한 검증은 ItemDto 내의 @NotBlank, @Max, @Min과 같은 어노테이션으로 해결하고, ObjectError의 경우 ItemDtoValidator를 만들어 Validator를 구현하여 @InitBinder로 등록해두는 건 안되나요..?

  • spring
  • MVC
댓글 3 좋아요 4 조회수 443

인기 태그

인프런 TOP Writers

주간 인기글