묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
강의자료는 어디서 볼 수있나요??
강의자료는 어디서 볼 수있나요??1강에 강의자료는 코드뿐이던데,,
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
빌드 툴, Gradle
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의 첫 영상에서 build 할 때 Build and run using : GradleRun tests using : Gradle 하셨는데주문서비스Test 돌릴 때 인텔리제이로 돌리면 위 사친 처럼 나오고gradle 로 해서 돌리면 위 사진 처럼 나오는데 강의 영상에선 인텥리제이로 해서 돌리신 것 같은데 인텥리제이로 해서 돌려도 괜찮은 것인가요? 문제 발생할 수 있다고 해서 궁금해서 여쭤봅니당..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/1ascl2GoqIRVM8prPCdagjtHuh6gPaulv/view?usp=sharing 콘솔에 나온 jdbc url대로 들어가도 코드에 짠 엔티티 테이블들이 보이지 않아여
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Repository에서 EntityManager 주입 방식 차이
[질문 내용]스프링 db 강의에서는@Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em;이 방식으로 했는데, 이 강의에서는@Repository public class MemberRepository { @PersistenceContext private EntityManager em;이렇게 사용하셔서 두 방식의 무슨 차이가 있는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
롬복과 사용자 정의 setter 메서드
강의 23:03분에서 setMember(Member member)라는 setter 메서드를 작성하는데요.제가 기억하기로는 @Setter를 설정하면 자동으로 필드 이름을 딴 setXXX()인 setter가 만들어지는 것으로 알고 있습니다.그러니까 현재 Member 필드가 있으니까 롬복인 @Setter 에 의해 setMember(Member member)가 자동으로 생성되지 않을까 생각하는데요. 제가 생각한게 맞다면 이때 강의에서 만든 setMember(Member member)와 충돌? 이런 문제는 없나요? 시그니처까지 똑같은 것 아닌가요?아니면 이런경우 사용자가 직접 만든 것이 더 우선시 되는건가요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문 목록 조회 fetch join 질문드립니다
주문 목록을 화면에 뿌려줄 때 N+1 문제가 발생하는 것을 확인하고페치 조인으로 이를 해결해보았습니다. OrderRepository.javapublic List<Order> findAllByString(OrderSearch orderSearch) { String jpql = "select o from Order o join fetch o.member m join fetch o.orderItems oi join fetch oi.item"; ... }다른 부분은 건들지 않고 문자열 jpql 만 위와 같이 변경했습니다.이처럼 변경 후 확인을 해보니 N+1 문제 없이 한방 쿼리로 주문 목록을 가져오는 것을 확인했습니다. 하지만, 기본편에서 페치 조인 대상에는 별칭을 줄 수 없다고 하셨습니다.물론 하이버네이트는 되지만 아래의 이유 때문에 가급적 사용을 금한다고 말씀하셨습니다.위의 o.member m 를 예로 들면 where 절에서 m.name like 와 같이 몇개만 따로 가져오는 것은JPA가 설계한 관련된 것들을 싹 가져온다 의 방향과는 맞지 않기 때문입니다. 여기서 질문이 있습니다질문 1) where 절에 member에 대한 조건이 없으면 별칭을 쓰지 않아도 될거같은데 이처럼 있는 경우는 어떻게 하면 될까요?(이 부분에 대해서 활용 2편에서 다뤄주시면 그렇다라고만 답해주셔도 됩니다)질문 2)기본편에서 페치 조인을 여러 단계 하는 경우는 간혹 별칭을 쓸 수 있다고 하셨는데 그게 위의 o.orderItems oi 에 해당될까요?(여기에 별칭을 안주고는 도저히 item을 가져올 방법이 떠오르지 않습니다..)
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
토스페이먼츠 개발자 화면이 강의와 많이 달라졌는데 확인 부탁드립니다.
https://developers.tosspayments.com/ 언어별 코드 예제를 복사 붙여넣기만 하면 연동 끝 이라고 방식이 변경된것 같습니다.확인 부탁드립니다.
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
Git Graph가 강사님처럼 나타나지 않는데요.
강사님처럼 메인 탭으로 열리지 않고, 좌측 하단에 작게 열리고 작게 열린 부분에서 마우스 우측 클릭해도 이전 버전으로 돌아가는 메뉴가 안 뜹니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
dirty checking 질문드립니다.
안녕하세요. 강의 14분쯤에 말씀해 주신 dirty cheking에 대해서 질문드립니다. order.cancel(); 호출하면,Order의 status 변경되고, 이는 dirty cheking으로 인해 Order에 대해서 update 쿼리가 발생하고,orderitem.cancel()호출하면, Item의 stockQuantity가 변경되고, 이는 dirty checking으로 인해 Item에 대해서 update쿼리가 발생한다.기본편 및 강의 내용에 대해서 생각해보다가 이렇게 생각했는데 이렇게 이해하는게 맞을까요?
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
구글에드센스 velcel 상업적이용
안녕하세요.좋은강의 제공해주셔서 감사합니다. vercel 무료 티어 같은 경우 구글에드센스를 상업적 이용으로 치부하고 있어 규정에 어긋나게 되는거 같은데 다른 대안이나 방안이 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
동시성 관련 질문입니다
링크위 링크 속 질문에서 영한쌤이 아래와 같은 답변을 해줬습니다"서버가 한대만 있고, 자바(JVM)로 웹 애플리케이션을 단 하나만 구동하는 상황이면 자바 만으로 동시성 제어를 할 수 있습니다." MVC 1편 강의에서 배운 내용으로는클라이언트 요청이 들어오면 was 내에 미리 만들어진 쓰레드들이 각 요청을 받고 서블릿 코드를 실행한다고 이해하고 있습니다 그렇다면 서버가 한 대여도 쓰레드는 이미 여러개가 만들어져 있으므로동시에 여러 요청 처리가 가능하기에 자바만으로 동시성 제어가 안 되는거 아닌가요? 잘못 이해한 부분이 있다면 지적부탁드립니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
CASCADE 질문드립니다.
안녕하세요. Order와 OrderItem엔티티에 있는 CASCADE에 대해 기본편을 복습해도 헷갈린 부분이 있어서 질문드립니다. em.persist(order)를 하면 CascadeType.ALL때문에 Delivery랑 OrderItem도 insert가 되는거 같은데, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; OrderItem에 있는 이 부분에 CASCADE를 적어준게 아니라@OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 왜 Order에 있는 여기에다가 CASCADE를 적어준것일까요? 어디에다 두어도 상관없을거 같은데, 특별한 규칙이 있는것인지 질문드립니다.
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
토스페이먼츠 연동하여 결제하기 오류
토스페이먼츠 연동하여 결제하기 기능 구현시 강사님의 영상과 다르게 오류가 나는데 도메인 localhost 가 실제 도메인 사용해야 한다고 합니다.이럴경우 어떻게 해야 하나요?영상과 실제가 너무 달라 애를 먹고 있어요.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티로 승인(결정)하는 기준
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 ~ 강의 복습 중 궁금한게 생겨 여쭤봅니다 ! 도메인 설계 시 지금처럼 회원 - 주문 - 상품을 메인 도메인으로 잡지 않고회원이 회원가입, 주문 기능을 수행하는 주체이기에 회원 속에 Embedded로 주문 클래스를 값타입으로 잡아 회원 속에 넣고 회원 - 상품을 메인 도메인으로 잡을 수도 있겠다는 생각이 들었는데, 스프링부트 1 예제처럼 주문과 배송 클래스를 하나의 엔티티로 규정한 이유는 주문과 배송에서 식별자 pk 값이 필요하다고 생각해서 한 것일까요 ?회원 도메인이 회원 가입 관련 역할만 담당하는 도메인이라서 책임 분리를 위해 주문과 배송 클래스를 다른 엔티티로 규정했는지 라는 의문도 들었는데,엔티티로 잡아야하는 기준에 대해 여쭤보고 싶어 질문 남깁니다 !
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order, OrderItem 주문생성/취소 비즈니스로직 생성 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)아니요.[질문 내용]여기에 질문 내용을 남겨주세요.-> 주문,주문상품 엔티티 개발 강의에서 Order, OrderItem 엔티티부분에서 주문, 주문취소관련 비즈니스로직을 엔티티단에 만들었는데, 제가 기존 알고있던 개념은 서비스단에 비즈니스로직을 만드는걸로 알고있었는데, 엔티티단에 비즈니스로직을 만들어도 실무에서 허용하는 방식인건지 상황에 따라서는 기존 방식데로 서비스단에 비즈니스로직을 만드는게 맞는건지 궁금합니다.
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
커서 유료버전 써야하나요?
현재 2주 free같은데claude3.5 3.7 4 등등 모든 버전에서 코드짜는게 안되고 Anthropic's latest models are currently only available to paid users. Please upgrade to a paid plan to use these models.(Request ID: aec9ae0d-5eb4-4514-a54e-478383ef2f0a)라고 뜹니다.Free users can only use GPT 4.1 or Auto as premium models(Request ID: 849c6230-8e63-4751-9b03-9def2bab9e86)라고 뜰 때도 있고요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Category 엔티티 계층 질문드립니다.
@Entity @Getter @Setter public class Category { @Id @GeneratedValue @Column(name = "catagory_id") private Long id; private String name; @ManyToMany @JoinTable(name = "category_item",joinColumns = @JoinColumn(name = "category_id"),inverseJoinColumns = @JoinColumn(name = "item_id")) private List<Item> items = new ArrayList<>(); @ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); }이 부분에서, 카테고리의 계층? 을 표현하기위해 카테고리 엔티티를 위와 같이 하셨는데요. 여기에서@OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>();이 부분이 무슨 의미로 사용되는지 이해가 잘 되지않습니다.. 연관관계의 주인이 아닌쪽이기 떄문에 mappedBy를 적어준거같은데, 해당 코드가 필요한 이유와 사용되는 목적이 무엇인지 질문드립니다. 그리고 private Category parent와 private List<Category> child = new ArrayList<>();가 어떤 연관관계가 있길래 연관관계를 맺는것인지 이해가 잘 되지않아서 질문드립니다. 감사합니다.
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
저도 api로 들어왔는데 상단 메뉴에 대쉬보드가 안보입니다 ㅜ
저도 api로 들어왔는데 상단 메뉴에 대쉬보드가 안보입니다 ㅜ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
정적 팩토리 메소드에 대해 질문 있습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요.강의 3분 정도 쯤에 나오는 createOrder 메서드 생성 시 정적 팩토리 메소드를 사용하는 이유가 궁금해 여러 질문과 답을 읽어보았는데요.의미 있는 메서드 이름 부여, 객체 생성 불필요 등 여러 장점이 있다는 것을 알았습니다.그렇다면 대부분 생성자보단 정적 팩토리 메소드로 객체를 생성하는 것이 좋은 건가요? 아니면 객체 생성 시 연관관계 설정이나 복잡한 로직이 있을 때만 정적 팩토리 메소드로 만들어주는 게 좋은 건가요? 정적 팩토리 메소드 사용 이유에 어떤 기준이 있는 건지, 아님 보통 관례로 이렇게 사용하는 건지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
given when then
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Test @DisplayName("상품주문_재고수량초과") public void orderOverStock() throws Exception { //given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); int orderCount = 11; //when //then Assertions.assertThrows(NotEnoughStockException.class, () -> orderService.order(member.getId(), item.getId(), orderCount)); }촬영 시점과 달리 assertThrows로 변경되며 given, when, then이 참 모호해진 것 같습니다. 제가 이해한 바에 따르면, 변수 설정은 given, 메서드 호출은 when, 결과와 검증은 then에서 수행하는 것 같은데위 코드와 같은 경우는 어떻게 분리해야 할까요?when은 위와같이 비워두는게 맞을까요?