inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

.findAny(); 입력후 에러

미해결

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

@Override public Optional<Member> findByName (String name) { store .values().stream() .filter(member -> member.getName().equals( name )) .findAny() ; // 이거 오류왜나지 } 입력후 missing return statement 에러가 납니다. findAny() 함수가 애초에 null일때 처리하는 함수라고 들었는데 return 타입이 missing이라니 뭐가 문제인지 모르겠습니다.

  • findAny
  • MVC
  • spring-boot
  • spring
  • java
김민수 댓글 1 좋아요 0 조회수 384

값타입과 엔티티 차이 고민

미해결

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

강의 39분10초에 "엔티티는 값을 마음껏 수정할 수 있다" 는 말씀에 이해를 못하고 있습니다. 아래에는 제가 정리한 값타입의 특징과, 한 예시에 대해서 값타입/엔티티를 적용했을 때 상황을 고려해봤습니다. 마지막에 내린 결론이 올바른지 궁금합니다. [값 타입의 특징] - 서로 다른 두 엔티티 Member A, B는 한 값타입객체를 공유하지 말 것 - 엔티티의 필드로서 값타입(Address)에 대하여 값타입의 필드(city)를 수정하고 싶을 땐, new Address(..)로 새로운 객체를 사용할 것 - 혹여나 공유하는 실수를 했을 때 컴파일러로 찾아내기 어렵다. 따라서 대응책으로 setter메소드 없는 불변객체 로 설계한다. (예시) 서로 다른 회원 A, B가 한 가족이라 같은 주소에 살고있다. 그런데 A가 독립해서 주소를 옮겼다. 1.값타입 경우) - 두 회원이 동일한 Address 값타입의 인스턴스를 공유하지 않고 각 회원별로 Address인스턴스가 달라야함. - 따라서, memberA.getAddress( ). setCity('xxx') 로 직접 수정해도 B의 address인스턴스에 부작용 없지만, 코딩을 할 때 실수로 동일 Address객체를 공유하도록 코드를 작성 할 수 있기에, 이를 방지하기 위해 값타입에 setter메소드정 의 안함 - 즉, setCity( )메소드를 못 쓰니까 도시속성을 바꿀 수가 없음. 따라서 memberA.setAddres( new Address( ~~) )로 새 객체를 만들어 교체해줌 2.엔티티 경우) - 엔티티의 본래 특성상 parent엔티티 A, B가 같은 child엔티티C를 공유가능함(예. 동아리A, B는 같은 학생C를 회원으로 받을 수 있음) - 그러나 위 (예시) 의 비즈니스 특성상 엔티티도 공유하면 안됨(한 명이 이사한 주소로 다른 한 명도 주소가 변경되는 문제) - 엔티티 또한 아래 코드와 같이 공유하게 되면 addEntity.setCity('성남', '분당구') 로 A, B모두 주소가 변경됨 AddressEntity addrEntity = new AddressEntity('서울', '강남구'); memberA.setAddressEntity( addrEntity ); memberB.setAddressEntity( addrEntity ); memberA.getAddress().setCity('성남', '분당구'); - 따라서, 엔티티의 경우도 setCity와 같은 setter메소드가 있으나 회원A의 address를 얻어와 개발자 마음껏 setter수정을 할 수 없을것 같다 !? 강의의 39분10초 설명 "엔티티는 값을 마음껏 수정할 수 있다" 에 반하는 결론이라 어디가 틀렸는지 짚어주셨으면 좋겠습니다. 감사합니다.

  • JPA
  • java
창신동 장첸 댓글 1 좋아요 0 조회수 286

결과 리스트의 size() vs count 쿼리

미해결

실전! 스프링 데이터 JPA

count 쿼리가 나가는 이유가 궁금합니다. Select 결과로 받아온 리스트의 size()를 실행시키는 게 count 쿼리를 다시 날리는 것보다 비용이 적을 것 같은데, count 쿼리가 다시 나가는 이유가 궁금합니다 :) 강의는 늘 즐겁게 듣고있습니다 감사합니다!

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

RestApi에 대하여

미해결

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

안녕하세요! 강사님 항상 좋은강의 정말 감사드립니다. 평소에 Api 특히 Rest APi에 대해서 너무 광범위한 사용과 문맥에 정말 개념이 잡기가 어려웠는데, 이번 강의를 통해서 많이 개념이 잡혀나가는것 같아 뿌듯하고 감사합니다. 공부를 하던중에 궁금한 것이 있는데 1. Rest api라고 하는건 mvc패턴에서의 api(템플릿 엔진을 주로 사용하여 리턴해주는 컨트롤러)는 Rest api의 범주에 들어오지 않는건가요? 2. 그리고 클래스 Annotation중에 @RestController가 붙으면 http body 부분에 json 형식으로 data가 디폴트로 나가는 건지 궁금합니다. 데이터를 text/plain이나, xml같은 형식으로 body에 response하려면 어떻게 해야할까? 라는 궁금증이 있습니다. 답변 부탁드립니다!

  • spring
  • java
  • spring-boot
  • JPA
최용석 댓글 2 좋아요 1 조회수 490

Optional에서 of()는 언제 사용할까요??

미해결

더 자바, Java 8

Optional ofNullable()과 of()의 차이는 널 값을 가질 수 있는지로 알고있는데요. ofNullable()의 코드를 봐도 내부적으로 of()를 사용하고 성능상에도 큰차이가 있을까? 라는 생각이 드는듯한 코드인데 of()를 사용하는 경우가 어떤것이 있을까요?? public static <T> Optional<T> of(T value) { return new Optional<>(value); } public static <T> Optional<T> ofNullable(T value) { return value == null ? empty() : of(value); }

  • java
  • java
  • optional
cykkkk 댓글 1 좋아요 0 조회수 242

run실행시 테스트코드에서 컨트롤러로 돌리는 방법

미해결

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

실행시 이전강의에서 실행한 테스트코드만 실행되는데 다시 8080포트로 실행하는 방법을 모르겠습니다...

  • spring-boot
  • MVC
  • spring
  • java
김서연 댓글 2 좋아요 2 조회수 430

Paging, batchSize관련 질문

미해결

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

team1에 멤버 2명, team2에 멤버 5명 이런식으로 있다고 할때 배치 사이즈 설정의 경우 2로 설정을 하면 팀의 단위를 2개 기준으로 나눠서 배치로 조회하는 것은 알겠습니다. 그러면 위의 경우 7개의 결과가 출력되는 건데, ---- 만약 한번에 총(팀단위 x) 5개씩 조회를 하고 싶다면 이 건의 경우 배치사이즈 설정으로는 페이징 할 수 없는 것 같은데, (팀 a 멤버1, 2 / 팀 b 멤버 1,2,3) (팀b 멤버 4,5) 이런식으로 이 경우에는 어쩔수 없이 멤버를 기준으로 조회해서 (멤버 + 팀) 5개씩 Maxsize 설정을통해 5개씩 출력하는 수밖에 없는 건가요? (+ team이름 기준으로 순서를 매겨?) ---- 만약에 테이블에서 결과를 k개씩 출력한다고 할때, 어떤 경우에는 N:1(member -> team join)에서 페이징이 아닌 1:N 관계에서 조회가 필요(team -> member join)하고 k개씩 페이징하고 싶다고 하면 배치로는 해결하지 못하는 것 같은데 다른 방법이 있을까요? --- 여기서 예시로 든 case에는 사실, 멤버를 기준으로 팀을 조인하고 페이징하면 해결이 되지만, 어떤 경우에는 1:N관계에서 출력이 필요한 경우도 있지 않을까해서 여쭤봅니다. 그런경우는 거의 없을까요? 답변주시면 감사드리겠습니다.

  • JPA
  • java
유승현 댓글 1 좋아요 1 조회수 283

공부법 질문드립니다

미해결

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

안녕하세요 공부방법 질문드립니다! 저는 비전공자이고 자바만 공부했는데요 자바 배웠으면 프레임워크인 스프링을 공부해야 된다고 해서 주변 사람들에게 추천을 받아 이 강의를 듣게 되었습니다. 김영한 강사님의 커리큘럼 그대로 따라가려고 했는데요 입문 강의임에도 불구하고 생각했던것 보다 어렵고 마음과 다르게 진도 나가기가 힘드네요... 강의를 들으면서 완전 아예 이해가 전혀 안된다! 이건 아닌데요 그래도 많이 어렵습니다. 어려워서 스프링공부법 관련해서 인터넷에 계속 검색하다 보니 스프링 공부 전 jsp를 먼저 공부하는게 좋다는 말들이 있는데요 저 혼자 jsp를 따로 공부한 후에 지금 이 강의 들으면서 김영한강사님의 커리큘럼을 따라가는게 맞는건가요? jsp를 먼저 공부하고 와야 할까요? 공부법 조언해주시면 감사하겠습니다 !

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

Member엔티티와 Order엔티티의 일대다 연관관계 불필요성

미해결

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

https://www.inflearn.com/questions/66107 글에 답변주신 내용중에 질문있습니다. " 오히려 주문, 배송 등등 객체 각각이 살아있어서 필요한 곳을 참조하는 식으로 설계하는게 더 좋은 설계 방법" 말씀하신 내용중에 ' 필요한 곳을 참조하는 식 ' 이 부분 설명이 이해가가지 않습니다. 혹시, Member-Order 간의 연관관계에서 Member엔티티 클래스안에 @OneToMany List<Order>일대다 연관관계를 c끊어내므로서 Member로 Order엔티티객체에 접근할 수 없게만들고 직접 em.find 나 em.createQuery 로 Order엔티티객체를 얻어내라는 말씀이신가요?

  • JPA
  • java
창신동 장첸 댓글 1 좋아요 0 조회수 243

테이블 생성이 안됩니다 ㅠㅠ

해결됨

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

maven으로 시작했습니다. 제가 진행하는 프로젝트가 maven이라 그렇게 배워보려고요.. 그런데 테이블 생성이 잘 안됩니다 ㅠㅠ member까지는 어떻게 생성을 했는데 그 이후 테이블 생성이 console에도 나오지 않고, h2에도 뜨지않아요. 또 member에 insert도 되지않습니다. 테이블 안에 내용이 들어가질 않는데 어떻게 해야할까요 ㅠㅠ

  • 웹앱
  • spring
  • JPA
  • spring-boot
  • java
민주 댓글 6 좋아요 0 조회수 532

엔티티 기본 생성자를 protected로 했을 때 테스트 질문

해결됨

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

선생님 안녕하세요, 처음이라 모든 것이 낯설지만 양질의 강의 덕에 순조롭게 학습을 진행하고 있습니다. 감사합니다 ^^ 다름이 아니라, 앞 강의 (엔티티 설계 주의점) 및 강의자료(p29)에서 Entity나 Embedded type 생성자를 protected로 하는 것이 더욱 안전하다고 말씀해주셨습니다. 그래서 Entity의 생성자도 protected로 설정하고 진행해보았습니다. 그런데 테스트를 하려고 보니 테스트용 Entity 객체를 생성할 수 없는 문제가 생겨서 일단 default 생성자를 public으로 하고 계속하였습니다. 혹시 protected 생성자를 사용하면 테스트하는 방법이 있는지요, 아니면 이러한 문제로 인해 Entity는 public 생성자를 사용해야 하는지요?

  • java
  • spring-boot
  • JPA
  • 웹앱
  • spring
풀잎 댓글 2 좋아요 0 조회수 1066

Validation (JSR-303 validation with Hibernate validator) 모듈 추가

미해결

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

제목 그대로 스프링 부트 스타터 설정에서 저 모듈을 추가하라는 말씀이 어떻게 해야하는 건지 잘 모르겠네요..코드를 추가하는건가요? 혹시 스프링부트 스타터에서 추가하는건가요?

  • springboot
  • JPA
  • spring
  • 웹앱
  • spring-boot
  • java
skj3232 댓글 2 좋아요 1 조회수 1684

지연로딩관련 질문드립니다.

미해결

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

안녕하세요!! 지연로딩 질문이 생겨서 질문드립니다. 연관관계의 주인이 아니며 OneToOne (mappedBy = "@@@", fetch = FetchType.LAZY) 이렇게 설정되어있는 객체가 있습니다. LAZY로 설정되어있어서 해당 부분만 em.find 로 찾아보아도, 연관관계주인의 테이블까지 join 하는 쿼리가 같이 나가네요. 혹시 mappedBy 되어있는경우 LAZY옵션사용이 불가능한가요?

  • FetchLazy
  • java
  • JPA
댓글 1 좋아요 0 조회수 315

PK와 FK 를 동시에 갖게하는방법 질문드립니다.

미해결

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

상속관련 강의를 들으면서 문득, 상속에 대한 JPA로직을 굳이 모르더라도, 연관관계매핑을 통해서 상속에서 생성한 테이블구조 그대로 만들 수 있다고 생각하고 시도해보았습니다. 아래 코드처럼 작성하였지만, 실행은 되어도 제가 원하는 sql이 나가지않네요ㅠ 혹시 관련 문법이나 해결방법이 있을까요? //현재클래스는 BOOK @Id @Column(name = "item2_id") @GeneratedValue private Long id; @OneToOne @JoinColumn(name="item2_id", referencedColumnName="item2_id") private Item_2 item_2;

  • java
  • JPA
댓글 1 좋아요 0 조회수 352

BookForm 생성자

미해결

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

BookForm 을 setter 대신 생성자로 했는데, int price 와 int stockQuantity 에서 missmatch Error 가 떴어요. CreateForm 도 그렇고 UpdateFrom 도 그렇고 빈 폼을 넘겨줄때 java 기본값이 0 인데 참조변수 기본값 null 이 들어가서 에러가 뜨는것 같은데 맞나요.? 그래서 아래와 같이 @nullable을 넣으니까 해결되긴 했는데, 이렇게 사용해도 다른 사이드에 악영향을 끼칠 가능성은 없을까요..? 답변 항상 감사합니다. public BookForm (Long id , String name , @Nullable int price , @Nullable int stockQuantity , String author , String isbn) { this . id = id ; this . name = name ; this . price = price ; this . stockQuantity = stockQuantity ; this . author = author ; this . isbn = isbn ; }

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

JpaRepository는 사용 안하시나요?

미해결

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

학교 선배한테 배울때는 JPARepository 인터페이스를 상속해서 사용 했었는데 이거랑 다른건가요?

  • spring-boot
  • JPA
  • spring
  • 웹앱
  • java
ㅁㄴㅇㄼㅈㄷㄱ 댓글 3 좋아요 0 조회수 369

단위 테스트를 하려면 어떻게 해야하나요?

미해결

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

안녕하세요. 강의 중 단위테스트가 중요하다고 하셔서 진행하고싶은데 방향성이 궁금해서 질문드립니다. 1) Repository를 jpa 사용하지 않고 Map을 이용하던가 해서 순수 java로 만든 후 service에 의존시켜서 진행하는 것인가요?? 2) 그리고 실무에서 test code를 짤 때 controller, service, repository에 대해서 모두 다 짜는지... 아니면 화면단 보다는 비즈니스 로직이 있는 부분 위주로 짜는지도 궁금합니다.

  • spring
  • spring-boot
  • JPA
  • java
  • 웹앱
임채원 댓글 1 좋아요 6 조회수 462

프로젝트 셋팅 그래들로 했을땐 어떻게 해야하는지 궁금합니다.

미해결

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

이전에는 그래들로만 진행하셔서 이번에도 그래들로 하시는 줄 알았는데 처음 공부할땐 빌드 툴을 하나만 그대로 쓰고싶습니다. 혹시 실례가 안된다면 그래들에서는 어떻게 셋팅하는 지 알려주실 수 있나요?

  • JPA
  • java
wisehero 댓글 1 좋아요 0 조회수 315

TestPropertySource질문입니다.

해결됨

스프링 부트 개념과 활용

안녕하세요 강사님 언제나 좋은 강의 감사드립니다. 강의 내용을 따라서 열심히 따라 하고는 있는데, TestPropertySources로 우선순위를 먼저 받게끔 작업을 했는데 테스트 코드가 통과를 해서 혹시 뭐가 잘못 됐는지 여쭤보고 싶어서 질문을 남깁니다. 위의 코드를 보면 기존 application.yml의 server.port가 7443이고, test.yml의 설정이 6663인데, 해당 코드를 돌려보니 application.yml의 설정값을 우선순위로 읽어들여서 테스트 코드가 성공하였습니다. 혹시 현재 기준으로 우선순위가 변경이 된건지, 아니면 제가 무슨 실수를 한 것인지 한번만 봐 주시면 감사드리겠습니다

  • spring-boot
  • spring
  • java
밤의멜로디 댓글 1 좋아요 0 조회수 1343

h2 질문드려요

미해결

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

jpashop으로 하면 파일도 만들어지고 연결성공하는데요 여기까지오면 연결이 되지않고 아래와 같은 오류가 뜹니다 뭐가 문제일까요 영상에서 했던 것과 다르게 실시햇던 것은 다운은 받았으나, 터미널로 진행하는 부분을 정확하게 인지하지 못해서 주소창에 localhost:9092(제포트)/h2-console 로 접근해서 jdbc:h2:~/jpashop 연결했습니다. 추가 ++) 위와 같이 실행해서 h2 페이지를 연 후에도 같은 오류가 나더라고요. 전에 다른 강의에서 썼던 db입니다. 해당 데이터 베이스로는 잘 접속이 되는데 이걸로 application에 url설정 넣고 사용해도 되는건가요?

  • spring
  • 웹앱
  • JPA
  • java
  • spring-boot
부릉부릉 댓글 2 좋아요 1 조회수 383

인기 태그

인프런 TOP Writers

주간 인기글