묻고 답해요
133만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Editor....를 활용한 패턴에 질문있습니다.
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.Editor관련한 질문글들을 읽어보아도 제 머리로 이해가 안돼서 또 이렇게 Editor 질문 글을 하나 더 추가합니다... ㅠㅠ [해당 영상을 보지 않았더라면 짰을 코드]Post엔티티에 비즈니스 로직을 작성하고단순하게 PostEdit을 전부 넘겨 비즈니스 로직 change를 호출하여 더티체킹으로 마무리! 이렇게 했을 경우, 파라미터 순서에 무관하게 PostEdit이라는 수정을 위한 Dto 객체를 단 하나만 넘겨 수정을 할 수 있다고 판단했습니다. 물론 위 비즈니스 로직은 null값에 대처는 못하겠지만요! 하지만, 프론트 개발자와 상의하여 '수정 시, 모든 데이터를 넘겨준다는 전제' 에서는 가장 간단한 방법이라고 생각했습니다! [Editor를 작성해보며 느낀 의문점]Post의 toEdit을 통해 기존 가지고 있던 데이터를 PostEditor에게 넘김으로써 Builder에서 null값에 대응할 수 있다는 점 이외에는 또 다른 장점을 이해하지 못하고 있습니다. Request의 title혹은 content가 null일 경우 이를 해결하기 위한 방법을 제시해주는 것 말고는 되려 관리해야 할 것들만 늘어난 느낌이 해소가 되지 않습니다 ㅠㅠ 그래서 제가 이해한 것 까지의 내용들이 잘 이해한 것인지 그리고 추가적으로 제가 이해하지 못한 것들을 이해하고 싶습니다! findById로 수정하려는 엔티티를 가져옵니다.toEdit()을 통해 현재 수정하고자 하는 엔티티의 필드들을 PostEditor에게 넘겨 빌더를 만듭니다. 이는 수정하려는 엔티티가 현재 가지고 있는 필드들을 핸들링 할 수 있도록 해줍니다. (가령, title혹은 content의 null 처리)2번을 통해서 PostEditor가 현재 수정하려는 Post의 필드들을 주입 받았으면, Request로 받은 데이터를 통해 최종 build()를 해줍니다.변경사항을 모두 적용한 postEditor를 Post의 변경비즈니스 메서드 edit(postEditor)를 통해 더티체킹으로 변경해줍니다. [최종적으로 든 생각][Editor를 작성해보며 느낀 의문점] 에서 작성된 것들이 정확하다면,아예 첫 방법을 사용하되, 비즈니스 메서드에서 null 체크를 해주면 어떨까? 하는 생각이 들었습니다.이런 방식으로 진행한다면 문제가 있을까요? 긴 글에 시간 내어주셔서 감사합니다 !
-
미해결Practical Testing: 실용적인 테스트 가이드
OrderProduct 테스트에 대해
안녕하세요 강사님먼저 강의에 대해 너무 감사드린다는 말씀 드리고 싶습니다.강의 내용 중 OrderProduct를 생성하는 부분의 책임이 Order에 있게 설계하는 부분에 정말 매력을 느끼고, 유사한 설계 방법들에 대해 공부하려면 어떤 키워드를 알아보면 좋을까요??또한 이 강의를 따라 공부해서 개인적으로 진행중인 프로젝트에 적용하면서 공부하고 있는데, 딱 Order와 OrderProduct같은 관계에서 OrderProduct를 강의에서처럼 생성자가 아닌 정적 팩토리 메소드를 통해 만들어보고자 하였습니다.하지만 여기에서 OrderProdcut의 정적 팩토리 메소드를 테스트하려면 Order가 필요하고, Order를 create하려면 또 OrderProduct가 내부에서 만들어지는 문제가 발생했습니다.이런 경우는 어떻게 해결할 수 있을까요??임의로 Order에 대해 mock으로 생성해서 해결하고는 있는데, 이게 일반적인 방법이 될 수 있을까요?감사합니다!!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
멤버와 팀의 영속화 순서를 뒤집었을 때(?) 생성되는 query에 대한 질문입니다!
안녕하세요.이상한 코드이긴 하지만 문득 궁금해서 테스트를 해봤습니다.하이버네이트 버전은 6.4.2.Finalh2 데이터베이스 버전은 2.2.224 Team team = new Team(); team.setName("teamA"); Member member = new Member(); member.setUsername("memberA"); member.setAge(49); member.setTeam(team); em.persist(member); em.persist(team);이 경우 발생하는 query는 다음과 같습니다.Hibernate: /* insert for hellojpa.jpql.Member */ insert into Member (age, TEAM_ID, username, id) values (?, ?, ?, ?) Hibernate: /* insert for hellojpa.jpql.Team */ insert into Team (name, id) values (?, ?) Hibernate: /* update for hellojpa.jpql.Member */ update Member set age=?, TEAM_ID=?, username=? where id=?제가 생각한 흐름은 이렇습니다.멤버가 데이터베이스에 동기화된다팀이 멤버에 저장되어 있지만(객체 상으로), 팀 테이블에는 해당 데이터가 없다멤버의 외래키(team_id)가 아직 null이다팀이 데이터베이스에 동기화된다이제 멤버의 외래키를 업데이트 한다외래키만 업데이트 하면 될 것 같은데 외래키를 가진 레코드 전부를 수정한다이 흐름이 맞을까요? 외래키만 업데이트 하는 게 아니라 멤버의 해당 레코드를 전부 업데이트하는 게 생각했던 것과 달라 질문드리게 됐습니다.답변 미리 감사드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티 매핑 오류 - 실전 예제1
섹션 4 - 엔티티 매핑 에서 실전예제1 관련 질문입니다. 강사님께서 jpashop 프로젝트를 하고 계신데 저도 열심히 따라 하고 있었습니다. 근데 지금 H2 가 연결이 계속 안된다라고 뜨는데 혹시 이유 아시는 분 계실까요.......ㅠㅠㅠㅠ사진 첨부하겠습니다.제발 꼭 좀 도와주세요ㅜㅜㅜ!!!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
콘솔에 쿼리가 지저분하게 나오는 문제.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 콘솔창에 쿼리가 이런식으로 지저분하게 보입니다.yml 설정은 이렇게 되어있고요.jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging: level: org.hibernate.SQL: debug # org.hibernate.type: trace log4j jdbc 설정하는 쪽으로 일단 구글링해서시도해보고 있긴한데, 잘안되네요.혹시 다른 방법이 있을까요
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
페이징과 한계 돌파의 batch_size에 대해
밑줄 친 부분은 yml에 batch_size에 의해 조정되는 것 같습니다(맞는지 모르겠습니다). 근데 저는 그런데 영한님 쿼리는 저 부분에 4,11이 들어가있는 이유가 궁금해요. 저는 저 부분이(?,?,?,?,?,?,?,?,?)가 되어서 그런지 몰라도 h2에서 쿼리할때 에러가 뜹니다.(밑사진)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
api
api란 개념을 잘 모르겠습니다.그냥 controller에서 mapping하는 것이 api 인가요?1편에서 만들었던@GetMapping("/members/new")public String createForm(Model model) {...}이런 코드들도 각각 api라 하는 것인가요?
-
해결됨실전! Querydsl
Querydsl 조회 시, DTO 필드를 List로 받는 방법을 알고 싶습니다.
안녕하세요.Querydsl 학습 중에 궁금한 점이 있어서 질문드립니다. Projection을 이용해서 조회 데이터를 DTO에 반환 받고 싶습니다.하지만, DTO 필드에 List 타입이 정의되어 있습니다.이런 경우에는 어떤식으로 데이터를 조회할 수 있는지 궁금합니다. 또한, 현업에서는 이런 형태의 데이터를 조회하기 위해서 어떤 방식으로 하는지 궁금합니다.객체 그래프 탐색을 이용한 Lazy 조회 후, 로직에서 조건 필터링 ?각 조건에 맞는 쿼리 여러번 호출 ?DTO Projection을 이용한 한방 쿼리 ?다른 방식 ? 조회 데이터를 반환 받기 위한 ProductDto는 다음과 같습니다.public record ProductDto( Long id, String name, int reviewScore, int reviewCount, int originalPrice, int salesPrice, List<String> productImages, List<String> productDetailImages ) { @QueryProjection public ProductDto { } } 데이터를 조회 하고자 하는 의도가 담긴 Querydsl은 다음과 같습니다.public ProductDto findSellingProductById(Long id) { return queryFactory .select(new QProductDto( product.id, product.name, product.reviewScore, product.reviewCount, productOption.originalPrice, productOption.salesPrice, productImage.imageUrl, productDetailImage.imageUrl )) .from(product) .leftJoin(product.productOptions, productOption) .on(productOption.isDefault.isTrue(), productOption.isSaleable.isTrue(), productOption.isDeleted.isFalse()) .leftJoin(product.productImages, productImage) .on(productImage.isDeleted.isFalse()) .leftJoin(product.productDetailImages, productDetailImage) .on(productDetailImage.isDeleted.isFalse()) .where(product.id.eq(id)) .fetchOne(); } Product, ProductOption, ProductImage, ProductDetailImage 엔티티는 다음과 같습니다.@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Product extends BaseDateTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "product_id") private Long id; @Column(length = 50) private String name; private int reviewScore; private int reviewCount; // ... 중략 @OneToMany(mappedBy = "product", cascade = CascadeType.ALL) private List<ProductImage> productImages = new ArrayList<>(); @OneToMany(mappedBy = "product", cascade = CascadeType.ALL) private List<ProductDetailImage> productDetailImages = new ArrayList<>(); @OneToMany(mappedBy = "product", cascade = CascadeType.ALL) private List<ProductOption> productOptions = new ArrayList<>(); // ... 중략 } @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class ProductOption extends BaseDateTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "product_option_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") private Product product; @Column(length = 30) private String name; private int originalPrice; private int salesPrice; // ... 중략 private Boolean isDefault; private Boolean isSaleable; private Boolean isDeleted; // ... 중략 } @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class ProductImage extends BaseDateTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "product_image_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") private Product product; private String imageUrl; private Boolean isDeleted; // ... 중략 } @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class ProductDetailImage extends BaseDateTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "product_detail_image_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") private Product product; private String imageUrl; private Boolean isDeleted; // .. 중략 } 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest에서 오류가 나는데 도와주세요 ㅠㅠ
<MemberService code><MemberRepository code><build.gradle><Error Messeage>어디가 문제일까요?감사합니다~~ㅜㅠㅠㅜㅠ 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
cascadetype.remove와 orpphanRemoval = true
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 제가 강의 복습 겸 혼자 개발을 하다가 궁금한점이 생겨 질문드립니다. cascadetype.remove를 설정하면 부모 엔티티가 삭제되면 자식 엔티티도 삭제되는 것이라고 알고 있습니다. 그래서 cascadetype.remove를 설정하고 부모 객체를 삭제했더니 delete 쿼리가 나가지 않았는데, 여기에 더해 orphanRemoval=True까지 설정해줬더니 delete쿼리가 나가서 부모엔티티와 자식엔티티를 모두 삭제해주었습니다.제가 잘못알고 있는 것인지 아니면 왜 두 가지 모두를 설정해줘야 delete쿼리가 나가는지 궁금해서 여쭤봅니다. @Entity @RequiredArgsConstructor @Setter @Getter public class Restaurant { @Id @GeneratedValue private Long restaurantId; @Column(unique = true) private String name; private mealoralcohol meal_alcohol; private URL url; private int saturdayopentime; private int sundayopentime; private int maxNumOfPeople; private int averagePrice; @OneToMany(mappedBy = "restaurant") private List<MenuRestaurant> menuRestaurants = new ArrayList<>(); } @Entity @RequiredArgsConstructor @Getter @Setter public class MenuRestaurant { @Id @GeneratedValue private Long menuRestaurantid; private mealtype mealtype; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "restaurantId") private Restaurant restaurant; public void setRestaurant(Restaurant restaurant){ this.restaurant = restaurant; restaurant.getMenuRestaurants().add(this); } } @Repository @RequiredArgsConstructor public class RestaurantRepository { private final EntityManager em; public void save(Restaurant restaurant){ em.persist(restaurant); } public Restaurant findById(Long id){ return em.find(Restaurant.class,id); } public void delete(Restaurant restaurant){ Assert.notNull(restaurant,"Entity must not be null!"); if (em.contains(restaurant)){ em.remove(restaurant); } } } @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class RestaurantRepositoryTest { @Autowired RestaurantRepository rr; @Autowired EntityManager em; @Test @Rollback(false) public void testJPQL() throws Exception{ Restaurant res1 = new Restaurant(); res1.setName("res1"); res1.setAveragePrice(10000); res1.setSaturdayopentime(17); res1.setSundayopentime(17); res1.setMaxNumOfPeople(29); res1.setMeal_alcohol(mealoralcohol.Meal); em.persist(res1); MenuRestaurant menures1 = new MenuRestaurant(); em.persist(menures1); menures1.setRestaurant(res1); menures1.setMealtype(mealtype.Korean); // heavyres1 MenuRestaurant menures2 = new MenuRestaurant(); em.persist(menures2); menures2.setRestaurant(res1); menures2.setMealtype(mealtype.heavy); // japaneseres2 MenuRestaurant menures3 = new MenuRestaurant(); em.persist(menures3); menures3.setRestaurant(res2); menures3.setMealtype(mealtype.Japanese); rr.delete(res1); } } 여기서 rr.delete(res1)을 했을 때, Restaurant 클래스의 orphanRemoval=True 설정을 없애면 delete쿼리가 나가지 않습니다.
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
TestEntityApi중 createTestEntity에서 질문있습니다
testService.create(request.getName(), request.getAge());를testService.create(request.name, request.age)로 바꿔도 작동하는데 혹시 차이점이 있나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 오류
[질문 내용]복습 중 테스트 오류가 났는데 이유를 모르겠습니다..entityrepositoryapplication.ymltestbuild.gradletest code하기 전에 main()을 run 했을 때는 제대로 실행되고 h2 웹 콘솔에서도 Member 테이블이 생긴 것을 확인했습니다. 그런데 테스트 코드를 실행하면 아래와 같은 에러가 뜹니다.. 도움 부탁드립니다! 에러
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
리프레시 토큰 사용 관련 문의 건
강사님 안녕하세요 :)강의 관련하여 문의 드립니다. 현재 강의 내용에선 액세스 토큰과 리프레시 토큰을 DTO에 담아 서버에서 클라이언트로 전달하고 있습니다.1) 이 경우, 사용자 또한 네트워크 탭에서 전달되는 토큰을 모두 확인할 수 있는건가요? 보안 문제는 없을지요?2) 프로젝트에 리프레시 토큰을 적용하는 중인데, 위 사항을 감안하고도 DTO로 전달하는 방식으로 진행해도 될지요? 또한 이 경우가 가장 일반적인 경우일지요?3) 만약 액세스 토큰은 쿠키에 담아 웹브라우저가 컨트롤하게 하고,리프레시 토큰만 서버에서 DTO에 담아 전달하는 방식은 어떤지요? 프로젝트 진행 기준으로 안내주시면 참고하여 진행하도록 하겠습니다. :)
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
계속 persistence unit name 못 찾는다는 오류가 생기는 분들
pom.xmjpa 하이버네이트 디펜던시 옵션 중에서<type>pom</type>을 제거해보시기 바랍니다. <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.4.2.Final</version> </dependency> <dependency>
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
api에 대해서
지난 강의 JPA 활용 1편을 듣고왔는데요,API를 개발하는 이유와 의미가 무엇인가요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Jpa 데이터베이스 매칭 관련 질문입니다.
안녕하세요 강사님.인프런 스터디 과제 7일차 문제 1번 jpa 코드로 변환하던 중 warehousingDate 컬럼 부분에서 문제가 발생하였습니다.Fruits의 테이블 컬럼 이름은 warehousingDate 입니다. { "name":"바나나", "warehousingDate":"2024-02-25", "price":7000 }jpa 코드로 바꾼 후 위에처럼 post 하였더니 아래와 같은 결과가 나왔습니다.Unknown column warehousing_date in field list라고 에러가 뜹니다. 처음에는 @Column(name="warehousing_date") 을 붙이지 않아서 에러가 나는 줄 알고 @Column(name="warehousing_date") 을 붙이고도 진행하였더니 똑같은 에러가 발생하였습니다.그래서 Fruits 앤티티 warehousingDate 변수명을 warehousing_date로도 변경을 해봤더니 똑같은 에러가 발생하였습니다. Fruits 엔티티는 아래와 같습니다.@Entity public class Fruits { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @Column(name="warehousing_date") private LocalDate warehousingDate; private long price; @Column(nullable = true) private boolean sales; public Fruits() { } public Fruits(String name, LocalDate warehousingDate, long price, boolean sales) { this.name = name; this.warehousingDate = warehousingDate; this.price = price; this.sales = sales; } public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public boolean isSales() { return sales; } public void setSales(boolean sales) { this.sales = sales; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } }컨트롤러 코드는 아래와 같습니다.@PostMapping("/api/v1/fruit") public void fruitInformation(@RequestBody FruitCreateRequest information){ fruitService.saveInformation(information); }서비스 코드는 아래와 같습니다.private final FruitJpaRepository fruitRepository; public FruitService(FruitJpaRepository fruitRepository) { this.fruitRepository = fruitRepository; } public void saveInformation(FruitCreateRequest request){ fruitRepository.save(new Fruits(request.getName(),request.getWarehousingDate(), request.getPrice(), request.getSales())); }RequestDto 코드는 아래와 같습니다.public class FruitCreateRequest { private String name; private LocalDate warehousingDate; private long price; private boolean sales; @JsonIgnore private Long id; public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public void setSales(boolean sales) { this.sales = sales; } public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setId(long id) { this.id = id; } public boolean getSales(){ return sales; } } 혹여나 제가 놓친 부분이 없는 지 확인해 주시면 감사하겠습니다. 그리고 fruits 컬럼명은 warehousingDate 라 적었는 데 hibernate는 warehousing_date과 매칭할려는지 알고싶습니다.질문이 서투른 점 양해바랍니다..
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Xss 에서 WebConfig 오류 발생됩니다.
WebConfig 에 필터 등록 하는 부분에서 오류? 가 생깁니다.현재 스프링 부트 3.2.2 버전입니다. 혹시 버전으로 인한 문제일까요?해결방법 부탁드리겠습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
[h2] id 및 name 값 대치 문제
안녕하세요, 우선 학습하던 부분은 다음과 같습니다. 강의 : 자바 ORM 표준 JPA 프로그래밍 - 기본편섹션 : 2 - JPA 시작하기 -> 애플리케이션 개발먼저 강의에서 영한님께서 설명하신 것처럼 id(1L)와 name("helloA")을 생성하는 코드를 작성한 후, h2에 성공적으로 row가 삽입된 것을 확인하였습니다.그리고, 이어서 또 다른 id(2L)와 name("helloB")를 생성 후, 성공적으로 쿼리가 날려진 것을 목격한 후, h2에서 확인을 진행하였으나 값이 대치가 되어버린 문제 상황을 마주했습니다. 강의에서 영한님께서는 기존 값뿐만 아니라 새로 생성한 값까지 포함해서 총 2개의 row가 존재하는 반면, 저는 기존 row를 새 값이 대치해버림에 따라 row가 하나만 존재하는 상황에 대해서 원인과 해결 방법을 여쭙고자 합니다. 감사합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
ZIPKIN에서 오류 나시는분들
Spring 3버전대에서 zipkin 설정이 바뀌면서 # zipkin: # base-url: http://13.124.192.188:9411 # enabled: true이 부분을 주석처리하고management: tracing: sampling: probability: 1.0 propagation: type: b3 zipkin: tracing: endpoint: "http://localhost:9411/api/v2/spans"위와 같이 설정하였다면 docker run 할때 문제가 생길 수 있습니다! 해당 내용을 토대로 환경변수를 주고 실행을 시켜야 합니다(저도 깜빡하고 왜 오류나지 고민만 했는데.. 설정을 바꿨었더라구요!)user-service docker rundocker run -d --network ecommerce-network \ --name user-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "logging.file=/api-logs/users-ws.log" \ kimtaeheon/user-service:1.0order-service docker rundocker run -d --network ecommerce-network \ --name order-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "spring.datasource.url=jdbc:mariadb://mariadb:3306/mydb" \ -e "logging.file=/api-logs/orders-ws.log" \ kimtaeheon/order-service:1.0
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
need more stock
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품주문 test에서 코드를 똑같이 따라 쳤는데 need more stock exception이 나요그리고 그 아래 상품주문_재고수량초과 테스트를 적을 때 @Test 에 expected를 적는데 expected라는 메소드를 해결할 수 없다고 빨간줄이 떠요링크 공유합니다https://drive.google.com/file/d/1Yr0w6SZWSH3Usqd8Gbx8bhQTcfRmmWHz/view?usp=sharing