inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Order 생성 메서드

해결됨

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

안녕하세요 Order 생성 메서드를 setter없이 작성해봤는데 올바르게 작성했는지 궁금해서 질문드립니다. 강의코드 /** * 생성 메서드 */ public static Order createOrder (Member member , Delivery delivery , OrderItem... orderItems) { Order order = new Order() ; order.setMember(member) ; order.setDelivery(delivery) ; for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem) ; } order.setStatus(OrderStatus. ORDER ) ; order.setOrderDate(LocalDateTime. now ()) ; return order ; } 제가 작성한 setter를 사용하지 않은 생성 메서드 public Order (Member member , Delivery delivery , LocalDateTime orderDate , OrderStatus status) { this . member = member ; this . delivery = delivery ; this . orderDate = orderDate ; this . status = status ; } public static Order createOrder (Member member , Delivery delivery , OrderItem... orderItems) { Order order = new Order(member , delivery , LocalDateTime. now () , OrderStatus. ORDER ) ; for (OrderItem orderItem : orderItems) { order. orderItems .add(orderItem) ; } return order ; } 이렇게 작성했습니다. 올바르게 작성했는지 궁금합니다.

  • spring
  • JPA
  • spring-boot
  • java
  • 웹앱
조윤호 댓글 1 좋아요 0 조회수 343

itemRepository.save(item); 부분에서 궁금한 것이 있습니다 !

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 영한님, 서포터즈님! 강의 너무너무 잘 보고있습니다. 다름이 아니라 itemRepository.save(item) 부분에서 궁금한게, 영한님은 따로 Item savedItem 이라는 변수를 만들어서 redirectAttributes.addAttribute("itemId", savedItem.getId()) 이렇게 사용하시는데 저는 굳이 변수를 따로 만드는게 아니라, @ModelAttribute Item item 객체를 가지고 redirectAttributes.addAttribute("itemId", item.getId()); 라고 상용해도 되지 않을까? 라는 궁금증이 생겼습니다. 실행은 문제가 없었는데, 문제될 점이 따로 있을까요 ?

  • MVC
  • spring
전병준 댓글 1 좋아요 0 조회수 280

생성자를 통한 주입 테스트 질문

미해결

스프링 핵심 원리 - 기본편

OrderServiceImpl orderService = new OrderServiceImpl(memberRepository, new FixDiscountPolicy()) ; 이렇게 써야 하는데, OrderServiceImpl orderService = new OrderServiceImpl( new MemoryMemberRepository() , new FixDiscountPolicy()) ; 이렇게 써도 실행이 잘 됩니다. 위에서 new MemoryMemberRepository()를 한 후, save까지 지정한 것은 맞지만, OrderServiceImpl 을 new 로 생성하면서 생성자로 new MemoryMemberRepository를 파라미터로 전달하였으니 위에서 직접 save로 생성한 객체가 아니라 새롭게 생성된 MemoryMemberRepository가 전달되는 것 아닌가요? 그러면 널포인트가 터져야할 것 같은데 왜 테스트가 성공하나요..?

  • spring
  • oop
sfdfs 댓글 2 좋아요 0 조회수 317

저도 static 선언부 이해가 안가네요..

미해결

스프링 핵심 원리 - 기본편

안녕하세요. 최근에 어떤분이 질문하신 내용과 답변을 봤는데도 저렇게 선언해서 사용하는 것에 대해서 이해가 안가네요.. static에 대해서는 이해가 가고, 첨부해주신 링크도 다 읽었습니다. 하지만 강의에서 SingletonService 클래스를 작성할때 private static final SingletonService instance = new SingletonService();를 선언하고 사용하는 것에 대해서 흐름이 이해가 가질 않습니다. 메모리에 static 영역에 SingletonService 클래스와 instance라는 변수가 올라가는 것인가요? 만약 올라가던, 안올라가던 상관없이 어떤 맥락으로 자신의 클래스에서 자신의 인스턴스를 만들어서 사용하는지 모르겠습니다. 보통 클래스를 생성하면 다른 곳에서 인스턴스를 생성해 사용하는 것을 많이 봤는데요.. 자신의 클래스 첫줄에 자신을 선언한다라는게 무엇을 뜻하고, 어떻게 사용되는지 어떻게 공부해볼 수 있을까요? 왜 굳이 사용할 곳에서 인스턴스를 생성하는게 아닌 저런 방법이 사용되는지도 모르겠고, 동작 방식이나 그런걸 모르겠습니다. 저게 재귀 그런건가요? 솔직히 전 질문자님도 모르는걸 정리해서 묻기 힘든 모습이셨는데, 저도 그렇네요. 이 부분에 대해 어떻게 해결할 수 있을지 도움좀 부탁드리겠습니다. 감사합니다.

  • spring
  • oop
유진이 댓글 2 좋아요 0 조회수 530

isNotEqualTo, isNotSameAs 두개 같은건가요?

미해결

스프링 핵심 원리 - 기본편

안녕하세요. 이 두개를 구글링 해보니까 실제 값이 주어진 값과 같은지 틀린지라는 말인데, 결국 같은말 아닌가요? `==` 비교도 값만 비교하는 거니까 isEqualTo의 실제 값을 비교하는거랑 같다고 생각이드네요. 근데 만약 두개가 같다면 저렇게 중복되서 존재할 이유가 없다고 생각이 들어서 질문 남기게 됐습니다. 감사합니다.

  • oop
  • spring
유진이 댓글 1 좋아요 4 조회수 553

member는 생성 메서드를 만들지 않은 이유가 있나요?

해결됨

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

member는 생성 메서드를 따로 만들지 않고 그냥 MemberRepository에서 저장, 조회를 했는데 Order와 OrderItem에만 생성 메서드를 만들어줬나요? 단지 단순한 로직(다른 엔티티에서 값을 가져와서 처리하는 비즈리스 로직이 없어서)이라서 Member 엔티티는 생성 메서드를 만들어 주지 않은 건가요?

  • 웹앱
  • JPA
  • spring
  • java
  • spring-boot
조윤호 댓글 1 좋아요 0 조회수 354

update 로직 짤때

미해결

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

위 사진처럼 짜면 put으로 있던 id에 updateParam으로 덮어씌워져서 업데이트 되는거 아닌가요? 테스트도 정상적으로 작동하는데 위에 4줄로 작성하면 더 좋은점이 어떤게 있나요?

  • spring
  • MVC
박훈희 댓글 1 좋아요 0 조회수 354

@Path variable로 Id를 받을 때 궁금증

미해결

실전! 스프링 데이터 JPA

강의를 듣다가 궁금한게 생겼는데요 Id 같은 PK의 경우에 좀 중요한 정보라고 생각을 합니다. 사용자 입장에서는 자동적으로 매겨진 pk인 id를 모르겠지만 이것을 사용자 측에서 저장하고 server와 주고 받는것이 맞는건지 궁금합니다. 공부를 하는 입장이라 실무에서는 어떤 방식으로 사용자 정보를 조회하도록 하는지가 너무 궁금합니다. ID정도는 넘겨줘도 상관이 없는건가요? 아니면 이러한 정보를 절대 전송하면 안되고 매번 session에서 꺼내야 하는건가요? cookie 에서 이 값을 저장해도 무방한가요? 무엇이 나은가요? ㅠㅠ cooki Id

  • java
  • spring-boot
  • spring
  • JPA
seonjun Moon 댓글 1 좋아요 0 조회수 743

엔티티 매니저 없이도 DB 값 저장이 가능한건가요??

미해결

안녕하세요 영한님 강의로 JPA, SPRING DATA JPA 공부중인 초보 입니다 강의 하나를 완강했음에도 제가 아직 전반적인 구조에 대해서 이해를 못한건지 잘 이해가 안되는 부분이 있어서요.. 강의에서는 항상 엔티티 매니저를 통해 ~.persist() 로 DB에 저장을 해서 자연스럽게 저렇게 저장을 하는거구나 했는데 한 예제 프로젝트를 보니까 게시글 crud를 엔티티 매니저 일절 사용 없이 구현하더라구요 분명 스프링 데이터 JPA 를 이용한 예제인것 같은데 이게 원래 가능한걸까요?? 가능하다면 엔티티 매니저는 왜쓰는지도 궁금합니다 검색해봐도 감이 잘 안잡혀서요 ㅠㅠ 영한님 강의 레포지토리 예제 레포지토리

  • jpa
  • springdatajpa
  • spring
eb 댓글 1 좋아요 0 조회수 500

테스트에서의 bindingResult 오작동

미해결

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

안녕하세요. 스프링 Junit 테스트로 검증 부분을 테스트 하던 중 의도대로 되지 않는 부분이 있어서 질문드립니다. 먼저 테스트 하려는 컨트롤러는 JSON 데이터를 파라미터로 받아서 검증을 하고 (@Valid @RequestBody) 검증이 실패하면(bindingResult.hasErrors가 true일 때) 예외를 발생시키는데, 해당 예외는 컨트롤러 어드바이스로 받아 http 400코드를 응답 하게끔 설계를 하였습니다. (포스트맨으로 검증에 실패하는 데이터를 보냈을 때 400으로 응답되는 것을 확인하였습니다.) 그런데 테스트 코드에선 검증에 통과못하는 데이터를 넣어 mockMvc.perform으로 테스트 해보니 기대와는 다르게 http 200코드가 찍히면서 검증이 통과되는 결과가 나왔습니다. (andExpect에서 getResolvedException()이 null로 찍히는 것을 보니 bindingResult.hasErrors가 false가 되는 것 같습니다) 컨트롤러 어드바이스가 문제인가 싶어서 다른 예외를 발생시켜 테스트 해보았는데, 다른 예외는 잘 처리되더라구요. 혹시 이러한 검증 로직을 mockMvc로 테스트 하는 방법이 따로 있는 것 일까요? 스프링은 5.x.x 버전이며 junit은 4.12 버전을 사용 중 입니다.

  • 검증
  • valid
  • MVC
  • 테스트
  • spring
  • mock
댓글 1 좋아요 0 조회수 282

포인트컷 지시자 단독 사용 관련해서 질문 있습니다.

미해결

스프링 핵심 원리 - 고급편

args, @target 등은 실제 객체 인스턴스가 생성되고 실행될 때 어드바이스 적용 여부를 확인할 수 있다는 부분이 잘 이해가 가지 않습니다. 빈 후처리기에서 빈으로 넘어오는 클래스의 메소드 정보를 보면 args랑 매칭시킬수 있을것 같고 @target도 빈으로 넘어오는 클래스를 상속한 자손클래스에서 특정 애노테이션이 있는지 여부를 확인하면 프록시 적용 여부를 판단 할 수 있을것 같은데... 왜 무조건 프록시를 만들어 놓고 런닝타임에 객체 인스턴스가 넘어와야 어드바이스 적용 여부를 판단 할 수 있는것인지 궁금합니다!! 답 주시면 감사하겠습니다!

  • spring
  • 디자인-패턴
rere 댓글 1 좋아요 0 조회수 520

요즘은 장기 로그인 유지를 많이 하는 거 같은데 맞나요?

미해결

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

원칙적으론 보안에 위협이 되겠지만 배민이나 쿠팡이나 등등 쇼핑 서비스를 보면 로그아웃을 하지 않는 이상 로그인이 유지시키는 것 같은데 아무래도 편의성 때문에 그렇겠죠? 그런 큰 서비스들은 회원 수만 몇천만일텐데 이런 경우도 다 메모리에 저장하고 있는 것인가요? 위와 같은 초대형의 사례들에선 세션 유지관리의 개념과 철학이 아예 근본부터 다를 것 같은데 어떤 식으로 관리 되는 것인지 궁금합니다. 아니면 그런 거 없이 동일한 건가요?

  • MVC
  • spring
먼길 댓글 2 좋아요 1 조회수 531

PathVariable의 대한 검증

해결됨

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

안녕하세요 영한님. 수정 혹은 삭제 시 pathvariable을 사용해서 처리를 했었는데요. 이 강의를 보고 조작의 위험성에 대해서 고민이 되었습니다. 실제 사용자가 해당 리소스에 대한 권한이 있는지 체크해야 한다 라고 말씀하셨는데요. 예제의 내용으로 보안을 해야 한다면 itemId와 사용자 Id로 상품 조회 후 결과 값이 있으면 해당 리소스에 대한 권한이 있는 사용자로 판단 고로 수정 혹은 삭제가 가능으로 처리 하면 되겠습니까?? 그리고..수정은 주로 PutMapping을 사용하는데 예제에서는 PostMapping을 사용하셨더라구요. 이건 영한님의 개인 취향 일까요?? 아니면 PutMapping을 안쓰시는 이유가 있으면 알려주십시아. 질문 다시 정리하자면. 1. pathvariable로 수정, 삭제 시 가장 좋은 검증 방법 2. PutMapping 혹은 DeleteMapping에 대한 영한님의 의견을 듣고 싶습니다. 코로나 조심하세요. 영한님. 항상 좋은 강의 감사합니다 !

  • spring
  • java
  • spring-boot
  • 웹앱
  • JPA
Aura 댓글 1 좋아요 2 조회수 708

2:15초 쯤에 static 장점 말씀하시는데 이해가 안갑니다.

미해결

스프링 핵심 원리 - 기본편

안녕하세요. static은 프로그램 실행 시 메모리에 올라와서 끝날떄까지 하나만 만들어지고, 어디서든 선언해서 쓸 수 있는 전역변수 아닌가요? 근데 왜 개발자님은 static 지정의 장점을 해당 클래스 안에서만 쓴다는 것을 표현하는 것이라고 설명해주시죠..? 이부분에 대해서 궁금합니다. 감사합니다.

  • oop
  • spring
유진이 댓글 1 좋아요 5 조회수 570

자바에서 valid하는 것과 JS로 valid하는 경우

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 자바에서 valid하는 것과 JS로 valid하는 경우 커스터마이징이 JS가 좀더 쉬워보이는데 자바로 하는게 더 효율적인가요??

  • spring-boot
  • 웹앱
  • spring
  • JPA
  • java
박주영 댓글 1 좋아요 0 조회수 240

folium의 map을 html

미해결

Python 모듈을 활용한 공간 분석

folium의 map을 html로 저장한 후에, 저장된 html 소스코드를 spring으로 만든 웹 사이트에 넣으려고 하는데 geojson 때문에 오류가 생깁니다. 혹시 spring으로 만든 웹 사이트에 folium 지도를 띄울 수 있는 방법을 알 수 있을까요?

  • folium
  • spring
  • GIS
  • map
  • folium
  • html
  • geojson
etoile0320 댓글 1 좋아요 0 조회수 1025

JAVA에 ContentBean의 content_data가 int형이여도 되는이유가 뭔가요

미해결

윤재성의 만들면서 배우는 Spring MVC 5

안녕하세요. 현재 강의에서 XML, JAVA 모두 kr.co.softcampus.beans 패키지 안에 ContentBean.java 클래스에서 content_data변수를 String으로 사용하고 있습니다. 하지만, java프로젝트에서 String이 아니라 int로 설정하여도 작동되어서 문의드립니다. 왜 그런가요? XML의 경우는 안된다고 나옵니다.(당연히..)

  • MVC
  • java
  • spring
  • XML
it 댓글 1 좋아요 0 조회수 216

chain 부분

미해결

스프링부트 시큐리티 & JWT 강의

chain.dofFilter 부분이 이해가 잘안가서 그런데 우리가 만든 필터를 FilterChainProxy에 넣어준다는 의미로 봐도 무방할까요?? 정확히 무슨 역활을 하는 부분인가요??

  • Spring Security
  • spring
  • jwt
wnsqud70 댓글 1 좋아요 1 조회수 321

JPA에서 findById, findByName에서 궁금한게있습니다.

미해결

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

package hello.hellospring.repository; import hello.hellospring.domain.Member; import javax.persistence.EntityManager; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository { private final EntityManager em; // build.gradle에서 data-jpa를 등록함 // 스프링부트가 자동으로 EntityManager 만들어줌 public JpaMemberRepository(EntityManager em) { this.em = em; } // 저장, 조회, 업데이트는 쿼리 짤 필요 없음 @Override public Member save(Member member) { em.persist(member); // persist=영구저장-> setId등 모든것을 해줌 return member; } @Override public Optional findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } // 리스트로 탐색 시 @Override public Optional findByName(String name) { List result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream().findAny(); } @Override public List findAll() { // 객체를 대상으로 쿼리를 날림 -> entity 자체를 select하는 것임 List result = em.createQuery("select m from Member m", Member.class) .getResultList(); return result; // return em.createQuery("select m from Member m", Member.class) // .getResultList(); } } 여기에서 findById는 sql없이 찾을 수 있는데 findByName은 쿼리를 작성해주는데, 이유가 어떤건가요? 혹시 id의 경우 제가 db에 넣는게아니라 컴퓨터에서 직접 넣어주는거고 name은 제가 입력해서 db에 넣기 때문인가요? 그리고 findByName에서 sql을 이용해서 특정 데이터를 뽑아내면 list로 나오는데, findById의 경우는 리스트로 나오는게 아닌가요,,?

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

getter setter 인텔리제이에서 만드는 법

미해결

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

안녕하세요. getter setter를 만들려고 했는데 alt+Insert를 해도 generate에 test와 copyright만 뜨고 다른게 뜨지를 않습니다. 이럴땐 getter setter를 어떻게 만들어야 할까요 ㅠㅠ.. 구글링을 해봐도 모두 generate를 누르면 다 getter setter 탭이 뜨는데 인텔리제이 사용이 처음이라 어렵네요 ㅠㅠ..

  • gettersetter
  • java
  • MVC
  • spring
  • spring-boot
지향 댓글 2 좋아요 0 조회수 1875

인기 태그

인프런 TOP Writers

주간 인기글