묻고 답해요
138만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
제가 강의 내용을 제대로 이해하지 못한 것 같습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]@Query("select r from Review r join fetch r.user u join fetch r.reviewReviewTags rt join fetch rt.reviewTag where r.program.id=:programId order by r.likeCounts desc") List<Review> findTop4ByProgramOrderByLikeCountsDescWithFetch(@Param("programId") Long programId, Pageable pageable);안녕하세요!영한님의 강의에서 이해했던 내용과 결괏값이 달라서 질문 올립니다.(물론 제가 이해를 잘 못했을 것 같긴합니다!)현재 User, Review, Program 을 1대 다 다대1로 나누었고 중간테이블은 Review 입니다.또한 Review , RevieReviewTag, ReviewTag 또한 1대다 다대1. 중간테이블은 ReviewReviewTag 입니다.현재 강의 내용에서 제가 이해한 것은@OneToMany 에서 성능 최적화 할 때1)페이징 처리시 : Batch 를 활용2) 페이징 처리 안할 시: distinct+ fetch JOIN 사용입니다.위 경우에서 join fetch r.reviewReviewTags 에 주목해 주세요!이는 review 와 reviewreviewTag 즉 1대다입니다.이를 fetch Join 으로 한번 발라보았습니다. 저는 위 과정에서 일단 핵심적으로 distinct 를 안붙였기 때문에 같은 리뷰에 대한 리뷰 태그가 여러 개 생겨서 중복된 결과가 나올줄 알았습니다. 실제로 위 과정에서 나온 쿼리를 복사해서 집어 넣어보니 이렇게 추가된 같은 review에 대해서 reviewTag 개수(review에 대한 1대다,2개로 고정해서 저장하였음. 따라서 두번씩 중복) 만큼 중복해서 나왔습니다. 그래서 위 과정을 DTO로 만들어서 반환하면 2개씩 중복된 결과가 나올 것이라 예상했습니다. 근데 JSON 데이터를 확인한 결과 { "reviewId": 21, "like": 0, "contents": "너무 좋았습니다0", "userPosterPath": null, "userNickName": null, "localDateTime": "2024-02-04T03:40:18.924606", "ratings": "2.5", "reviewTagNames": [ "극장에서 또 보고 싶어요", "돈이 아까워요" ] }, { "reviewId": 22, "like": 0, "contents": "너무 좋았습니다1", "userPosterPath": null, "userNickName": null, "localDateTime": "2024-02-04T03:40:18.934169", "ratings": "1.5", "reviewTagNames": [ "극장에서 또 보고 싶어요", "돈이 아까워요" ] }, { "reviewId": 23, "like": 0, "contents": "너무 좋았습니다2", "userPosterPath": null, "userNickName": null, "localDateTime": "2024-02-04T03:40:18.939567", "ratings": "2.5", "reviewTagNames": [ "극장에서 또 보고 싶어요", "돈이 아까워요" ] }, { "reviewId": 24, "like": 0, "contents": "너무 좋았습니다3", "userPosterPath": null, "userNickName": null, "localDateTime": "2024-02-04T03:40:18.948736", "ratings": "0.5", "reviewTagNames": [ "극장에서 또 보고 싶어요", "돈이 아까워요" ] } ], 얼레레 근데 왠걸정상적으로 나오는 것입니다.저는 위에 쿼리를 DTO로 만들어서 반환한 것 밖에 없는데 (pageable 안에는 PageRequest.of(0, 4)) 제가 이해한 강의 내용 대로라면 일단 핵심적으로 distinct 를 안붙였기 때문에 1대다의 다의 개수만큼 중복된(위에서는 2개) 결과가 나와야 할 것 같았는데어디서 틀린 것일까요 ㅠ 스프링 부트 버젼은 2.7.X 이며 하이버 네이트 버젼도 6이 안되는 것을 참고해주세요 ㅜ
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
제가 이해한 것이 맞느지 확인 부탁드립니당
이번에 만든 조회하는 api는 리스트로 반환해야 하기 때문ㅇ JSON이어야 하고그렇기에 함수 반환 값이 List<UserResponse>인건가요?그리고 등록 api에서 만든 users리스트 수만큼 for문 돌려서 진정한 결과 리스트(id도 포함되어있는) reponses를 만들어낸건가요..?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
수업을 들으면서 이해한 것이 맞는지 확인해주세요 ㅠㅠ
전체적인 흐름: postman(클라이언트)에서 body형식으로 보내준 user정보를 저장하는 api를 만들기. 다만 null값 허용x 1) dto역할의 UserCreateRequest.javapostman에서 body형식으로 보내준 user정보를 여기를 통하여 controller로 전달한다. 2) UserController.javauser관련된 api들이 정의되어 있는 곳. user 클래스에서 "예외 처리"를 거친 후에 들어온 값들을 add하면서 리스트에 추가한다. 3) domain의 User.java얘도 postman에서 body형식으로 보내준 user정보를 여기를 통하여 controller로 전달한다(?) 만약 name이 null값이면 거르고 아니면 저장한다. 뭔가 UserController.java랑 User.java 얘네들끼리만 서로 지지고볶는 것 같은데 왜 dto가 따로 있나 어려워요dto 없어도 domain에서 postman이랑 컨텍이 되는 거 아닌가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Failed to load ApplicationContext 오류 해결 방법
[질문 내용]회원기능 테스트에서 분명 강사님이 하신거랑 똑같이 따라했고 오타가 있을까하여 강의 소스 코드도 점검하고 복사붙여넣기 까지 했는데 같은 오류가 계속 반복해서 발생합니다.. 오류:java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@f849027 testClass = jpabook.jpashop.service.MemberServiceTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@5c2375a9, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@492691d7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@67545b57, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1c93f6e1, org.springframework.boot.test.context.SpringBootTestAnnotation@5495e57], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframewo https://www.inflearn.com/questions/974433/java-lang-illegalstateexception-failed-to-load-applicationcontext-%EC%98%A4%EB%A5%98이 링크와 같은 문제인 것 같은데 h2를 재설치 해도 해결 되지 않네요 ㅜㅜ 도움 받을 수 있을까요? package jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import jakarta.persistence.EntityManager; import static org.junit.Assert.*; @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Autowired EntityManager em; @Test public void 회원가입() throws Exception { //given Member member = new Member(); member.setName("kim"); //when Long savedId = memberService.join(member); //then assertEquals(member, memberRepository.findOne(savedId)); } @Test(expected = IllegalStateException.class) public void 중복_회원_예외() throws Exception { //given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); //when memberService.join(member1); memberService.join(member2); //예외가 발생해야 한다!!! //then fail("예외가 발생해야 한다."); } } package jpabook.jpashop.repository; import jpabook.jpashop.domain.Member; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import jakarta.persistence.EntityManager; 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) .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(); } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA N+1문제의 장점?
최근 프로젝트를 진행하면서 연관 관계가 설정된 엔티티를 조회할 경우 조회된 데이터의 수만큼 추가 쿼리가 발생하여 데이터를 읽어오는 N+1문제를 해결할수 있었습니다.하지만 N+1문제를 단순히 문제라고 인식하고 있었지만 ORM을 개발한 개발자들이 이문제를 수정하지 않았다는건 어떠한 장점이 있지 않을까? 라는 생각을 하게 되었습니다. 혹시 N+1문제가 장점이 되는경우가 있는걸까여?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대일 양방향 연관관계를 사용할 경우 질문이 있습니다.
## 다대일 양방향 연관관계를 사용할 경우 질문이 있습니다 아래와 같이 Reply 엔티티를 생성할 때 Board엔티티의 List<Reply> replies에 추가를 해주어야 하기 떄문에, 엔티티 생성시 필요한 엔티티에 대한 select문은 getReferenceById를 사용해서 없앨 수 있었고 Reply엔티티 생성도 할 수 있었다. ````agsl @Transactional public Reply addReply(Long memberId, Long boardId, String content) { Member member = memberRepository.getReferenceById(memberId); //엔티티 생성에 불필요한 select문 없다. Board board = boardRepository.getReferenceById(boardId); System.out.println("==================="); Reply reply = Reply.createReply(member, board, content); System.out.println("==================="); return replyRepository.save(reply); } ```` 다만 다대일 양방향 연관관계의 경우 댓글을 저장할 때마다, Board에 대한 Select쿼리가 발생한다. ````agsl public static Reply createReply(Member member, Board board, String content) { Reply reply = new Reply(); reply.member = member; reply.board = board; reply.content = content; reply.likeCount = 0; reply.isDeleted = false; log.info("board select 발생 넣기 --"); board.addReply(reply); log.info("board select 발생 넣기 --"); return reply; } ```` 이렇게 댓글을 저장할 때 마다 board에 대한 select쿼리가 발생하다 보니 다대일 양방향 관계를 하지 말아야 하는 생각이 드는데요.. 지금 프로젝트에서는 양방향 연관관계의 장점은 영속성 전이와 orphanremoval을 사용헤서 게시글 삭제시 댓글이 모두 삭제되는 이점을 얻는다는 것이 있습니다. 물론 board삭제할 경우 replyrepository에서 boardId를 통한 댓글 삭제가 가능할 것으로 생각 되는데요. 댓글을 작성할 때마다 Board select쿼리가 나가는 것은 성능상의 이슈로 봐야 할까요?? -> 다대일 단방향 연관관계로 바꾸는게 맞을까요? 아니면 양방향 연관관계의 경우 JPA를 사용하지 않을시 객체지향적 코드를 보장한다는 이야기를 들었는데 Board조회시 조인하여 Reply 컬렉션을 조회할 수 있다는 것이 장점으로 느껴지긴 합니다 (단방향 연관관계일 경우 reply 컬렉션 조회 메서드를 따로 작성해서 해결해야 함.) 어떤 선택을 해야할 지 질문드립니다!! 어떤 선택을 해야 할까요? 아래는 발생 쿼리 로그입니다. ```agsl =================== 2024-02-03T14:15:00.936+09:00 INFO 2612 --- [ Test worker] cos.blog.web.model.entity.Reply : board select 발생 넣기 -- 2024-02-03T14:15:00.937+09:00 DEBUG 2612 --- [ Test worker] org.hibernate.SQL : select b1_0.board_id, b1_0.content, b1_0.created_time, b1_0.last_modified_time, b1_0.member_id, b1_0.title from board b1_0 where b1_0.board_id=? 2024-02-03T14:15:00.938+09:00 INFO 2612 --- [ Test worker] p6spy : #1706937300938 | took 0ms | statement | connection 74| url jdbc:h2:tcp://localhost/~/blog select b1_0.board_id,b1_0.content,b1_0.created_time,b1_0.last_modified_time,b1_0.member_id,b1_0.title from board b1_0 where b1_0.board_id=? select b1_0.board_id,b1_0.content,b1_0.created_time,b1_0.last_modified_time,b1_0.member_id,b1_0.title from board b1_0 where b1_0.board_id=31; 2024-02-03T14:15:00.939+09:00 INFO 2612 --- [ Test worker] cos.blog.web.model.entity.Reply : board select 발생 넣기 -- =================== 2024-02-03T14:15:00.940+09:00 DEBUG 2612 --- [ Test worker] org.hibernate.SQL : insert into reply (board_id, content, created_time, is_deleted, last_modified_time, like_count, member_id, reply_id) values (?, ?, ?, ?, ?, ?, ?, default) 2024-02-03T14:15:00.942+09:00 INFO 2612 --- [ Test worker] p6spy : #1706937300942 | took 0ms | statement | connection 74| url jdbc:h2:tcp://localhost/~/blog insert into reply (board_id,content,created_time,is_deleted,last_modified_time,like_count,member_id,reply_id) values (?,?,?,?,?,?,?,default) insert into reply (board_id,content,created_time,is_deleted,last_modified_time,like_count,member_id,reply_id) values (31,'replyreply','2024-02-03T14:15:00.939+0900',false,'2024-02-03T14:15:00.939+0900',0,12,default); =================== ```
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
localhost,css
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.db도 연결 잘되고 css적용하는 부분에서 막혔는데요, html에 인텔리제이에 있는 크롬을 작동시키면 css가 적용되지 않는 localhost:63342로 연결이 되고 따로 localhost:8080을 입력하면 계속 연결이 거부된다고 뜨네요.. 그리고 css에 관한 질문들을 보면서 버전도 확인하고 CDN도 해보면서 해도 css가 적용이 되지를 않아요.. 코드는 제가 몇번을 확인했는데도 다 맞아서 뭐가 문제인지를 모르겠네요.. 뭐가 문제인지 알려주시면 감사하겠습니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
상속관계 설정시, Getter & Setter 설정
해당 강의에서는 Lombok을 사용하지 않지만, 실습중에 lombok을 추가하여 @Getter, @Setter를 사용하여 자동으로 메서드를 생성해 주었습니다. 그런데 상속 받은 자식 클래스에서 부모 클래스의 필드에 접근은 가능하지만, 서버를 돌리면 부모 클래스 필드를 인식하지 못한다는 오류가 나옵니다. Item.java@Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn @Getter @Setter public abstract class Item { @Id @GeneratedValue @Column(name = "ITEM_ID") private Long id; private String name; private int price; private int stockQuantity; @ManyToMany(mappedBy = "items") private List<Category> categories = new ArrayList<>(); } Book.javapackage jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.Entity; @Entity @Getter @Setter public class Book extends Item{ private String author; private String isbn; } JpaMain.javaBook book = new Book(); book.setPrice(15000); book.setName("JPA"); book.setAuthor("USERA"); main 함수를 build하면 아래와 같은 오류가 뜹니다. 해당 오류에 대한 원인과 해결 방안이 궁금합니다.src\main\java\jpabook\jpashop\JpaMain.java:25: error: cannot find symbol book.setPrice(15000); ^ symbol: method setPrice(int) location: variable book of type Book
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring boot 3 버젼애선, grafana Spring Cloud Gateway가 값을 못읽어옵니다.
https://grafana.com/grafana/dashboards/11506-spring-cloud-gateway/내용: Spring Cloud Gateway Dashboard provided by: https://github.com/spring-cloud/spring-cloud-gatewayA Gateway built on Spring Framework 5.x and Spring Boot 2.x providing routing and morespirng boot 3 이상이신 분들은 참고 바랍니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 다대일 최적화 질문하기
안녕하세요 모든 강의를 수강중인 학생입니다.다대다 관계를 사용하지 않아서 일대다 다대일로 풀어내는데이때 조회에서 최적화를 하려면 A(1) <-> B(다) <-> C(1) 조건 상황은 A가 C에 있는 name 값을 알고 싶어합니다.인경우에 A에 default_batch_fetch_size를 적용하여 B의 컬렉션을 가져왔습니다.그 후 B에서 다시 C에 있는 name라는 필드값을 사용해야하는데 그렇다면 다시 fetch join을 하나요...?그렇게되면 다시 조회하는 느낌이 나서 고민이 되네요.... A->B까지만 default_batch_fetch_size 한뒤 혹은 지연로딩으로 가져오나요...?(이건 쿼리가 다:1 수 만큼 나가네요) 또한 기준 테이블을 B로 바꾸자니 A를 조회하는 것이 메인이여서 가독성 측면에서 떨어지고 구조가 망가지는 느낌이 들어 현업에서는 어떤지 질문남깁니다! 감사합니다 🙂
-
해결됨실전! 스프링 데이터 JPA
파라미터로 받은 form을 어떻게 엔터티로 반환하는지 모르겠어요...
현재 실전 데이터 JPA수강 중인데요.. 독학 중이라 토이프로젝트로 연습하는데 오늘까지 배운 JpaRepository 상속과 관련하여 회원가입 기능 구현하려 하려는데 어디 물어볼곳이 없고 뒤죽박죽이라 정리가 필요해서 장문의 질문을 남깁니다.. 일단 제가 머릿속에 정리가 안되는 것은 영한선생님께서 최대한 컨트롤러에 엔터티를 노출하지 말고 비지니스 로직을 서비스에서 최대한 구현하라고 해서 따라하는 중인데 Member를 기준으로 파라미터를 받을 MemberForm을 생성했습니다. 여기서 질문이.. MemberForm을 생성했으면 MemberDto는 따로 생성 안해도 될까요?컨트롤러를 그림과 같이 작성하였고서비스는 아래와같이 하였는데... 뭔가 서비스에서 엔터티를 직접 만지니까 찝찝한데 실무에서도 이렇게 하는지 궁금합니다..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest에서 실행안됨..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의를 따라 코드를 실행하던 중 MemberRepositoryTest을 실행하면 에러가 나서 질문드립니다! https://drive.google.com/file/d/1N_7Rt-XDX3zNRHNy6JwiBLG7H2-23TLP/view?usp=sharing
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
springboote 3 관련 : zipkin 관련 로그에 traceId, spanid가 안나오는 문제가 있습니다.
안녕하세요강의에서는 zipkin 명령어창에서 실행시 접속로그가 나오며, orderservice에 주문 요청시traceid,spanid가 나오지만,저의 경우에는 zipkin 설치시 sl4fj 바인딩 오류가 있더라고요.혹시 이 사항이 orderservice에서 로그와 관련된 문제인지 아니면 gradle 설정에 관한 부분인지 어떤 부분을 확인해봐야 될까요?혹은 스프링부트 3.0버젼부터 되지 않는 부분인가요? *gradle 의존성 설정은 강의와 똑같습니다. **아래는 zipkin설치시 sl4fj 관련된 내용 입니다!SLF4J(W): No SLF4J providers were found.SLF4J(W): Defaulting to no-operation (NOP) logger implementationSLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.SLF4J(W): Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier.SLF4J(W): Ignoring binding found at [jar:nested:/C:/Users/son/zipkin.jar/!BOOT-INF/lib/log4j-slf4j-impl-2.21.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J(W): See https://www.slf4j.org/codes.html#ignoredBindings for an explanation.
-
해결됨실전! 스프링 데이터 JPA
AttributeConverter에 대해 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]안녕하세요 AttributeConverter 관련 질문이 있습니다. attribute와 dbDate를 암호화 & 복호화하는 사용자 정의 컨버터를 구현했는데 실제 query를 이용하여 조회했을 때 정상적으로 암호화된 데이터가 적재된 것을 확인했습니다.다만 애플리케이션에서는 converter가 동작하니 실제로 암호화 된 데이터가 적재되었는지를 애플리케이션 레벨에서 할 수 없는데 이를 위한 테스트 작성을 어떻게 해야하는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 에서 Failed to load ApplicationContext 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.MemberRepositoryTest 실행시 Failed to load ApplicationContext 오류가 계속 뜨는데 이유가 뭔지 모르겠습니다 h2 초기설정때 비밀번호를 따로 만든것도 오류가 되나요??파일 전체 구글 드라이브 링크 걸어놓겠습니다https://drive.google.com/file/d/1ZyqJeogpUjXBKjLMjbY6Ne-IEC5tfhHQ/view?usp=sharing
-
해결됨Practical Testing: 실용적인 테스트 가이드
안녕하세요 재고 테이블에 대해서 질문 있습니다.!
안녕하세요 멘토님 강의 잘듣고 있습니다!제가 테이블을 언제 만들어야 하고 합쳐야 되는지에 대해서 잘 모르겠습니다. 혹시 검색 키워드와 상품테이블에서 재고를 관리하지 않고 따로 테이블을 만든 이유가 있을까요 ?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
단방향 연관관계 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요, 단/양방향 연관관계에 대해서 질문드립니다.강사님께서 초반 설계시에는 단방향으로 연관관계 매핑을 최대한 끝내야 한다고 하셨습니다. 그리고, 비즈니스 로직상 양방향 매핑이 필요할 때에는 양방향을 추가하면 된다고 하셨는데요, 설계할 때 그러한 기준에 대해 강의 내용만으로는 아직 감이 잘 안잡히는 것 같습니다. 저같은 경우 연관된 객체 조회가 간편하다는 이유로 생각없이 양방향부터 걸어두었는데, 성능 이슈나 객체 탐색의 편의성간 트레이드 오프에 대해서 생각을 하지 못했던 것이 큰 것 같습니다.혹시 단방향 -> 양방향으로 갈 때 고려해야 할 나름의 기준에 대해서 인사이트를 주실 수 있는지요 ??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 주문후 디비에 저장은 되지만 웹 페이지에서 조회가 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품 주문 후 주문은 디비에 들어가 있지만 주문 목록을 조회해 보면 주문이 조회되지 않습니다. 또한 검색 창에서 회원 이름과 주문 상태를 선택해서 검색을 하면 white label error page가 나옵니다.해당 화면 첨부해서 질문 드려요 어디가 잘못 된 걸까요 ㅠ?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest 오류
첨부한 사진과 같이 코드를 작성 했는데 아래와 같은 오류가 떴습니다...혹시 어떻게 해야되는지 여쭤봐도 될까요 ============================CONDITIONS EVALUATION REPORT============================Positive matches:----------------- NoneNegative matches:----------------- NoneExclusions:----------- NoneUnconditional classes:---------------------- None
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
환경설정 MemberRepositoryTest에서 계속 해서 에러가 생깁니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]내용을 다 똑같이 하고 버전 확인도 했는데 테스트에서만 에러가 계속 발생합니다. 그런데 PC에서는 에러가 생기고 노트북으로 했을 때는 정상적으로 작동합니다. 무슨 이유때문인지 몰라서 힘듭니다...아래는 에러 내용입니다.아래는 에러 내용 전문 링크입니다https://local-toothpaste-73c.notion.site/MemberRepositoryTest-b52cdd4980a34d0796b43797cf0be01a?pvs=4노트북에서 실행한 에러없는 프로젝트를 깃헙으로 클론해와도 PC에서는 에러가 생기네요. 무슨 문제일까요..?