inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

IO Exception: null [90028-200] 90028/90028 오류

미해결

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

jpashop.mv.db파일이 생성되지 않고 , IO Exception: null [90028-200] 90028/90028 가 뜨는데 제가 이전 수업에서 사용했던 test.mv.db파일이 있어서 jpashop.mv.db파일이 생성이 안되는건지 모르겠습니다. 도움주시면 감사하겠습니다 ㅜㅜ

  • JPA
  • spring
  • java
  • 웹앱
  • spring-boot
신동민 댓글 3 좋아요 0 조회수 3431

FieldError에 arguments로 Integer를 넘겨줬는데 화면에는 콤마가 포함되는 이유가 궁금해요.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

FieldError 생성자 중 arguments에 Object 배열을 전달하는데 분명 Integer 값을 전달했음에도 화면에는 알아서 1000 단위로 콤마가 찍혀서 나오는 이유가 궁금합니다. 혼자서 검색으로 알아보려 했는데 어디서 찾아야 하는지도 몰라 계속 헤매기만 하네요. ㅠㅠ

  • spring
  • MVC
  • spring-boot
  • spring
송민기 댓글 1 좋아요 4 조회수 352

Hibernate5Module가 기본상태일때

미해결

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

하이버네이트 모듈이 기본상태일때 orderItem을 DB에서 자꾸 쿼리하는게 로그상에 보여서 질문드리는데요 이 상태에서 Order엔티티에 "orderItems" 는 1대다 관계로 묶여있어서 당연히 기본이 lazy로딩이라서 orderItems에 접근하지 않는한 DB에서 쿼리하지 않을줄 알았는데 쿼리가 나가더라구요 ..? 왜 그런걸까요 ..?? 제가 배운 내용으로는 이해가 가지 않아서 ㅠㅠ

  • java
  • spring-boot
  • spring
  • JPA
원석나 댓글 4 좋아요 3 조회수 609

강의 포스팅

미해결

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

혹시 강의 정리해서 개인블로그에 포스팅 해도 될까요?? 출처는 남기겠습니다.!

  • spring-boot
  • architecture
  • JPA
  • spring-cloud
  • msa
  • Kafka
lulala 댓글 1 좋아요 1 조회수 199

@Transacional의 범위에 대해서 궁금한 점이 하나 있습니다!

해결됨

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

안녕하세요 강사님. 항상 훌륭한 강의 감사드립니다. 스프링 MVC 1, 2편에서 사용했던 프로젝트에 JPA를 적용시키는 도중 궁금한점이 하나 생겨서 질문드립니다. TestInitData 클래스에 @PostConstruct로 데이터베이스에 초기 데이터들을 넣어두려고 합니다. package com.myservice.web.test ; import com.myservice.domain.item.Item ; import com.myservice.domain.item.ItemRepository ; import com.myservice.domain.member.Grade ; import com.myservice.domain.member.Member ; import com.myservice.domain.member.MemberRepository ; import com.myservice.domain.member.MemberService ; import lombok. RequiredArgsConstructor ; import lombok.extern.slf4j. Slf4j ; import org.springframework.stereotype. Component ; import org.springframework.transaction.annotation. Transactional ; import javax.annotation. PostConstruct ; @Slf4j @Component @RequiredArgsConstructor @Transactional public class TestDataInit { private final ItemRepository itemRepository ; private final MemberService memberService ; private final MemberRepository memberRepository ; /** * 테스트용 데이터 추가 */ @PostConstruct public void init () { itemRepository .save( new Item( "itemA" , 10000 , 10 )) ; itemRepository .save( new Item( "itemB" , 20000 , 20 )) ; itemRepository .save( new Item( "itemC" , 15000 , 15 )) ; Member member1 = new Member() ; member1.setLoginId( "manager" ) ; member1.setPassword( "manager" ) ; member1.setUsername( " 최한슬 " ) ; member1.setGrade(Grade. MANAGER ) ; Member member2 = new Member() ; member2.setLoginId( "user" ) ; member2.setPassword( "user" ) ; member2.setUsername( "USER" ) ; // 바로 memberRepository.save 로 접근하면 현재 스레드에서 사용할 수 있는 EntityManager 가 없다고 오류 발생 memberRepository .save(member1) ; memberRepository .save(member2) ; //memberService.save -> memberRepository.save 로 접근하면 정상적으로 작동 memberService .save(member1) ; memberService .save(member2) ; } } 또한, memberRepository와 memberService는 다음과 같습니다. [memberRepository] package com.myservice.domain.member ; import org.springframework.stereotype. Repository ; import java.util.List ; import java.util.Optional ; @Repository public interface MemberRepository { Long save (Member member) ; Optional<Member> findById (Long id) ; Optional<Member> findByLoginId (String loginId) ; List<Member> findAll () ; } package com.myservice.domain.member ; import lombok. RequiredArgsConstructor ; import org.springframework.context.annotation. Primary ; import org.springframework.stereotype. Repository ; import javax.persistence.EntityManager ; import java.util.List ; import java.util.Optional ; @Repository @RequiredArgsConstructor @Primary public class JpaMemberRepository implements MemberRepository { private final EntityManager em ; @Override public Long save (Member member) { em .persist(member) ; return member.getId() ; } @Override public Optional<Member> findById (Long id) { Member member = em .find(Member. class, id) ; return Optional. ofNullable (member) ; } @Override public Optional<Member> findByLoginId (String loginId) { Member member = em .createQuery( "select m from Member m where m.loginId = :loginId" , Member. class ) .setParameter( "loginId" , loginId) .getResultStream() .findAny() .orElse( null ) ; return Optional. ofNullable (member) ; } @Override public List<Member> findAll () { return em .createQuery( "select m from Member m" , Member. class ) .getResultList() ; } } [memberService] package com.myservice.domain.member ; import lombok. RequiredArgsConstructor ; import org.springframework.stereotype. Service ; import org.springframework.transaction.annotation. Transactional ; @Service @Transactional @RequiredArgsConstructor public class MemberService { private final MemberRepository memberRepository ; public void save (Member member) { memberRepository .save(member) ; } } 현재 MemberService에는 @Transactional이 걸려있고, memberRepository에는 @Transactional 걸려있지 않습니다. 궁금한점은 TestDataInit 클래스의 init() 메서드에서 바로 memberRepository로 접근하게되면 사용할 수 있는 EntityManager가 없다고 나오며, memberService->memberRepository로 접근하게 되면 정상적으로 처리되는 것을 확인하였습니다. 두 방식 모두 결국 memberRepository를 통해 save를 수행하게 되는데 바로 memberRepository의 접근은 오류가 발생하고 memberService를 통한 접근은 정상적으로 처리되는 이유를 모르겠습니다.

  • JPA
  • java
  • spring
  • 웹앱
  • spring-boot
최한슬 댓글 4 좋아요 1 조회수 641

질문있습니다.

미해결

실전! 스프링 데이터 JPA

안녕하세요 insert 벌크 쿼리에 관해 질문있습니다. 강의에서 말씀해주신 대로 해보니 delete와 update의 경우 한번에 처리되는 것을 확인할 수 있었습니다. 문제는 Insert 였습니다. 저는 MySQL 를 사용하면서 IDENTITY 전략을 사용해왔었는데 MySQL의 경우 벌크 INSERT 쿼리를 날리기 위해서는 찾아보니 Batch Insert를 사용하기 위해서는 IDENTITY 전략이 아니라 TABLE 전략을 사용해야 한다고 하더라구요. 제가 궁금한 점은 아래와 같습니다. 1. 다른 ENTITY들은 IDENTITY 전략을 사용하고 Batch Insert가 필요한 특정 ENTITY만 TABLE 전략으로 변경해도 괜찮을까요? 2. 실무에서는 INSERT 쿼리를 한 번에 날리기 위해서는 어떤 방식을 사용하나요?? 감사합니다 :) 2.

  • spring
  • spring-boot
  • JPA
  • java
최준성 댓글 1 좋아요 2 조회수 277

User 반환값, 에러처리2개 총 3개 질문있습니다!!

해결됨

Spring Boot JWT Tutorial

정말 너무 잘보고있습니다!! 짧지만 정말 좋았는데요...! 질문이 3개가 있습니다. 1. 이게 반환값으로 롬복 Setter가 적용된 User를 그대로 반환하고 JsonIgnore어노테이션을 붙여줬는데, 실제 프로젝트에서는 반환하는 DTO를 따로 만들고 롬복 셋터도 빼주고 빌더애들도 접근제한을 걸어주면 되는걸까요? 2. 그리고 jwt에러관련애들을 따로 패키지안에 만들어두고 각각 다른 implement를 했는데, RuntimeException을 구현(상속)받고 RestControllerAdvice로 한꺼번에 모아서 에러리스폰스를 보내줘도 되는거죠? 3. Validation에 메세지를 적었는데, 저는 json 바디에 담겨서 나올 줄 알았는데 애플리케이션 레벨에서 WARN 으로 나오는데, 서버에러 500뜨고 아무것도 안나오더라구요.. 어노테이션 메세지로 적어봤자 직접 에러객체를 만들어서 보내주지 않는 이상 Validation의 message=""는 서버개발자쪽만 보는 게 되는건가요? + 추가로 @RequestHeader를 이용하는것도 있으면 좋을것같아요! 그리고 mockMvc로 api테스트하는것과, 인텔리J의 httpRequest 파일을 활용하는 방법도있더라구요! 포스트맨처럼 환경변수 받아서 저장하는것도있구요 강의잘봤습니다

  • return
  • jwt
  • spring-boot
보키 댓글 2 좋아요 4 조회수 408

MS간 호출에 있어 질문이 있습니다.

미해결

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

feign client를 이용해 order-service의 컨트롤러를 호출하는 방식으로 이해했습니다. 그런데, 실제 order-service의 getOrder라는 컨트롤러 메서드는 반환타입이 ResponseEntity로 한번 감싸져 있습니다. 이를 user-service에서 이용할때는 ResponseEntity가 벗겨진 List<ResponseOrders>를 바로 사용했구요. 아마, @FeignClient 어노테이션을 사용함으로써 이렇게 바로 파싱받아 사용할 수 있는 것 같은데.. ResponseEntity로 감싸져 있는 것만 파싱할 수 있는건가요?

  • JPA
  • spring-cloud
  • spring-boot
  • architecture
  • Kafka
  • msa
댓글 1 좋아요 2 조회수 368

레포지토리에 @Transactional을 안붙이는 이유

해결됨

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

Service에는 Transactional 어노테이션을 달지만 레포지토리에는 달지 않는 이유가 궁금합니다. 서비스에만 어노테이션을 달아도 서비스에서 레포지토리의 메소드를 호출하니 레포지토리에까지 Transactional 어노테이션이 적용되어서 그런건가요??

  • JPA
  • spring-boot
  • spring
  • 웹앱
  • java
hello 댓글 1 좋아요 3 조회수 1404

Config Server 설정파일 관리방법 질문

미해결

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

안녕하세요. 선생님 Spring Cloud Config Server 의 설정파일 관리에 대해 문의드립니다. Config Server 의 설정값도 변경이 필요한 항목들이 있어보입니다. RabbitMQ 브로커의 주소라던가, Https 사용시 KeyStore 의 위치 라던가, 몇가지 항목이 수정될때, Config Server 도 그 값을 적용할 수 있을까 고민이 됩니다. 제가 확인한 항목은 Remote Repository 에 application.yaml 항목을 만들면 Config Server 도 actuator/metrix 확인 시 propertySources 로 읽어 오는 것을 확인했습니다. 다만 해당값들이 적용은 되지 않았습니다. 오케스트레이션에서 ENV 값을 바꾸어서 롤링업데이트를 수행해도 되겠지만, Config Server 자체에서 Uptime 으로 자체 설정값 변경내용을 적용하고 싶습니다.

  • spring-boot
  • architecture
  • spring-cloud
  • JPA
  • msa
  • Kafka
Jack 댓글 2 좋아요 1 조회수 721

대쉬보드에 데이터를 못가져오는것 같습니다.

미해결

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

안녕하세요 이제 거의 강의가 끝나가네요 ㅠ 그라파나관련 질문이 있습니다. 대쉬보드 설정을 맞게 한거같은데 데이터를 불러오지 못하는것 같습니다. Data sources: 프로메테우스 설정정보 apigateway-service 에 대한 cpu, memory used 이런 차트는 잘 나오는데 requests served 의 데이터 표시, success api gateway의 차트는 N/A 또는 No data라고 뜨는데 원래 값이 안나오는 것이 맞는지 아니면 뭔가 잘못된 것인지 잘모르겠습니다. (프로메테우스에서 spring_cloud_gateway_requests_seconds_count값을 넣었을때 값이 있으면 나와야 하는것 아닌가요?)

  • spring-cloud
  • spring-boot
  • JPA
  • architecture
  • msa
  • Kafka
lulala 댓글 3 좋아요 3 조회수 2695

dto 로 변환 단계에 대해 질문드립니다!

해결됨

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

안녕하세요! entity를 dto로 변환하는게 좋다 하셨는데 repository에서 service로 넘겨줄때 dto를 넘기는게 맞나요 아니면 repository에서는 entity를 넘겨주고 service에서 controller로 넘겨줄때 dto로 변환해서 넘겨주는게 맞나요??

  • java
  • spring-boot
  • 웹앱
  • spring
  • JPA
박상호 댓글 1 좋아요 4 조회수 658

assertThrows 오류 관련

해결됨

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

안녕하세요. serviceTest를 하던중에 막혀서 이것저것 다 해봤지만 안돼서 질문드립니다. 다음 사진과 같이 assertThrow에서 오류가 발생합니다. 그래서 이전 코드들도 쭉 봤는데 그렇다기엔 try catch 문에서는 정상적으로 작동합니다. 뭐가 문제일까요?

  • spring
  • spring-boot
  • java
  • MVC
Kun 댓글 1 좋아요 0 조회수 771

연관관계 메서드 질문입니다!

미해결

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

강사님 Order클래스에서 연관관계 메서드를 만드실 때 Member에 대한 연관관계 메서드의 경우 public void setMember(Member member)라고 하셨는데 그 이전에 lombok으로 이미 setter를 만들어 주셨는데 그렇게 되면 lombok으로 만든 setter는 연관관계 메서드에 의해 무시가 되는건가요?

  • spring
  • spring-boot
  • java
  • JPA
  • 웹앱
박정훈 댓글 3 좋아요 0 조회수 492

이번강의에서 rabbitmq server 를 실행시켰는데 어떤 용도로 사용되었나요?

미해결

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

microservice 분산추적 강의를 전부 봤지만 rabbitmq가 어떤용도로 사용되었는지 잘 모르겠습니다. CircuitBreaker 와 Slueth, Zipkin 을 구현하는데 rabbitmq 가 필요하나요? 전체 강의를 다 본다음 다시한번 봐야겠네요.

  • rabbitmq
  • JPA
  • spring-boot
  • spring-cloud
  • architecture
  • msa
  • Kafka
blue-sky 댓글 1 좋아요 1 조회수 565

form tag중 action에서 질문이 있습니다.

미해결

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

회원 등록시 html form에는 action="/members/new"로 되어있는데 < form role ="form" action ="/members/new" th:object ="${memberForm}" method ="post" > --- 새로운 아이템 등록시 html form에는 action="@{/items/movie/new}"로 되어있습니다. < form th:action ="@{/items/movie/new}" th:object ="${form}" method ="post" > 이 '{@"" }'의 차이가 뭔지 왜 빼거나 넣으면 작동이 안되는지 이유와 역활을 알려주시면 감사하겠습니다.

  • spring
  • JPA
  • spring-boot
  • 웹앱
  • java
댓글 1 좋아요 0 조회수 729

totalCount는 어디서 쓰이나요?

미해결

실전! 스프링 데이터 JPA

페이징하면 제일 먼저 생각나는게 영한님이 말씀하신것 처럼 게시판의 페이징 기능이 생각이 납니다. Member가 m1~m5까지 있을때 이름, 나이 m1 AAA 10 m2 BBB 10 m3 CCC 10 m4 DDD 10 m5 EEE 10 이렇게 나이는 동일하고 이름만 다른 조건이 있다고 했을 경우 강의에서 offset과 limit을 활용하여 3개씩 잘라서 1 page = m1,m2,m3 2page = m4,m5 이렇게 나누는것 까지는 잘 이해가 됐습니다. 하지만 이때 totalCount는 강의내용을 참고하면 age가 같은 사람의 개수이니 5 라는 숫자가 나오게 되는데요 이 totalCount는 어디서 쓰이는건가요? 제가 생각하는 페이징에는 offset과 limit만 있어도 게시글 다음페이지 이런걸 할 수 있을거 같은데 어디서 쓰이는지 궁금합니다 ㅎㅎ

  • spring-boot
  • java
  • JPA
  • spring
ariwarabbang 댓글 1 좋아요 0 조회수 289

jpa 숙련도 향상 관련

미해결

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

영한님이 조언해주신 것 처럼 Spring data jpa 익히기 전에 JPA 먼저 제대로 숙지하고 넘어가고자 하는데요. 강의에서 빠른 수업 진행을 위해 간략히 구성한것들 full로 구현해보는 것 외에 추가적으로 학습하기 좋은 방법이 잇을까요? 개인적으로 공부하는거라 실무에 적용해 볼수가 없어 질문드립니다. 답변주시면 감사드리겠습니다.

  • spring-boot
  • JPA
  • spring
  • java
유승현 댓글 1 좋아요 0 조회수 276

안녕하세요 선생님 V2방식에대한 질문

미해결

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

회원등록 V2 방식을 그대로 사용하고 POSTMAN에서 POST방식으로 BODY안에 CreateMemberRequest 클래스의 필드와 같은값으로 데이터를 전송해봤습니다. 그런데 기본생성자가 없을경우에는 "org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class jpashops.ormonetwocombine.dto.RequestItemDto]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `jpashops.ormonetwocombine.dto.RequestItemDto` 포스트맨 에러입니다 이런 에러 구문이 나오더군요, 그런데 기본생성자를 CreateMemberRequest에 추가해주고 다시 Postman으로 전송하더니 잘되더군요, 받아온 JSON 데이터를 파싱하는데 기본생성자가 원래 필수인가요~?

  • JPA
  • spring-boot
  • spring
  • java
woojin126 댓글 1 좋아요 2 조회수 373

application.yml이 아닌 application.properties 쓰시는 분은 이거 쓰시면 됩니다!

미해결

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

스프링 생성시 버전이 높아 application.properties로 생성되시는 분은 yml쓰셔도 되고 아님 properties 파일에 밑에 복붙하시면 되세요! # H2 설정 spring.datasource.url = jdbc:h2:tcp://localhost/~/jpashop spring.datasource.username = sa spring.datasource.password = spring.datasource.driver-class-name = org . h2 . Driver # JPA 설정 spring.jpa.hibernate.ddl-auto = create spring.jpa.properties.hibernate.format_sql = true # Log 설정 logging.level.org.hibernate.SQL = debug logging.level.org.hibernate.type = trace

  • 웹앱
  • spring-boot
  • java
  • JPA
  • spring
박상호 댓글 5 좋아요 12 조회수 751

인기 태그

인프런 TOP Writers

주간 인기글