inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

엔티티를 반환받을때 어디서 response용 dto로 바꿔주는게 좋나요?

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 파라미터를 받을 때는 컨트롤러에서 메서드 실행될때 이미 dto로 받는건 알겠는데 dto를 저장하기 전에 엔티티로 바꾸는건 어디서 보통 하는건가요? 컨트롤러인가요 서비스인가요? 그리고 리포지토리에서 받아온 엔티티는 어디서 response용 dto로 바꿔주는 건가요? service에서 처리하고 컨트롤러로 보내는 건가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김재원 댓글 1 좋아요 0 조회수 213

컨트롤 안에 DTO

미해결

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

소스코드를 보면 request라 response dto를 따로 격리시키는게 아니라 컨트롤러 소스코드 내에 정의하셨는데 이건 분리하는 게 맞지 않나요...? 혹시 컨트롤러 안에 정의한 이유가 있을까요?

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

Map 방식 인가 구현 이후 로그인 에러

해결됨

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

시큐리티 6.1.6 사용중입니다 지금까지 클론 코딩하면서 진행하고 있는데, 성공 처리 핸들러에서 SavedRequest 에 /error 경로로 이동하도록 나오던데.. 어떤 부분을 봐야할지 감이 안잡힙니다 ㅜㅜ Map 인가 정보도 동일하게 사용했습니다

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
jiny 댓글 1 좋아요 0 조회수 160

spring cloud gateway 에서 eureka의 용도

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강사님 강의 잘듣고 있습니다. 한가지 궁금점은 유레카 서버를 별도로 올리지 않아도 api-gate-way에서 first-service, secound-service 라우팅 및 필터가 가능한데 이떄 유레카의 용도가 무엇인기 궁금합니다. 유레카 서버로 부터 연결된 유레카 클라이언트 정보를 얻는다고 했는데... 유레카 서버를 off해도 routing은 정상적으로 이루어지더라구요 .. 제가 뭔가 잘못 이해하고 있는 부분이 있을까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
김보수 댓글 2 좋아요 0 조회수 438

로그

미해결

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

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

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
jh011007 댓글 1 좋아요 0 조회수 228

엔티티 클래스 만들기 챕터에서 테이블 왜 두개 만들어진 건가요?

미해결

코드로 배우는 React 19 with 스프링부트 API서버

엔티티 클래스 만들기 챕터에서 테이블 왜 두개 만들어진 건가요? 엔티티 클래스 만들기 챕터 8분 36초에서 테이블이 왜 두개 만들어 졌나요?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
현석오 댓글 1 좋아요 0 조회수 168

h2 database 오류

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 계속 이런 오류가 떠요... 어떻게 해결할 수 있을까요 콘솔을 사용해서 jpashop.mv .db 파일을 만들면 IO Exception: null [90028-199] 이런 오류가 발생합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
jh011007 댓글 1 좋아요 0 조회수 525

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

미해결

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

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

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

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 조회수 194

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

해결됨

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

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

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

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 조회수 374

단순 조회용 엔티티

미해결

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

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

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

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

미해결

스프링 시큐리티 OAuth2

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

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

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 조회수 235

slave 청크의 실패 횟수에 따라 나머지 청크를 중지시키는 방법이 있을까요?

미해결

스프링 배치

return new StepBuilder("apiStep", jobRepository) .<HelloVO, Hello>chunk(CHUNK_SIZE, transactionManager) .reader(helloReader(null)) .processor(helloVO -> { LocalDate date = helloVO.getDate(); if(date.getDayOfMonth() == 10){ throw new IllegalStateException("!! " + helloVO); } return helloVO.toEntity(); }) .writer(v -> log.info("write = {}", v)) .listener(partitionLimitSkipListener(null)) .build(); 안녕하세요. 만약 위 상황에서 파티션이 1000개라고 가정할 경우 천 건의 청크가 동작하게 될텐데요. 만약 첫 번재 값이 timeout으로 예외가 발생할 경우, 남은 999건 동일한 timeout이 발생할 수 있다고 예상되고 이런 에러는 장애로 확장될 수 있다고 예상됩니다. 실제로 위의 throw ex 상황에서 failed로 처리된 1000건의 step이 발생함을 확인하였습니다. 이런 문제를 최소화 해야 하는 것에 목적이 있습니다. 이를 해결하기 faultTolerant로 사용하고 chunkListener의 afterError메서드로 step context까지 도달하여 setTerminal 을 하였으나... 이 방법으로는 해결이 되지 않더라고요. 결국 결국 아래와 같이 operator로 처리하였습니다. @Slf4j public class ChunkExceptionCounterListener implements ChunkListener { private int failureCount = 0; private static final int MAX_FAILURES = 3; private final JobOperator jobOperator; public ChunkExceptionCounterListener(JobOperator jobOperator) { this.jobOperator = jobOperator; } @Override public void afterChunkError(ChunkContext context) { failureCount++; log.error("chunk {} exceeds error {}/{}", context.getStepContext().getStepName(), failureCount, MAX_FAILURES); if (failureCount >= MAX_FAILURES) { log.error("stop job! with afterChunkError!"); context.getStepContext().getStepExecution().setTerminateOnly(); // 안됨..ㅠ context.getStepContext().getStepExecution().getJobExecution().setExitStatus(ExitStatus.FAILED); Long jobExecutionId = context.getStepContext().getStepExecution().getJobExecutionId(); try { jobOperator.stop(jobExecutionId); // 이건 된다! } catch (NoSuchJobExecutionException e) { throw new RuntimeException(e); } catch (JobExecutionNotRunningException e) { throw new RuntimeException(e); } } } } 위 방식이 좋은 방식인지는 솔직히 모르겠습니다. 일단 기대하는 것처럼 interrupt로 에러로 남은 모든 step이 stopped되어 좋긴 하였는데, 제가 혼자서 구현한 방식인지라... 최적의 방식인지는 잘 모르겠네요. 더불어 retry template에서 recover callback 메서드를 구현할 경우 청크 파티션 일부의 에러를 마스터 슬레이브 전체에 대한 정지 처리로 할 수 있던 것으로 기억하는데, 이 정도의 튜닝은 제공하는지도 궁금합니다. 감사합니다^^

  • spring-boot
  • spring-batch
박성우 댓글 2 좋아요 0 조회수 153

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

미해결

견고한 결제 시스템 구축

안녕하세요, 좋은 강의 감사합니다. 제공해 주신 코드를 분석해 보고있는데요, 구현한 헥사고날 아키텍쳐에 대한 다이어그램이나 설명이 있으면 이해하기 쉬울것 같은데 혹시 작성하신 게 있으실까요? 예를들어서, 이런 부분의 코드는 어디서 메시지를 가져오는지 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 조회수 317

혹시 현업에서도 예외 테스트 시, 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 조회수 539

회원가입 테스트 에러

미해결

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

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

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

윈도우 빌드

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 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 조회수 452

Constants 가 맞을거 같습니다.

해결됨

개발 입문을 위한 실무자가 알려주는 Spring Boot

상수들을 모아 놓은 클래스이므로 Constants 가 맞는 이름일 거 같습니다.

  • aws
  • spring-boot
  • jpa
아라레 댓글 1 좋아요 0 조회수 160

인기 태그

인프런 TOP Writers

주간 인기글