inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

통신해서 받는 것과 만들어서 사용하는 것

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 변경감지 기능을 사용하기 위해서 데이터 베이스 통신해서 데이터를 가져와서 쓰는 것과 기존에 set으로 BookForm 객체 만드는 것에 대해서 여쭤보고 싶은게 있습니다. 데이터베이스 통신이 한 번 더 일어나는데 위험성이 증가하거나 하진 않나요..? 옛날에 사수한테 웬만하면 데이터베이스 통신하는 일을 줄이라고 했던 일이 기억나서 여쭤봅니다

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
마이티 댓글 2 좋아요 1 조회수 149

MemberServiceTest db에 엔티티 추가X

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

package jpabook.jpashop.Service; import jpabook.jpashop.Repository.MemberRepository; import jpabook.jpashop.domain.Member; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; 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.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; import static org.junit.jupiter.api.Assertions.*; @ExtendWith(SpringExtension.class) @SpringBootTest @Transactional class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test @Rollback(false) 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 public void 중복_회원_예외() throws Exception { //given //when //then } } Member 테이블에 추가가 안되네요

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
방경원 댓글 1 좋아요 0 조회수 186

JpaTransactionManager 사용할 경우 커넥션 로깅 질문

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

DataSourceTransactionManager의 로그에는 사용되고 있는 커넥션의 정보(ex. conn0)가 자세히 나오는데, JpaTransactionManager를 사용할 경우에는 위와 같이 몇번째 커넥션이 사용되고 있는지에 대한 정보가 잘 나오지 않는 것 같습니다. JPA를 사용할 경우, 위 사진과 같이 스레드가 커넥션 풀에서 어떤 커넥션을 가져오고 반환하는지를 알 수 있는 방법이 있는지 궁금합니다!

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
cho766 댓글 2 좋아요 0 조회수 114

react.js 프론트 소스 파일 부탁합니다..

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

웹을 구현하는데 프론트앤드가 필요한데, 프론트는 소스 코드를 제공하지 않는다는게 좀 의아합니 어쨌든 프론트 소스코드 파일 react.js 부탁합니다.. skii4@hanmail.net

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 169

p6spy 적용 시 gradle 프로젝트가 빌드되지 않습니다.

미해결

실전! 스프링 데이터 JPA

java 버전17.0.9이고 springboot 버전은 3.2.10-SNAPSHOT 입니다. implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' build.gradle 파일에 로그 관련 부분 추가하니 아래와 같이 오류가 나는데 이유를 모르겠습니다. Caused by: java.lang.NoClassDefFoundError: org/apache/maven/settings/building/SettingsBuildingRequest at org.gradle.api.internal.artifacts.DependencyManagementBuildScopeServices.createMavenSettingsProvider(DependencyManagementBuildScopeServices.java:289) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125) at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke(ReflectionBasedServiceMethod.java:35) at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:916)

  • java
  • spring
  • spring-boot
  • jpa
닉네임_한글 가능 댓글 1 좋아요 1 조회수 365

단순 조회용 엔티티

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요! 프로젝트를 진행하는 도중 영한님 강의가 생각 나 궁금한 게 생겨 문의납깁니다. 테이블의 모든 값들을 전체 조회하며, 거의 변하지 않는 데이터를 단순 조회하는 용도로 쓸 때도 DTO를 통해 조회하는 게 좋을까요? (예시: 프로젝트 실행 시 csv파일 또는 엑셀파일을 통해 DB에 자동 저장되게 만든 도시 데이터 등을 확인하는 단순 get List, 여행•숙박 사이트에 기본으로 저장되어있는 지역 카테고리 등)

  • java
  • spring
  • spring-boot
  • jpa
나벨 댓글 1 좋아요 0 조회수 114

의존한다는것이 무슨의미인가요?

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

강의를 듣다가 갑자기 궁금한게 생겨서 질문드립니다. 강의내에서, throws SQLException을 하게되면 SQLException을 의존 한다고 하셨는데요. 여기서 의존 한다는게 어떤의미인지 모르겠습니다.. 의존성주입의 의미는 아닌거같고.. 이 부분에서는 의존 한다는게 사용한다, 알고있다는 의미인건가요?? 어떤의미인것인지 질문드립니다..!

  • spring
  • mvc
  • spring-jdbc
오리쉐리 댓글 1 좋아요 0 조회수 145

logTrace를 파라미터로 받는 이유 ?

해결됨

스프링 핵심 원리 - 고급편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. InterfaceProxyConfig에서 logtrace를 파라미터로 받아오는 특별한 이유가 있을까요 ? logtrace를 이런식으로 생성자 주입으로 받아서 사용한다면 문제가 생길까요 ? 정상작동은 하는데 궁금합니다. @RequiredArgsConstructor @Configuration public class InterfaceProxyConfig { private final LogTrace logTrace; @Bean public OrderControllerV1 orderController(){ OrderControllerV1Impl controllerImpl = new OrderControllerV1Impl(orderService()); return new OrderControllerInterfaceProxy(controllerImpl,logTrace); } @Bean public OrderServiceV1 orderService(){ OrderServiceV1Impl serviceImpl = new OrderServiceV1Impl(orderRepository()); return new OrderServiceInterfaceProxy(serviceImpl,logTrace); } @Bean public OrderRepositoryV1 orderRepository(){ OrderRepositoryV1Impl repositoryImpl = new OrderRepositoryV1Impl(); return new OrderRepositoryInterfaceProxy(repositoryImpl,logTrace); } }

  • spring
  • 디자인-패턴
deoksam 댓글 1 좋아요 0 조회수 258

동시성 문제 해결방안

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

@Transactional public void decrease(Long id, Long quantity) { Stock stock = stockRepository.findById(id).orElseThrow(); stock.decrease(quantity); stockRepository.saveAndFlush(stock); } 현재 강의 코드인데, 락을 사용해서 해결을 할 수도 있지만, 그냥 아래와 같이 JPQL을 사용해서 해결할 수 있지 않나요? @Transactional public void decrease(Long id, Long quantity) { Stock stock = stockRepository.findById(id).orElseThrow(); if (stock.getQuantity - quantity < 0) { throw new RuntimeException("재고는 0개 미만이 될 수 없습니다."); } stockRepository.decrease(id, quantity); } @Modifying @Query("UPDATE Stock s SET s.quantity = s.quantity - :quantity WHERE s.id = :id") public void decrease(@Param("id") Long id, @Param("quantity") Long quantity); 락을 사용하는 것보다 이렇게 하는게 비용이 더 적을 것 같은데, 이렇게 하지 않는 이유를 알 수 있을까요??

  • java
  • spring
  • 동시성
gelab 댓글 2 좋아요 0 조회수 325

Datasource 분리 의미

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

커넥션 문제가 발생할 수 있어 네임드락을 사용하는 경우 각 트랜잭션마다 Datasource를 분리해주는 것이 좋다고 하셨는데, Datasource를 분리해준다는 것은 서로 다른 DB를 사용해야 하는 것인가요?

  • java
  • spring
  • 동시성
gelab 댓글 2 좋아요 1 조회수 420

비대칭키 내용 중 궁금한게 있습니다.

미해결

스프링 시큐리티 OAuth2

데이터 보안 측면에서 송신자 공개키 로 암호화 -> 송신자 개인키 로 복호화를 한다고 적혀있는데요. 수신자가 송신자의 개인키를 가지고 있다는게 보안적으로 문제가 되는게 아닌가 싶습니다. 수신자 공개키 로 암호화 -> 수신자 개인키 로 복호화의 오타인 것인지, 아니라면 어떻게 보안적으로 괜찮은건지 궁금합니다.

  • java
  • spring
  • spring-boot
  • oauth
화이팅 댓글 1 좋아요 0 조회수 125

ProxyApplication 질문

해결됨

스프링 핵심 원리 - 고급편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. LogTrace를 @Bean등록할때 ProxyApplication 쪽에 등록한 특별한 이유는 없는건가요 ? 그냥 InterfaceProxyConfig안에 등록해도 상관은 없는거죠 ? @Configuration public class InterfaceProxyConfig { @Bean public OrderControllerV1 orderController(LogTrace logTrace){ OrderControllerV1Impl controllerImpl = new OrderControllerV1Impl(orderService(logTrace)); return new OrderControllerInterfaceProxy(controllerImpl,logTrace); } @Bean public OrderServiceV1 orderService(LogTrace logTrace){ OrderServiceV1Impl serviceImpl = new OrderServiceV1Impl(orderRepository(logTrace)); return new OrderServiceInterfaceProxy(serviceImpl,logTrace); } @Bean public OrderRepositoryV1 orderRepository(LogTrace logTrace){ OrderRepositoryV1Impl repositoryImpl = new OrderRepositoryV1Impl(); return new OrderRepositoryInterfaceProxy(repositoryImpl,logTrace); } @Bean public LogTrace logTrace(){ return new ThreadLocalLogTrace(); } 이런식으로요. 생각해보면 logtrace는 proxyconfig쪽이랑은 크게 연관성이 없는거같긴한데 궁금해서요 ..

  • spring
  • 디자인-패턴
deoksam 댓글 1 좋아요 0 조회수 176

AuthenticationProvider 사용방법 - 빈으로 생성 질문 있습니다.

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

17~18분 사이에 설명에서 builder와 configuration 이 같은 ProviderManager를 가져온다고 하시는데요. 디버깅된 사진을 보면 customAuthenticationProvider 추가는 8334번 providers에 추가가 되고, configuration에서 ProviderManager 가져와서 0번째 provider를 지운것은 parent 안에 있는 8340 리스트에서 제거한것처럼 보여지는데 맞을까요???

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
cykkkk 댓글 2 좋아요 0 조회수 230

전체적인 헥사고날 아키텍쳐 설명

미해결

견고한 결제 시스템 구축

안녕하세요, 좋은 강의 감사합니다. 제공해 주신 코드를 분석해 보고있는데요, 구현한 헥사고날 아키텍쳐에 대한 다이어그램이나 설명이 있으면 이해하기 쉬울것 같은데 혹시 작성하신 게 있으실까요? 예를들어서, 이런 부분의 코드는 어디서 메시지를 가져오는지 intellij 로 검색해봐도 나오질 않아서요. package com.example.paymentservice2.payment.adapter.`in`.stream @Configuration @StreamAdapter class LedgerEventMessageHandler ( private val paymentCompleteUseCase: PaymentCompleteUseCase ) { @Bean fun ledger(): Function<Flux<Message<LedgerEventMessage>>, Mono<Void>> { return Function { flux -> flux.flatMap { message -> paymentCompleteUseCase.completePayment(message.payload) .then(Mono.defer { message.headers.get(KafkaHeaders.ACKNOWLEDGMENT, ReceiverOffset::class.java)!!.commit() }) }.then() } } } 그리고, adapter 내부의 in, out 폴더와 application 내부의 in, out 폴더의 차이점은 뭔가요?? P.S 수준 높은 코드라서 매우 좋습니다. 다른 강의도 이정도 수준이면 수강할 것 같습니다. 타강사님들의 강의는 쉬운것들이 많아서 경쟁력이 있으신것 같아요.

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
광전사 댓글 1 좋아요 0 조회수 306

3분 55초에 HelloServlet 클래스를 만들어서 스프링 테스트 실행 해봤는데 오류가 발생합니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] https://drive.google.com/file/d/1oarfNr9oWYa93-YMLIPBrK-P1yc87EQF/view?usp=drive_link 해당 링크는 작성한 코드 압축 파일입니다. 에러 메세지는 Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 라고 뜨구요 APPLICATION FAILED TO START 라고 나옵니다. 구글링 하면서 찾아보다 어떻게 해결하는지 모르겠어서 질문 남깁니다.

  • spring
  • mvc
홍혁진 댓글 1 좋아요 0 조회수 275

SpringMemberControllerV2 핸들러 매핑 과정이 궁금합니다

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

처음엔 스프링이 @Controller가 붙어있는 SpringMemberControllerV2를 스프링 빈으로 등록하고 @RequestMapping옆에 있는 url 정보를 인식해서 담아둡니다. 그 다음 url요청("/spring/mvc/v2/members/new-form")이 오면 DispatcherServlet이 RequestMappingHandlerMapping을 이용하여 handler(SpringMemberControllerV2)를 반환 받고 사용할 수 있는 어댑터를 조회해서 RequestMappingHandlerAdapter를 반환 받습니다. DispatcherServlet은 어댑터를 실행하여 SpringMemberControllerV2 객체에서 @RequestMapping("/spring/mvc/v2/members/new-form")이 붙은 메서드를 실행합니다. 라고 이해했는데 틀린 부분이 있으면 수정 부탁드립니다.

  • spring
  • mvc
박준영 댓글 1 좋아요 1 조회수 169

혹시 현업에서도 예외 테스트 시, Assertions.assertThrows 를 많이 사용하나요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@Test void 상품주문_재고수량초과() throws Exception { //given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); int orderCount = 11; //when // orderService.order(member.getId(), item.getId(), orderCount); //then Assertions.assertThrows(NotEnoughStockException.class, () -> orderService.order(member.getId(), item.getId(), orderCount),"재고 수량 부족 예외가 발생해야 한다."); } Assertions.assertThrows 사용 시 파라미터 자체에 로직을 넣어줘야 해서, JUnit4 의 expected 옵션과 다르게 테스트의 when 항목을 적지 않아도 되는 상황이 발생하는 것 같아서요. 현업에서도 이 방식을 주로 사용하시나요? (+ 추가 질문) junit 과 assertj.core 라이브러리를 함께 쓰는 경우엔 이렇게 한 쪽을 지저분하게 쓸 수 밖엔 없나요? (isEqualTo와 assertThrows를 하나의 테스트 클래스에서 같이 쓰는 경우) @Test void 주문취소() throws Exception { //given Member member = createMember(); Book item = createBook("시골 JPA", 10000, 10); int orderCount = 2; Long orderId = orderService.order(member.getId(), item.getId(), orderCount); //when orderService.cancelOrder(orderId); //then Order getOrder = orderRepository.findOne(orderId); org.assertj.core.api.Assertions.assertThat(getOrder.getStatus()).isEqualTo(OrderStatus.CANCEL); org.assertj.core.api.Assertions.assertThat(item.getStockQuantity()).isEqualTo(10); }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
맥스 댓글 1 좋아요 0 조회수 528

회원가입 테스트 에러

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 다음과 같은 에러가 발생합니다 이유가 궁금합니다

  • java
  • spring
  • mvc
  • spring-boot
ghtndl 댓글 2 좋아요 0 조회수 217

윈도우 빌드

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] JDK은 21로 Gradle은 8.5로 맞췄는데요 gradlew build하면 BUILD FAILED가 뜨지만 localhost:8080 은 잘작동합니다. 파일경로에는 한글포함안되어있고 gradlew clean build해도 동일한 오류가 발생합니다. 해당 오류가 왜 발생하는지 그냥 진행해도 되는지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
댓글 2 좋아요 0 조회수 440

15강 rest 인증 성공 핸들러 관련 문의

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

안녕하세요. 선생님 학습중에 에러가 발생하여 문의드립니다. 인증 성공 핸들러에 onAuthenticationSuccess 메소드로 넘어 오는데 authentication.getPrincipal() 의 타입이 java.util.ImmutableCollections$List12 로 와서 AccountDto로 cast가 안되는 에러가 발생하는데 원인을 모르겠습니다. ㅠㅠ 에러 내용 java.lang.ClassCastException: class java.util.ImmutableCollections$List12 cannot be cast to class com.test.security.domain.dto.AccountDto (java.util.ImmutableCollections$List12 is in module java.base of loader 'bootstrap'; com.test.security.domain.dto.AccountDto is in unnamed module of loader 'app') 에러 발생한 부분 AccountDto accountDto = (AccountDto) authentication.getPrincipal();

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
김태건 댓글 2 좋아요 0 조회수 162

인기 태그

인프런 TOP Writers

주간 인기글