inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

첫번째 과제 영상 중 질문입니다

미해결

예제로 배우는 스프링 입문 (개정판)

첫번재 과제 영상 중 마지막 과제 질문입니다. find owner를 클릭하면 " could not prepare statement" " org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "OWNER0_.AGE" not found; SQL statement:" 라는 에러가 계속 발생합니다ㅠㅠ 빈칸으로 두던, 사람 이름을 입력하던 똑같은 에러가 발생합니다. owner0 라는 오타가 있나 찾아봤는데도 없습니다. 제가 따로 sql이랑 연결을 해줘야 하나요???

  • java
  • spring
댓글 7 좋아요 0 조회수 716

JPA와 Transaction에 대해서

미해결

실전! 스프링 데이터 JPA

안녕하세요. 선생님! 오랜만에 또 질문남깁니다..! 강의내용에서 JpaRepository의 구현체에 @Transactional 애노테이션이 붙어있기 때문에 서비스계층에 없어도 트랜잭션이 적용된다고 하셨습니다. JPA의 모든 변경은 트랜잭션 안에서 동작한다고도 하셨구요! 여기서 질문입니다. Repository를 직접 정의하고 사용할 때, @Transactional 애노테이션 없어도 동작하는 이유는 뭔가요? 더 쉬운 예제로 Controller에서 em.find() 호출이 가능한데, 이유가 뭔지 궁금합니다.. EntityManger의 구현체에 @Transactional이 붙어있나 싶어 em.getClass()를 찍어보았는데, class com.sun.proxy.$Proxy113 이렇게 찍혀서 구현체를 어떻게 봐야하는지를 모르겠어요.. @RestController @RequiredArgsConstructor public class MemberApiController{ private final EntityManager em; @GetMapping("/api/v1/member") public Member getMemberV1(){ return em.find(Member.class, 1L); //트랜잭션 설정을 안했는데 왜 가능할까요? } }

  • java
  • spring
  • spring-boot
  • JPA
pjok1122 댓글 2 좋아요 8 조회수 943

플러시 관련 질문드립니다.

해결됨

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

flush()를 했을 때 1차 캐시에서 Entity와 스냅샷이 다를 경우 쓰기 지연 SQL저장소 update 쿼리를 에 만들고 나면 Entity값과 스냅샷 값은 같아지는 것인가요?! 당연히 변경된 Entity값이 스냅샷에 저장되면서 같아질 것이라고 생각은 하는데 혹시나 하여 질문합니다. 선생님 강좌 너무 잘 듣고 있습니다. 왜 이 좋은 강좌를 이제야 알고 수강하는지 모르겠습니다. 눈높이에 너무 잘 맞추어 설명해주시는것 같습니다.

  • JPA
  • java
kys4548 댓글 1 좋아요 4 조회수 422

joinColum 질문있습니다.

미해결

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

안녕하세요 영한님. 복습을 하다 궁금한 점이 생겨 질문드립니다. 소스에서 ManyToMany 양방향의 경우 @JoinTable을 주인쪽에 다셧는데, @JoinTable을 주인쪽에 다는게 맞다고 알면 되는 것일까요?? 감사합니다~

  • spring
  • JPA
  • 웹앱
  • java
  • spring-boot
오세진 댓글 1 좋아요 0 조회수 165

cascade 질문 있습니다.

미해결

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

안녕하세요. 복습을 하다 궁금한 점이 생겨 질문을 남깁니다. 영한님 소스에서 양방향인 경우 cascade 옵션을 사용한 부분이 있는데, 한번은 주인인쪽에, 또 다른 한번은 mappedBy쪽에 사용했습니다. 1. casecade 옵션은 어느쪽에 다는게 좋은건지 궁금합니다. 2. 만약 양쪽 다 달아도 상관 없는건 지도 궁금합니다. 실무에서 사용법을 몰라 양쪽에 달아두었는데, 문제가 있을거 같아 걱정이 되네요 ㅠㅠ 감사합니다~

  • spring-boot
  • java
  • 웹앱
  • spring
  • JPA
오세진 댓글 1 좋아요 1 조회수 515

v3 와 v6 질문드립니다.

미해결

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

안녕하세요 김영한님 항상 질 높은 강의 잘듣고있습니다!! 다름이 아니라 강의를 듣다보니 v3랑 v6의 차이점에 대해서 제가 생각한 부분이 맞는지 질문드립니다. v3의 경우 중복을 제거하기 위해 distinct라는 명령어를 사용하고 v6의 경우에는 로직을 추가해서 중복을 제거했습니다. 두 가지가 실제 쿼리의 조인은 비슷할거라 생각합니다. 그렇다면 차이는 1. select 해오는 컬럼들을 선택할 수 있다? v3의 경우 전부다, v6의 경우 dto에 정의된 필드만 2. 컬렉션 값이 2개 이상이여도 사용 가능 의 차이 정도로 이해하면 될까요

  • JPA
  • spring-boot
  • spring
  • java
Juhyuk Lee 댓글 2 좋아요 3 조회수 450

react-helmet

미해결

React로 NodeBird SNS 만들기

6버전 이상부턴 default export가 없어서 import {Helmet} from 'react-helmet'; 이렇게 받아와야 하는거 같아요 버전 업데이트를 하면서 default export를 안쓰고 {}로 감싸고 import 해와야 하는데, 질문) 패키지에 어떤 기능추가를 위해서 저렇게 default export를 안쓰고 바꾸는 건가요?? 보통 어떤경우에 패키지 개발자가 저렇게 바꾸는지 궁금합니다.

  • javascript
  • react
댓글 1 좋아요 0 조회수 229

@Query 에 countquery를 설정했음에도 안나간는 경우?

미해결

실전! 스프링 데이터 JPA

안녕하세요 정말 좋은강의 잘듣고 있습니다. 혹시 countquery옵션을 설정했음에도 안나가는 경우가 있을까요? 이전 jpa 활용2 에서 order 객체를 기반으로 springdata jpa repository 를 만든후 아래와 같은 메서들를 정의했는데 @Query ( value = "select o from Order o join fetch o. member m join fetch o. delivery d" , countQuery = "select count(o) from Order o" ) public Page<Order> findAllWithMemberDelivery (Pageable pageable) ; 결과값은 count 문없이 아래와 같은 쿼리만 나가네요 select order0_.order_id as order_id1_6_0_, member1_.member_id as member_i1_4_1_, delivery2_.delivery_id as delivery1_2_2_, order0_.delivery_id as delivery4_6_0_, order0_.member_id as member_i5_6_0_, order0_.order_date as order_da2_6_0_, order0_.status as status3_6_0_, member1_.city as city2_4_1_, member1_.street as street3_4_1_, member1_.zipcode as zipcode4_4_1_, member1_.name as name5_4_1_, delivery2_.city as city2_2_2_, delivery2_.street as street3_2_2_, delivery2_.zipcode as zipcode4_2_2_, delivery2_.status as status5_2_2_ from orders order0_ inner join member member1_ on order0_.member_id=member1_.member_id inner join delivery delivery2_ on order0_.delivery_id=delivery2_.delivery_id limit ? 혹시 inner join 이라 따로 다시 조회할 이유가 없어서 스프링에서 최적화해서 따로 쿼리가 나가지 않은건가요?

  • JPA
  • spring-boot
  • java
  • spring
asdkfur 댓글 2 좋아요 4 조회수 697

질문드립니다!

미해결

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

제가 도메인, 서비스, 레포지토리 같은것들을 자바를 공부하며 처음 알게되었는데요 도메인이라고 하면 계속 www 같은 도메인이 떠오르네요 domain: 엔티티객체의 모음 service: 비즈니스로직 repository: 엔티티객체를 활용한 jpa코드사용 이렇게 생각하면 될까요?? 그리고 웹어플리케이션을 만들때 만들기 나름이겠지만, 쿠키나 세션을 사용해서 로그인처리를 하는지 jwt를 사용하시나요?? 대부분의 웹서비스는 jwt필요없이 쿠키만으로 충분하다는 어느 유튜버분의 의견도 있던데 어떻게 생각하시는지 궁금합니다!

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

MemberServiceTest - 테스트에서 @Transaction의 롤백기능이 수행되지 않습니다

해결됨

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

안녕하세요. 올려주신 강의 잘 듣던 중 궁금한 점이 생겨 질문드립니다. @Transactional을 테스트 케이스에서 쓸 경우에는 커밋이 안되고 롤백 을 한다고 하셨는데, MemberServiceTest에서 만든 2개의 테스트 중 중복_회원_예외() 메서드 실행 시에는 아래 로그에 INSERT쿼리가 나와서요 ... 회원가입() 메서드 테스트 시에는 INSERT쿼리가 로그에 찍히지 않는데 중복_회원_예외() 메서드에는 INSERT쿼리가 찍히는 이유가 궁금합니다.

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

User.js 에서 this

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

userSchema.pre("save", function (next) { var user = this; if (user.isModified("password")) { bcrypt.genSalt(saltRounds, function (err, salt) { ... var user = this 를 하면 user 에는 뭐가 담기게 되는거죠?ㅠㅠ 또 여기서 var user = this 를 선언을 했는데 userSchema.methods.generateToken = function (callback) { var user = this; var token = jwt.sign(user._id.toHexString(), "secretToken"); ... 왜 여기서 또 선언을 하는 거에요? User.js 에서 user 이라는 변수가 뭔지 정확히 모르겠습니다ㅠㅠ

  • react
  • nodejs
JADE CHO (SUEMIN) 댓글 1 좋아요 0 조회수 229

세션을 서버에 저장하는 이유는??

미해결

실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌

쿠키가 보안에 취약해서 세션을 써야 한다는 부분은 이해가 갑니다. 근데, 왜 세션을 서버에 저장하죠?? 쿠키 부분에서 설명할 때 많은 사용자의 쿠키를 서버에 저장하면 다량의 오버헤드가 발생하니깐 쿠키를 client측에 저장한다고 했는데, 세션은 왜 서버에 저장하는 거죠??

  • jsp
  • java
정홍준 댓글 3 좋아요 1 조회수 584

org.hamcrest.Matchers 에서 Junit Test가 실패 하고 있습니다.

해결됨

스프링 기반 REST API 개발

java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package 이라는 오류가 발생 하고 잇습니다. 결과 값은 예상한것과 마찬가지로 Body = {"id":1,"name":"Spring","description":"REST API Development with Spring","beginEnrollmentDateTime":"2018-11-23T14:21:00","closeEnrollmentDateTime":"2018-11-24T14:21:00","beginEventDateTime":"2018-11-25T14:21:00","endEventDateTime":"2018-11-26T14:21:00","location":"&ecirc;&deg;•&euml;‚&uml;&igrave;—&shy; D2 &igrave;Š&curren;&iacute;ƒ€&iacute;… &iacute;Œ&copy;&iacute;† &euml;&brvbar;&not;","basePrice":100,"maxPrice":200,"limitOfEnrollment":100,"offline":false,"free":false,"eventStatus":"DRAFT"} 정상적으로 값이 떨어지고 있어서 맞게는 따라간거 같은데... 왜 SecurityException 이 발생 하는지 알수 있을까요? 번역을 돌려보니 서명자정보가 동일한 패키지에 있는 다른 클래스의 서명자 정보와 일치 하지 않습니다, 라고 나오네요.

  • java
  • rest-api
  • spring
최재영 댓글 2 좋아요 0 조회수 408

미들웨어 이렇게 추가하는거 맞나요..??

미해결

React로 NodeBird SNS 만들기

middleware.js exports.postExist = async(req,res,next)=>{ const post = await db.Post.findOne({ where: { id: req.params.id } }); if (!post) { return res.status(404).send("해당 페이지가 존재하지 않습니다"); } next(); } post.js router.delete('/:id', isLoggedIn, postExist, async(req,res,next)=>{ try{ await db.Post.destroy({ where: {id: req.params.id}}); res.send(req.params.id); }catch(e){ console.error(e); next(e); } }) next()만 추가해서 다음 동작으로 갈수있게 해주었는데 더 추가할게 있는지 궁금합니다..!

  • javascript
  • react
댓글 2 좋아요 0 조회수 220

cascade 옵션 질문

해결됨

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

안녕하세요. 강의 잘 듣고 있던 도중 궁금한 점이 생겨서 질문드립니다. 엔티티 설계시 주의점 21분 쯤에 cascade옵션 에 대해서 설명해 주셨는데, 왜 Order 엔티티에 있는 필드값에만 이를 적용하고 다른 곳에는 적용하지 않으셨는지 궁금합니다. 또한, 어떤 기준을 통해 cascade 옵션을 적용시켜야 하는지 궁금해서 여쭤봅니다.

  • spring-boot
  • JPA
  • 웹앱
  • java
  • spring
세명 댓글 2 좋아요 14 조회수 4843

jUnit5는 extracting을 어떻게 대체하나요?

미해결

실전! Querydsl

extracting().containsExactly()를 실행하는데 오류가 나서 대체 메소드를 찾는 중인데 잘 되지가 않네요

  • java
  • JPA
Junyoung_Choi 댓글 1 좋아요 1 조회수 574

회원과 상품에서 id값

미해결

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

처음 회원을 등록하면 회원목록에서 #이 1이 뜹니다. 이후 상품 등록을 하고나서 상품 목록을 조회해보니 #2가 뜹니다. 혹시나해서 회원을 하나 더 만들어보니 #3이 추가가 되었습니다. id값이 부여가 되는 것이 테이블별로 이루어지는 것이 아닌 건가요?

  • spring-boot
  • JPA
  • 웹앱
  • spring
  • java
홍석준 댓글 1 좋아요 4 조회수 213

안녕하세요.

해결됨

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

추가적으로 궁금한점이 있어서 이렇게 남깁니다. 로그아웃 버튼을 클릭하면 mongoDB에 token이 "" 사라지게 구현해놓으셨는데, ie에서 application > cookies에서는 아직 token이 계속 있더라구요.. 상관이 없을까요?

  • nodejs
  • react
Byeong Mok Jang 댓글 2 좋아요 0 조회수 206

@QueryHint의 readOnly 와 @Transaction의 readOnly 차이

미해결

실전! 스프링 데이터 JPA

안녕하세요. @QueryHint 의 readOnly 속성과 관련하여 질문있습니다. 이전의 강의(jpa 활용 1편) 에서 service 단에 @Transaction(readOnly=true) 설정을 주었을 때 영속성 context flush (X), dirty checking (X) 를 통해서 성능을 최적화하고 DB에 읽기 전용임을 알린다고 배운게 기억이 나서요. 정리하자면 1. @QueryHint 의 readOnly 속성은 (how) 스냅샷을 만들지 않음으로써 (what) Dirty Checking의 비교를 하기 위해 내부적으로 객체를 2개(스냅샷) 만들어 메모리 낭비하는 것을 방지 2. @Transaction(readOnly=true) 속성은 (how) DB에 반영할 것이 없다는 것을 암시하여 영속성 context flush 를 하지 않도록 하여 (what) dirty checking 안 함 -> 성능 최적화 으로 이해를 했는데요. 왠지 두가지 방법이 매우 유사한 것 같아 이와 관련하여 구글링 하던 중 https://vladmihalcea.com/spring-read-only-transaction-hibernate-optimization/ 위 글을 봤는데 제가 이해하기로는 위 글에서 얘기하는 Entity loaded state 가 말씀하신 스냅샷이고 강의와 동일하게 'queryHint-readOnly를 통해 생성을 막을 수 있다.' 라고 하면서 작성자 본인이 기존에 Transactional-readOnly를 사용했을 때 Entity loaded state(스냅샷) 생성이 막히지 않아 git pull 요청을 해서 spring 5.1에서 적용됐다는 것 같은데요. 제가 이해한게 맞는지 그렇다면 @Transaction(readOnly=true)를 @QueryHint-readOnly속성과 동일한 기능으로 보고 대체하여 사용할 수 있는지 궁금합니다. 감사합니다.

  • spring
  • JPA
  • spring-boot
  • java
최시영 댓글 2 좋아요 41 조회수 2690

인기 태그

인프런 TOP Writers

주간 인기글