묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
강의 결제 문의
해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱위 강의를 수강하려고 하는데요, 월 2만원대라고 나오고 연 12만원이라고 나오길래(회원가입 환영 할인 받아서 저런 금액이 나왔습니다) 헷갈려서 질문드립니다. 1개월 안에 수강을 끝내면 20000원 또는 월 금액만 내고 수료가 되나요? 1달에 ~만원 이란 문구가 있던데 결제창에 갔을 때 왜 연간금액(12만원)으로 표시가 되나요?금액은 몇달동안 배웠는지에 따라 지불해야 하나요?답변 부탁드립니다. 감사합니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
쿠폰이 안 들어와서 문의 드립니다.
🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요)제목을 구체적으로 작성해 주세요✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다.⛔️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다.깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 🥲 답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요!제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 🥲 강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요더 빠른 답변이 가능합니다!안녕하세요! 쿠폰이 아직 안들어와서 혹시 메일을 잘못적은건지 확인하고 싶어서 문의 드립니다!
-
미해결스프링 핵심 원리 - 기본편
혹시 강의 연장은 따로 불가능 할까요?
현재 자바 기본편을 듣고 있는데 기본편 완강 후에 스프링 입문편 -> 기본편을 들으려고 하는데 그러면 시간이 너무 부족할거같아서 혹시 강의 연장이 가능할지 문의 드립니다 ㅠㅠ
-
미해결스프링 시큐리티 OAuth2
다음강의는 뭐에요?
안녕하세요 혹시 언제쯤 에상하시는지 알수있을까요?
-
미해결
강의 구매시 구매자 변경
강의 구매시 설정된 구매자 이름을 핸드폰번호로 작성했습니다. 변경 가능한가요?변경부탁드립니다.
-
해결됨MongoDB를 활용하여, 200억건 이상의 데이터 파이프라인 작성법
실무에서 주로 사용하는 Compass의 다양한 기능
'실무에서 주로 사용하는 compass의 다양한 기능' 강의에서 처음에 어디에 들어가야하나요 ?
-
미해결파이썬/장고로 결제 시작하기 (Feat. 아임포트) - 기본편
자동완성기능
코드 작성하실때 자동으로 완성되는? 뒤에 흐리게 이미 작성되어있는 코드들과 섹션3 2번강의에서 4:44 IMP.request_pay함수 작성하실때 밑에 자동으로 예제?같은게 보이는건 어떤기능인가요 너무 편의성이 압도적으로 보여 사용하고싶습니다.
-
미해결
생성 메서드에 대한 질문있습니다.
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발강의 내용에서 Order 클래스에서 생성메서드를 만들었습니다.//==생성 메서드==// 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; }위의 Order 클래스에서 만든 생성메서드를 OrderItem 클래스에서도 만든 이유가 궁금합니다.//==생성 메서드==// public static OrderItem createOrderItem(Item item, int orderPrice, int count) { // 생성메서드는 언제 사용해야하는지 질문 OrderItem orderItem = new OrderItem(); orderItem.setItem(item); orderItem.setOrderPrice(orderPrice); orderItem.setCount(count); item.removeStock(count); return orderItem; }OrderItem 클래스에도 생성메서드를 만들어준 이유가 연관관계에 있어서 "다"인 쪽에 만드는건가요?(예를 들어서, 연관관계 1대 다에서 다 쪽에 생성메서드를 만드는 것인지에 대한 질문입니다.)
-
미해결
get 방식과 post 방식 질문드립니다.
public class OrderController { private OrderService orderService; private MemberService memberService; private ItemService itemService; @GetMapping(value = "/order") public String createForm(Model model) { List<Member> members = memberService.findMembers(); List<Item> items = itemService.findItems(); model.addAttribute("members", members); model.addAttribute("items", items); return "order/orderForm"; } @PostMapping("/order") public String order(@RequestParam("memberId") Long memberId, @RequestParam("itemId") Long itemId, @RequestParam("count") int count) { orderService.order(memberId, itemId, count); return "redirect:/orders"; } } 제가 http관련 수업을 들었지만, 코드로 적용할 때, 좀 헷갈리는 부분이 있어서 질문드립니다. @GetMapping은 기본적으로 "order" url에 이동했을 때, 실행되는 것이 맞나요?order 페이지로 이동했을 때, 자동으로 createForm 메소드가 실행돼서 모델에 members와 items를 담고 order/orderForm으로 전달하는 절차가 맞나요? 반대로 @PostMapping은 기본적으로 "order" url에서 값의 전달이나 변경이 있을 때, 실행되는 것이 맞나요?order url에서 값을 입력하고 버튼과 같은 동작을 누르면, 그 때 order 메소드가 실행돼서 매개변수로 넘어온 memberId, itemId, count로 주문해서 저장하는 것이 맞나요? 결론적으로 차이점을 말하자면, get방식은 해당 url로 접속했을 때 실행되는 것이고, post는 해당 url에서 값을 변경이나 전달할 때 실행되는 것이 맞나요?
-
미해결
타임리프 설정 질문드립니다.
spring: thymeleaf: prefix: classpath:/templates/ suffix: .html datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug org.hibernate.orm.jdbc.bind: trace # org.hibernate.type: trace 스프링 부트 타임리프 기본 설정spring: thymeleaf: prefix: classpath:/templates/ suffix: .html 강의 교재에 위와 같이 적혀져있는데 위 코드가 타임리프 설정 맞게 한 것인가요?
-
미해결
localhost 오류 질문드립니다.
package controller; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home() { log.info("home controller"); return "home"; } } <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header"> <title>Hello</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader" /> <div class="jumbotron"> <h1>HELLO SHOP</h1> <p class="lead">회원 기능</p> <p> <a class="btn btn-lg btn-secondary" href="/members/new">회원 가입</a> <a class="btn btn-lg btn-secondary" href="/members">회원 목록</a> </p> <p class="lead">상품 기능</p> <p> <a class="btn btn-lg btn-dark" href="/items/new">상품 등록</a> <a class="btn btn-lg btn-dark" href="/items">상품 목록</a> </p> <p class="lead">주문 기능</p> <p> <a class="btn btn-lg btn-info" href="/order">상품 주문</a> <a class="btn btn-lg btn-info" href="/orders">주문 내역</a> </p> </div> <div th:replace="fragments/footer :: footer" /> </div> <!-- /container --> </body> </html> <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <div class="header" th:fragment="bodyHeader"> <ul class="nav nav-pills pull-right"> <li><a href="/">Home</a></li> </ul> <a href="/"><h3 class="text-muted">HELLO SHOP</h3></a> </div> <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <div class="footer" th:fragment="footer"> <p>© Hello Shop V2</p> </div> <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head th:fragment="header"> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrinkto-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="/css/bootstrap.min.css" integrity="sha384- ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <!-- Custom styles for this template --> <link href="/css/jumbotron-narrow.css" rel="stylesheet"> <title>Hello, world!</title> </head> 이렇게 다 했는데 localhost:8080 누르면 아무 화면도 나오지않습니다. 어떤 오류때문에 그런 것인지 알 수가 없습니다.감사합니다.
-
미해결
오류 질문드립니다.
Execution failed for task ':JpashopApplication.main()'.> Build cancelled while executing task ':JpashopApplication.main()'* 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.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 1m 6s3 actionable tasks: 1 executed, 2 up-to-date JpashopApplication을 실행하면, 이런 오류가 나오는데 어떻게 해결하나요?
-
미해결
코드분석중 질문드립니다.
@Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); } @Embeddable @Getter public class Address { private String city; private String street; private String zipcode; protected Address() { } public Address(String city, String street, String zipcode) { this.city = city; this.street = street; this.zipcode = zipcode; } } 위 코드에서, Adress 클래스의 멤버변수의 값은 언제 초기화되나요? 생성자가 호출되려면, 객체 인스턴스가 생성되어야 하는데, Address 인스턴스 객체가 생성될 일이 있나요?감사합니다.
-
미해결
강의 내용중 이해안되는 부분 질문드립니다.
@Entity @Table(name = "order_item") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class OrderItem { @Id @GeneratedValue @Column(name = "order_item_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; //주문 상품 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; //주문 private int orderPrice; //주문 가격 private int count; //주문 수량 //==생성 메서드==// public static OrderItem createOrderItem(Item item, int orderPrice, int count) { OrderItem orderItem = new OrderItem(); orderItem.setItem(item); orderItem.setOrderPrice(orderPrice); orderItem.setCount(count); item.removeStock(count); return orderItem; } //==비즈니스 로직==// //****************이 부분입니다**************************// /** 주문 취소 */ public void cancel() { getItem().addStock(count); } //==조회 로직==// /** 주문상품 전체 가격 조회 */ public int getTotalPrice() { return getOrderPrice() * getCount(); } }비즈니스 로직의 주문 취소에서 getItem().addStock(count)이 아니고 item.addStock(count)아닌가요? 어떻게 getItem()으로 addStock메소드를 호출가능한가요? 감사합니다.
-
미해결
강의 내용중 궁금한 점 질문드립니다.
//==생성 메서드==// public static OrderItem createOrderItem(Item item, int orderPrice, int count) { OrderItem orderItem = new OrderItem(); orderItem.setItem(item); orderItem.setOrderPrice(orderPrice); orderItem.setCount(count); item.removeStock(count); return orderItem; }이러한 생성메서드는 언제 사용하는건가요?코드를 분석해보니 연관관계에서 다 대 1인 케이스에서, '다'쪽에서 생성 메서드를 사용하는 것 같은데 맞나요?감사합니다.
-
미해결
강의 내용에서 이해안되는 부분 질문드립니다.
package jpabook.jpashop.domain; import jakarta.persistence.*; import jdk.jshell.Snippet; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @Entity @Table(name = "orders") @Getter @Setter public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) private Delivery delivery; //배송정보 private LocalDateTime orderDate; //주문시간 @Enumerated(EnumType.STRING) private OrderStatus status; //주문상태 [ORDER, CANCEL] //이 연관관계 부분입니다. //==연관관계 메서드==// public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } //==연관관계 메서드==// public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); }이 연관관계 메서드 부분이 이해가 안되어서 질문드립니다.setMember 메소드에서 member.getOrders().add(this); 이 부분이 전혀 이해가 안되는데 설명 부탁드립니다. addOrderItem 메소드에서 orderItems.add(orderItem); 와 orderItem.setOrder(this); 이 부분이 전혀 이해가 안되는데 설명 부탁드립니다. setDelivery 메소드에서 delivery.setOrder(this); 이 부분이 전혀 이해가 안되는데 설명 부탁드립니다.
-
미해결
강의 내용에 의문점이 생겨 질문드립니다.
package jpabook.jpashop.domain.repository; import jakarta.persistence.Entity; import jakarta.persistence.EntityManager; import jpabook.jpashop.domain.item.Item; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; @Repository @RequiredArgsConstructor public class ItemRepository { private final EntityManager em; public void save(Item item) { if (item.getId() == null) { // 이 부분입니다. em.persist(item); } else { em.merge(item); } } public Item findOne(Long id) { return em.find(Item.class, id); } public List<Item> findAll() { return em.createQuery("select i from Item i",Item.class).getResultList(); } } 위의 코드에서 item.getId() == null을 왜 사용하는건가요??MemberRepository 클래스와 코드 형식이 거의 비슷한데, MemberRepository 클래스에서는 member.getId() == null 코드를 사용하지 않아서 질문드립니다.그리고 item은 처음에 id가 없다는 말도 이해안되어서 질문드립니다.감사합니다.
-
미해결
강의 내용 질문드립니다.
package jpabook.jpashop.domain.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jakarta.persistence.PersistenceUnit; import jpabook.jpashop.domain.Member; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; public void save(Member member) { em.persist(member); } public Member findOne(Long id) { return em.find(Member.class, id); } public List<Member> findAll() { // 회원 목록 조회 return em.createQuery("select m from Member m", Member.class) ry .getResultList(); } public List<Member> findByName(String name) { return em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); } } 위의 코드에서 findByName메소드에서 왜 단건조회가 아닌 리스트 조회를 사용한건가요? 어차피 중복가입은 안되고 이름으로 조회하니까 하나의 결과가 나와야하는거 아닌가요?findByName 메소드에서 setParameter은 왜 있는건가요? 설명부탁드릴게요.
-
미해결
강의 질문입니다.
@Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member") // 맵핑된 거울. 여기에 값을 넣는다고해서 Foreign key 값이 변경되지 않음. private List<Order> orders = new ArrayList<>(); }위 코드에서, @GeneratedValue는 시스템상에서 생성되는 값이라는 의미의 어노테이션 맞나요? 그리고 Address 타입의 변수는 @Embedded인 이유가 무엇인가요?
-
미해결
김영한 강사님의 수업중에 궁금한 점이 있어서 질문드립니다.
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의를 수강중인데 궁금한 점이 생겨서 질문드립니다.OrderItem과 Item이 단방향 다대일관계라고 나와있는데, 다른 것들은 다 양방향인데 왜 예네들만 단방향인건가요?그리고 "하나의 주문상품은 여러 개의 상품을 주문할 수 있으니" 다대다 아닌가요?? 하나의 상품도 여러 개의 주문상품에 들어갈 수 있으니" 양방향 관계 아닌가요??