inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Optional 사용 방법에 대해서 질문드립니다.

해결됨

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

1) Optional<Member> result = memberRepository.findByName(member.getName()); 2) Member result = memberRepository.findByName(member.getName()).get(); 1. 위 코드에서 2번의 방법보다 1번 같은 사용법을 권장한다고 하셨습니다. 1) memberRepository.findByName(member.getName()) .ifPresent( m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); 2) Optional<Member> result = memberRepository.findByName(member.getName()); result.ifPresent( m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); 2. 또한 바로 위의 코드에서도 2번의 방법보다 1번의 방법 사용을 권장한다고 말씀하셨습니다. 위 방법들이 권장되는 이유가 궁금합니다. 또 권장되는 Optional 사용법 같은게 따로 문서로 존재하는건가요?

  • java
  • spring
  • spring-boot
  • MVC
도호 댓글 1 좋아요 0 조회수 367

변경 감지와 cascade 질문

미해결

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

안녕하세요, 공부하다 cascade 옵션과 변경 감지에 혼동되는 점이 있어 질문 드립니다. 주문 생성 메서드(order)의 경우, Order -> OrderItem / Order -> Delivery가 Cascade 설정이 되어 있어 orderRepository.save(order)만 하더라도 연관된 OrderItem과 Delivery가 각각 Insert된다고 이해했습니다.(remove, detach 등등 모두 동일) 주문 취소 메서드(cancelOrder)를 보면 orderId를 통해 order를 조회하고(조회된 order는 영속 상태), order.cancel()시 orderItem.cancel()과 그 안의 item.addStock()을 통해 변경감지가 되어 order와 item의 update 쿼리가 실행된다고 하셨습니다. 여기서 제가 헷갈리는 부분은 주문 취소시 item이 변경감지가 되어 update쿼리가 실행되는 부분인데요. item.addStock()을 통해 item의 update 쿼리가 실행됐다는 것은 item이 영속성 컨텍스트에 영속상태가 되었다는 것을 뜻하는데, 단순히 order를 orderRepository로 조회를 하게 되면 order와 연관된 모든 엔티티들이 영속상태가 되는 것인가요? (order 한 개 조회 시-> orderItem... 영속-> item... 영속) 위의 과정이 맞다면 연관된 여러 엔티티의 변경감지는 cascade 설정과는 무관하게 엔티티 조회 시 관련된 엔티티는 모두 영속화 되는 것인지 궁금합니다. (order -> orderItem -> item 의 변경감지를 위해 order->orderItem cascade.ALL 설정 & orderItem->item cascade.ALL 설정이 되어야 orderRepository를 통해 order 조회 시 하위 엔티티들이 모두 영속화 되는 것인가?) 만일 연관관계가 있는 엔티티들이 cascade설정이 되어있어야 모두 영속성 상태로 변하는 것이라면 order->orderItem에는 cascade.ALL 설정이 있으나 orderitem->item에는 cascade.ALL 설정이 없는데 order -> orderItem -> item 순으로 변경감지가 되는지 궁금합니다. 질문이 좀 길어졌는데요 변경감지와 cascade 두 개념에 혼동이 와서... 위 질문에 답변해주시면 감사하겠습니다!

  • JPA
  • spring
  • 웹앱
  • java
  • spring-boot
윤빵꾸 댓글 1 좋아요 2 조회수 489

페이징 질문

미해결

실전! 스프링 데이터 JPA

안녕하세요 선생님! 강의를 듣다가 궁금한게 생겨 몇 가지 질문드립니다. 1. @Query를 이용해서 jpql 페치조인을 한 경우, 페이징을 하려할때 다음과 같은 에러가 뜹니다. @Query("select m from Member m join fetch m.team") Page<Member> findFetchJoinTeam(Pageable pageable); @Test void member (){ Team teamA = teamRepository .save( new Team( "teamA" )) ; memberRepository .save( new Member( "member1" , 40 , teamA)) ; memberRepository .save( new Member( "member2" , 40 , teamA)) ; memberRepository .save( new Member( "member3" , 40 , teamA)) ; PageRequest pageRequest = PageRequest. of ( 0 , 3 , Sort. by (Sort.Direction. DESC , "username" )) ; Page<Member> fetchJoinTeam = memberRepository .findFetchJoinTeam(pageRequest) ; } Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository' defined in com.example.forq.MemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Count query validation failed for method public abstract org.springframework.data.domain.Page com.example.forq.MemberRepository.findFetchJoinTeam(org.springframework.data.domain.Pageable)! paging에서 count 부분이 문제인것 같은데 entitygraph로 하면 잘 돼서 제가 뭔가를 놓친건지 궁금합니다 public interface MemberRepository extends JpaRepository<Member , Long> { @Override @EntityGraph (attributePaths = { "team" }) Page<Member> findAll (Pageable pageable) ; } 2. where 등으로 필터링을 하지 않을떄는 countQuery를 분리해서 최적화를 하면된다고 하셨는데 만약 select m from Member m join m.team t where t.name=:name &rdquo;같이 조인 대상에 필터링을 하는 경우에는 어떻게 최적화를 할 수 있는지 궁금합니다. 감사합니다!

  • spring
  • java
  • JPA
  • spring-boot
현집 댓글 2 좋아요 3 조회수 1308

[공유] 스프링 form, spring 태그 500 오류

미해결

윤재성의 만들면서 배우는 Spring MVC 5

질문게시판을 보니 6달 전에도 저와 같은 문제를 겪으신 분이 있었네요. 제가 겪은 오류는 taglib prefix="form"과 taglib prefix="spring" 사용 시 500 오류 가 발생하는 것이었습니다. 인터넷을 일주일을 검색하며 왠만한 여러가지 방법들은 전부 시도해본 것 같습니다. 그래도 해결이 안되었습니다. -------------오류 내용--------------------------- 절대 URI인 [http://www.springframework.org/tags/form]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다. 절대 URI인 [http://www.springframework.org/tags]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다. --------------------------------------------------------------- 보고 또 보았던 오류메세지를 보던 중 문득 'Maven dependencies엔 필요한 jar 파일들이 다 다운로드가 된 것 같은데..., 다 있는데 왜 못 찾는다는 걸까' 하는 생각이 들어 WEB-INF 폴더 하위 lib 폴더 안에 spring webmvc jar 파일을 직접 넣었습니다. 또는 tomcat이 설치된 경로의 lib에 spring webmvc jar 파일을 넣으면 WEB-INF/lib 에 넣지 않아도 잘 실행이 됩니다. 저같은 경우는 이 방법으로 오류가 해결되었습니다. 아직도 이전에 오류가 왜 발생했는지 모르겠고 이렇게 하니까 왜 되는지 모르지만 같은 오류로 고생하시는 분이 있을까 하여 공유드립니다.

  • form
  • XML
  • spring
  • taglib
  • java
  • spring
  • 500
  • 16강
  • MVC
  • 17강
  • 29강
hello world 댓글 2 좋아요 4 조회수 5875

스프링 부트 사용시 WebMvcConfigurerSupport 클래스

해결됨

스프링 웹 MVC

항상 좋은강의 감사드립니다! spring-boot-web-starter 를 사용하면 추이적으로 JacksonJSON2 의존성이 추가되고 WebMvcConfigurerSupport 에 클래스패스에 HTTP 메세지 컨버터 관련 의존성이 있으면, DispathcerServlet 이 사용할 HTTP 메세지 컨버터로 추가해주는 기능이 구현되어 있음으로, 부트를 사용하면 추가적인 설정없이도 JacksonJSON2 HTTP 메세지 컨버터를 사용할 수 있다고 이해했습니다. 그리고, 앞선 강의에서 스프링 부트가 제공하는 자동설정을 사용하기 위한 조건에는 WebMvcConfigurerSupport 타입의 클래스가 빈으로 등록되어있지 않아야하는 조건이 있는것을 확인했습니다. 그렇다면 JacksonJSON2 HTTP 메세지 컨버터를 등록할 때 WebMvcConfigurerSupport를 사용하긴하지만 빈으로 등록하지 않고 사용하는 것이라고 이해하면 될까요? 감사합니다!

  • java
  • MVC
  • spring
jaden 댓글 1 좋아요 0 조회수 269

map 함수를 이용하여 나타내는 태그

미해결

웹 게임을 만들며 배우는 React

안녕하세요 강의 정말 잘 보고 있습니다. 강의 도중에 많이 사용하시는 map 함수에 대해 질문이 있어 글을 작성하게 되었습니다. 로또 만들기에서 {renderNum . map ( ( v ) => < div key ={ v } >{ v }</ div > ) ;} 이런식으로 사용하셨는데 이 구문을 그냥 바로 return에 넣으면 화면에 나타나지 않고 return 구문전에 변수에 담은 다음에 return 문에 변수로 나타내주어야 화면에 잘 나오는 현상이 있는데 리액트 버전이 올라가면서 바뀐 부분인 건가요? 아니면 제가 혹시 실수한 것이 있는건가요?

  • map
  • react
임성규 댓글 1 좋아요 0 조회수 248

Autowired 질문드립니다.

미해결

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

안녕하세요 ^^ 항상 강의 감사하게 듣고 있습니다! @Autowired public MemberController(MemberServcie service) {} 생성자 방식으로 주입할때 생성자 함수위에 autorwired를 생략해도 동작하던데 실무에서는 생략을 많이 하나요? 그리고 생략을 한다면 설명을 위해서 작성을 하신건가요?

  • java
  • MVC
  • spring
  • spring-boot
jung 댓글 2 좋아요 1 조회수 191

회원가입이 안되는데 어떻게 수정해야될까요?

미해결

따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기

console 창 가져온건데 서버-클라이언트 코드가 달라 변경도 해보았는데 안되서 어떻게 해야할지 모르겠습니다ㅠㅠ 도와주세요ㅜㅜ 서버쪽코드 const request = axios . get ( ` ${ USER_SERVER } /auth` ) 클라이언트코드 router . get ( "/auth" , auth , ( req , res ) => {

  • mongodb
  • react
  • nodejs
  • 웹앱
  • express
김상헌 댓글 5 좋아요 1 조회수 592

즐겁게 듣겠습니다~~~

해결됨

실전! 스프링 데이터 JPA

어느덧 여기까지 왔어요 ㅎㅎ 이번 강의도 즐겁게 듣겠습니다. 항상 잘 듣고있어요

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

주문내역 검색 form 관련해서 질문입니다...

미해결

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

안녕하세요 강의 정말 재미있게 스프링핵심 원리, JPA 잘 듣고 있습니다. 주문 목록 검색 form 태그에 action 속성이 없는데 submit을 할경우 어떤식으로 작동하는지 이해가 잘 안가여 질문드립니다.

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

thymeleaf가 URI is not registered가 뜹니다

미해결

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

thymeleaf가 URI is not registered가 뜹니다 스프링부트 생성 때 의존성추가 했고 마켓플레이스에서는 thymeleaf를 검색해도 나오지 않는데 무엇을 잘못했을까요?ㅠㅠ 스프링은 2.4.3 자바 11입니다

  • java
  • spring
  • spring-boot
  • MVC
dydalsdl78 댓글 2 좋아요 0 조회수 799

sagas/index.js의 axios default url을 localhost나 api.nodebird-hyun.shop 으로 바꾸면 ssr 로그인 유지가 안되요

미해결

[리뉴얼] React로 NodeBird SNS 만들기

sagas/index.js의 axios default url을 localhost 나 혹은 api.nodebird-hyun.shop 으로 바꾸면 ssr 로그인 유지가 안되요 axios.defaults.baseURL = 'http://127.0.0.1:3065'; // ssr 로그인 유지 o // axios.defaults.baseURL = 'http://localhost:3065'; ssr 로그인 유지 x // axios.defaults.baseURL = 'http://api.nodebird-hyun.shop'; ssr 로그인 유지 x 로그인 시점에서 쿠키가 생성은 되는거 같은데 application 탭을 열어보면 없는데 이유가 무엇일까여? 알려주시면 감사여

  • express
  • nodejs
  • react
  • redux
  • Next.js
terecal 댓글 4 좋아요 0 조회수 375

Entity 에 메서드

미해결

스프링 기반 REST API 개발

안녕하세요. 궁금한 내용이 생겨서 질문 올립니다. Entity 란 DB의 테이블과 매핑되는 객체라고 알고 있는데, update()라는 메서드가 엔티티에 들어가도 괜찮은 건가요? Entity 의 필드 값을 변경시키는 것이므로 Dto 나 다른 곳에서 update 가 되어야 하지 않을까 하는 궁금증입니다.

  • rest-api
  • spring
  • java
장원익 댓글 3 좋아요 0 조회수 1194

질문있습니다.

미해결

실전 리액트 프로그래밍

sotre.js 부분의 sagaMiddleware.run(rootSaga) 에서 sagaMiddleware.run(searchSaga) 로 바로 사용하지 않고 rootSata 를 만든 이유는 여러개의 미들웨어를 관리할 수 있도록 하기 위해 한 것 인가요?

  • saga
  • react
  • middleware
  • react
  • redux
공부방-아이락기술연구소 댓글 1 좋아요 0 조회수 191

공부를 하면서..

미해결

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

spring 핵심 원리에서 배웠던 DI, interface를 이용해서 추상화하는 방식이 사용되고 있지않고. 그냥 private final ItemService itemService 이런식으로 진행하고 계시는데 jpa 강의라서 이렇게 간단하게 설계 하시는건가요?? 실무에서 프로젝트 사이즈가 커지다보면 자연스레 추상화하게 되나요?? 질문 자체가 이상했으면 죄송합니다..

  • spring
  • spring-boot
  • java
  • JPA
  • 웹앱
탈룰라 댓글 1 좋아요 0 조회수 199

@repository에 관하여

해결됨

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

안녕하세요 @Repository가 MemberRepository를 구현한 MemoryMemberRepository에 붙어있는데요 만약 MemberRepository를 구현한 DBMemberRepository라는 클래스가 하나 더있고 여기에도 @Repository가 붙어있다면 MemberService에서는 어떤 Repository를 주입시켜주나요? 읽어주셔서감사합니다.

  • java
  • MVC
  • spring
  • spring-boot
공부해보자 댓글 1 좋아요 1 조회수 294

Autowired순서

해결됨

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

안녕하세요 강의를 듣던 중 궁금한점이 생겨 질문드리게되었습니다. MemberService에서 @Autowired 를 통해 MemberRepository를 주입시키는 과정에서 MemberRepository가 MemberService 보다 먼저 빈등록이 되어있다면 문제가 없겠지만 MemberRepository가 MemberService 보다 늦게 빈등록이 될경우 문제가 생길것 같은데 어떻게 작동하나요? 즉, 빈등록되는 순서가 궁금합니다. 읽어주셔서 감사합니다

  • spring-boot
  • MVC
  • spring
  • java
공부해보자 댓글 1 좋아요 0 조회수 261

스프링 커뮤니티

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

스프링 커뮤니티에 자주 올라오는 질문 이라고 하셨는데 따로 이용하시는 스프링 커뮤니티가 있나요?

  • java
  • JPA
jsungmin6 댓글 1 좋아요 1 조회수 216

안녕하세요 강사님

미해결

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

안녕하세요 강사님 질문있습니다. 강의 목록 중에 "실전! 스프링 웹 MVC 출시 예정 - 2월" 인 부분이 있는데 언제 나오는지 알 수 있을까요??

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

인기 태그

인프런 TOP Writers

주간 인기글