묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
Favorite.js 질문입니다.! 화면 새로고침하면, 추가한 Favorite chatrooms가 날라가고 딱 1개만 남습니다!
Favorite.js 질문입니다.! 화면 새로고침하면, 추가한 Favorite chatrooms가 날라가고 딱 1개만 남습니다! MessageHeader에서 채팅방 하트 꾸욱 눌러 favorite에 넣으면,SidePanel에 Favorite이 업데이트되어 채팅방이 입력됩니다.Favorite 채팅방 목록 나오고, 개수까지 다 잘 나와요;잘 됩니다. 하지만, F5 새로고침을 누르면 Favorite에는 결국, 1개의 채팅방만 나오고 나머지는 싹 다 날라갑니다.최초에 파이어베이스에서 채팅방목록을 모두 못불러오는것 같아요.코드 수정을 해야할 것 같은데요,작성해주신 코드를 보면 잘못된건 없는것 같은데 왜 그럴까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
ItemService updateItem
ItemService의 updateItem 메서드에서 영속성 컨텍스트에 있는 item의 값을 변경하고 있는데,제가 생각했을 때 데이터의 값을 변경하는 것은 repository에서 해야할 것 같은데 service 계층에서 직접 구현해 놓으신 이유가 있나요? repository에 update 관련 메서드를 하나 더 만들 수는 없나요?각자의 역할을 위배하는 느낌이어서 여쭤봅니다ㅠㅠ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의에 언급된 개념 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)너무 사소한 질문이지만 작은 부분에서 혼동이 와 구글링 후 질문드립니다.강의시간 7:25 @PostMapping해당 강의에서 구성하신 로직은 API가 아니라고 이해가 됩니다. '다음으로'에서도 API와 분리된 개념으로 말씀하신 것 같습니다. 제가 알기로는 해당 로직도 API의 종류라고 알고 있습니다.강사님이 말씀하신 API는 JSON이나 XML로 응답코드를 얻는 RESTful API를 설명하신 것일까요,,? API 개념에 대한 혼동이 옵니다. 강의시간 11:45 '앞 단이든 서비스 계층이든 id에 대한 권한 여부 체크하는 것을 서버에 로직을 추가'하라고 하셨습니다. 앞 단이든 서비스 계층이든 상관없다고 하셨으니 여기서 말씀하신 서버는 백 단만 말씀하시는게 아닌 것으로 이해하면 되나요? [질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오타발견해서 적어봅니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.31페이지정리하면대다대매핑을일대다, 다대일매핑으로풀어내서사용하자.대다대매핑->다대다매핑
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 회원정보 저장 오류
회원가입과 돌아오는 페이지는 정상으로 작동은 하나 h2에 저장 되지도 않고 강의 내용처럼 insert 문이 나오지 않습니다https://drive.google.com/file/d/1Mnh-hxiK1AQlaSlFOuuQrzRgAT0lEI9t/view?usp=sharing
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
this 질문
OrderItem에서 전체가격 조회 메소드입니다.여기서 getOrderPrice()대신 this.OrderPrice를 해도 되는지 궁금합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Member Item id 차이
MemberService에서는 member.getId를 해서 id값을 가져와서 확인하는데ItemRepository에서는 item.getId가 null입니다memberService 는 memberRepository에서 저장되고 db에 있는 id를 가져오는게 아니지 않나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Domain별 패키지 분리에 대한 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요.항상 좋은 강의 감사드립니다.현업에서 업무를 하다보면 package를 도메인별로 분리하고 도메인에 controller, repository, service, entity, dta, dao등 패키지를 구분하고 있습니다.이는 하나의 모든 controller, repository에 담게 되면 유지보수성이 떨어지기 때문인데요.강의에 강사님께서 하나의 패키지에 넣으셔서 질문을 드립니다.MSA구조로 작게 분리한다고 해도 유지보수가 용의하기 위해서는 패키지를 분리하는게 좋다고 생각되는데요.DTA를 controller에 넣는다던지 entity를 모두 하나에 넣고 있어서...현업에서도 이렇게 쓰는게 더 좋은건지,,,아니면 강의에서만 분리하지 않는 것인지 궁금합니다.혹, 강의에서만 분리하지 않는 구조라면sample로 효율적인 패키지 구성을 제공해 주실 수 있나요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
findName 질문
이름으로 조회해서 findName을 하면 한명만 조회되지 않나요??리스트로 받는 이유가 궁금합니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
npm run dev시 localhost가 자꾸 3000으로 연결됩니다
이렇게 찾을 수 없다는 에러가 뜨는데 어떻게 해야되나요? 다른 분이 질문하신거 보고 package.json에 proxy도 추가해봤는데 안됩니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영한님 강의를 들으면서 내용을 일부 수정해서 공부를 하고 있습니다 . 세션 부분인데요 영한님 강의에서는 JPA 를 사용하지 않았지만 저는 JPA 를 사용해보았습니다. 하지만 계속 WARN 11252 --- [io-8080-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentConversionNotSupportedException: Failed to convert value of type 'java.util.Optional' to required type 'project.PointWeb.Domain.Member'; Cannot convert value of type 'java.util.Optional' to required type 'project.PointWeb.Domain.Member': no matching editors or conversion strategy found] 이 에러가 발생해서 고민중입니다. Optional 이 문제인 것 같은데 어떻게 변경을 해야 할 지 모르겠습니다. 강의 내용을 조금 변경해서 실습을 하고 있어서 질문드릴까 고민했지만, 해결할 수 있는 방법을 찾지 못해서 질문 드립니다.... 감사합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
준영속 관련 질문있습니다.
OrderService에서 order메소드에 public Long order(Member member, Item item) 이런식으로 id가 아닌 엔티티 객체를 바로 받는 식으로 제 개인 프로젝트에서 비슷한 방식으로 해봤습니다.Question과 member가 서로 양방향 매핑관계이구요public class Question { @Id @GeneratedValue @Column(name = "question_id") private Long id; private String title; private String content; private String username; @CreationTimestamp private LocalDateTime dateTime; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; public void setMember(Member member) { this.member = member; member.getQuestionList().add(this); } }public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String emailId; private String username; private String password; private int age; @OneToMany(mappedBy = "member") private List<Question> questionList=new ArrayList<>();OrderService에서 question을 save할 때 public Question save(Member member,Question question) { question.setMember(member); question.setUsername(member.getUsername()); question.setTitle(question.getTitle()); question.setContent(question.getContent()); questionRepository.save(question); return question; }failed to lazily initialize a collection of role: post.study.entity.Member.questionList, could not initialize proxy - no Session(제 개인 프로젝트라 엔티티 경로가 다릅니다.)이런식으로 에러가 나더라구요. 이게 controller 단에서 들어온 엔티티라 해당 서비스 트렌젝션 내에서는 JPA가 관리해주지 않는 준영속 상태 같은 개념인 것 같은데 정확하게 개념이 잡히지 않아서 질문드립니다.public Question save(Long memberId, Long questionId) { Member member = memberRepository.findById(memberId).get(); Question question = questionRepository.findById(questionId).get(); question.setMember(member); question.setUsername(member.getUsername()); question.setTitle(question.getTitle()); question.setContent(question.getContent()); questionRepository.save(question); return question; }id값을 받아서 해당 서비스 트렌젝션 내에서 직접 엔티티를 조회해야 같은 트렌젝션 내에서 엔티티가 JPA에 의해 관리되서 그런건가요? 개념을 정확히 잡고 싶습니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
스프링 부트 버전
[질문 내용]스프링 부트 2.7.9 버전 쓰면 될까요??3.0.4 도 있는데 둘 중에 뭘 고르면 될까요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
라이브러리 인식?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]외부 라이브러리 인식이 잘 되지 않습니다. 여러가지 방법을 시도해봤더니.. 왼쪽 목록에서 build.gradle 오류표시가 사라지지않습니다....테스트와 http://localhost:8080 로 확인 하였으나 따로 오류 발생은 하지 않았습니다. 외부라이브러리만 인식이 안되는 것 같은데 이유를 알수있을까요?build.gradleplugins { id 'java' id 'org.springframework.boot' version '2.7.8' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'jpabook' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' developmentOnly 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } test { useJUnitPlatform() } 외부라이브러리 주소는 implementation("com.github.gavlyukovskiy:p6spy-spring-boot-starter:${version}") implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' 이거 두개 사용해 봤고 깃허브에 나온 버전 다른 것도 사용시 안됨요 memberRepositoryTestpackage jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import ch.qos.logback.core.joran.conditional.IfAction; @RunWith(SpringRunner.class) //스프링과 관련된걸 테스트 할거야~ @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) //롤백안하고 커밋하는 것 public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("memberA"); //when Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); //then Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); System.out.println("findMember==member : "+ (findMember == member)); } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성메소드
생성메소드에 대해 잘 이해가 안가네요어떨때 사용하게 되는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문 생성 메서드 createOrder() 질문
==[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]주문 생성 메서드인 createOrder()의 파라미터로 가변인자인 OrderItem...을 사용하셨는데 List를 사용하지 않고 특별히 가변인자를 사용하신 이유가 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
멤버와 주문이 양방향으로 되어있는데 멤버에서 주문 내역을 보려면 어떻게 하나요?
member = MemberRepository.findId(1)member.getOrders() 하니까 무한루프 나네요
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
npm run start를 하면 흰색 화면만 나옵니다.
소스코드는 다음과 같습니다.import React, { useEffect } from "react"; import { Routes, Route, useNavigate } from "react-router-dom"; import ChatPage from "./components/ChatPage/ChatPage"; import LoginPage from "./components/LoginPage/LoginPage"; import RegisterPage from "./components/RegisterPage/RegisterPage"; function App() { return ( <Routes> <Route path="/" element={<ChatPage />} /> <Route path="/login" element={<LoginPage />} /> <Route path="/register" element={<RegisterPage />} /> </Routes> ); } export default App;
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 생성
create문과 insert문은 잘 나오는데 h2에 테이블이 생성이 안됩니다 확인부탁드릴께요ㅜhttps://drive.google.com/file/d/1XSgNpKtwNmh7rBbgJ8H38SGNOJQ822eJ/view?usp=sharing
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 코드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.id to load is required for loading; nested exception is java.lang.IllegalArgumentException: id to load is required for loading 오류 발생합니다 Long orderId 값이 null 값이여서 오류가 납니다. 왜 null값이 들어가는지 이해가 안됩니다. class OrderServiceTest { @Autowired EntityManager em; @Autowired OrderService orderService; @Autowired OrderRepository orderRepository; @Test public void 상품주문() throws Exception{ Member member=new Member(); member.setName("회원1"); member.setAddress(new Address("서울","강가","123-123")); em.persist(member); Book book=new Book(); book.setName("시골 JPA"); book.setPrice(10000); book.setStockQuantity(10); em.persist(book); int orderCount=2; Long orderId = orderService.order(member.getId(), book.getId(), orderCount); Order getOrder = orderRepository.findOne(orderId); assertEquals("상품 주문시 상태는 ORDER", OrderStatus.ORDER,getOrder.getStatus()); } @Test public void 주문취소() throws Exception{ } @Test public void 상품주문_재고수량초과() throws Exception{ } }