inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

변경 감지 메커니즘에서 4. flush, 5. commit 의미

해결됨

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

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

  • java
  • jpa
박호정 댓글 1 좋아요 0 조회수 315

Transactional 과 Lazy Loading

미해결

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

안녕하세요 강의 잘 듣고 있습니다. 다름이 아니라 프로젝트를 업그레이드 하는 과정에서 오류가 생겨 질문 드립니다. package ShopProject.myShopProject.Domain; import ShopProject.myShopProject.Domain.Item.Item; import ShopProject.myShopProject.Domain.Order.Order; import jakarta.persistence.*; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member",cascade = CascadeType.REMOVE) private List<Order> orders = new ArrayList<>(); private String loginId; private String password; @OneToMany(mappedBy = "member") private List<LikedItem> likedItems = new ArrayList<>(); } package ShopProject.myShopProject.Domain; import ShopProject.myShopProject.Domain.Item.Item; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class LikedItem { @Id @GeneratedValue @Column(name = "likedItem_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; } 보시는 것처럼 멤버와 좋아요 상품은 Lazy 관계에 있습니다. OneToMany는 기본이 Lazy이므로 명시하지 않았습니다. 따라서 좋아요 상품은 직접 조회될 때만 DB에서 조회되고, 다른 경우는 프록시 형태로 존재합니다. //아이템 상세 정보 @GetMapping("item") public String itemDetail(@RequestParam("itemId") Long itemId, @SessionAttribute(name = "loginMember") Member loginMember, Model model) { log.info("item 호출"); Item item = itemService.findOne(itemId); log.info(loginMember.getLoginId() + " " + loginMember.getName()); // 좋아요 여부 추가 model.addAttribute("isLiked", memberService.isliked(loginMember, item)); //이 부분입니다!! model.addAttribute("item", item); model.addAttribute("member", loginMember); if (item.getCategory().equals("Book")) { return "items/item/book"; } if (item.getCategory().equals("Album")) { return "items/item/album"; } if (item.getCategory().equals("Movie")) { return "items/item/movie"; } return "items/item"; } 위 컨트롤러를 호출하면, isliked라는 매소드를 실행하게 됩니다. 좋아요 여부를 확인하는 메소드입니다. //좋아요 아이템이 아니면 false 반환 @Transactional public Boolean isliked(Member member, Item item) { log.info("좋아요 확인 메서드 실행"); // log.info("멤버 정보" + member.getName() + " " + member.getLoginId()); for (LikedItem likeditem: member.getLikedItems()) { //여기에서 lazyinitializationError 발생 if (likeditem.getItem().getName().equals(item.getName())) { log.info("좋아요인 경우"); return true; } } log.info("좋아요 아닌 경우"); return false; } 그런데 여기에서 맴버의 좋아요 목록을 불러오면 lazyinitialization 에러가 발생합니다... 정말 많이 원인도 구글링해보았는데, 영속성 컨텍스트가 종료 된 후 접근할 때 발생하는 것을 알았습니다. 영속성 컨텍스트의 생명주기는 트렌잭션과 거의 동일하다고 알고 있습니다. 만약 위 메소드에 트렌젝션 어노테이션이 없다면 member.getLikedItems() 의 결과를 초기화해주지 않으면 오류가 발생할 것입니다. 따라서 트렌젝션 어노테이션을 넣으므로서, member.getLikedItems()를 가져오고, 직접 DB에서 불러오는 과정을 한 트랜젝션 안에서 수행하도록 했습니다. 그런데 이 메서드에서 계속 LazyinitializatoinError가 발생합니다. 이 부분의 원인을 전혀 못 찾겠습니다.. 해결책으로는 DTO를 사용하거나, fetch Join을 사용해서 멤버와 같이 조인하여 한번에 가져옴으로 해결할 수있을 거라 생각합니다. 하지만 해결책은 알았지만, 위 코드의 무슨 오류가 있는지 정말 궁금합니다. 따라서 이 코드의 오류를 알고 싶습니다. 또한 저의 이해에 오류가 있다면 그 부분도 알려주시면 감사하겠습니다.

  • java
  • jpa
ml505050 댓글 1 좋아요 0 조회수 179

이런 문제가 발생합니다

미해결

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

애초에 없는 파일이라 뜨는데 뭐가 잘못된건가요??

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 209

117번 동영상이 안올라온거 같아요

미해결

PZM기반 실무중심 백엔드 부트캠프(프리트레이닝)

그런거 같아요

  • java
  • spring
  • spring-boot
  • jpa
  • backend
김재원 댓글 1 좋아요 0 조회수 249

단건 조회 시 Optional

미해결

실전! 스프링 데이터 JPA

<순수 JPA 기반 리포지토리 만들기>에서 단건 조회 시 Optional로 반환하는데, repository layer에서 orElseThrow를 던지는 방법은 별로인가요?

  • java
  • spring
  • spring-boot
  • jpa
ckdgus1713 댓글 2 좋아요 0 조회수 302

Time클래스 Period의 값을 LocalDate에 넣기

해결됨

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 궁금중이 생겨서 질문을 남깁니다. Period클래스를 이용해서 지정 범위 의 시간을 구한 것을, 다시 LocaDate로 값을 바꾸고 싶을때, 아래의 코드처럼 코딩을 하였는데요, LocalDate startDate = LocalDate.of(2024, 1, 1); LocalDate endDate = LocalDate.of(2024, 11, 21); Period period = period.between(startDate, endDate); LocalDate localDate = LocalDate.of(period.getYears(),period.getMonths(),period.getDays()); 이런 코드 스타일이라고 할까요? 이렇게 코드 짜는게 맞나요? (TestBetween클래스 코드를 좀 수정 한 것입니다.) 답변 부탁 드립니다. (추가) - 코드 변경 + 내용 수정 글을 다시 보니 글이 너무 이상하네요. 좀 죄송합니다. 저가 너무 서포터즈님 들의 도움만 바라는 것인가? 라는 생각도 좀 드는데.. 이것도 지적해주시면 감사하겠습니다.

  • java
  • 객체지향
생각하는자 댓글 1 좋아요 0 조회수 271

AWS S3 : 버킷에 사진이 업로드가 안됩니다(2)

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

[Nest] 27666 - 2024. 05. 23. 오후 12:23:25 ERROR [ExceptionsHandler] ENOENT: no such file or directory, stat '/Users/제이름/MatzipApp/server/uploads/index.html'Error: ENOENT: no such file or directory, stat '/Users/제이름/MatzipApp/server/uploads/index.html' 아까 올린 문제는 제가 지역을 잘못봐서 .env 파일에서 수정해서 해결했습니다. 다시 실행해보니 이번엔 저런 오류가 뜨는데욥실제로 저런 디렉토리랑 파일이 서버 하위에 없긴 합니다.. 구글링해도 도저히 답이 안나와서 다시 한번 질문 드립니다!

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
Lee rimi 댓글 1 좋아요 0 조회수 358

S3 실행시 버킷에 사진이 업로드가 안됩니다

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

기존에 있는 문제는 해결됐습니다! (개인정보가 있어서 삭제합니다ㅜㅜ)

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
Lee rimi 댓글 1 좋아요 0 조회수 221

회원가입 오류입니다!

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

일단 회원가입시 400 에러가 발생 합니다 ! 리퀘스트 인터셉터 에러 내용 {"adapter": ["xhr", "http", "fetch"], "baseURL": "http://localhost:3030", "data": {"email": "ajrfysd@naver.com", "password": "gsas22sgda"}, "env": {"Blob": [Function Blob], "FormData": [Function FormData]}, "headers": {"Accept": "application/json, text/plain, */*"}, "maxBodyLength": -1, "maxContentLength": -1, "method": "post", "timeout": 0, "transformRequest": [[Function transformRequest]], "transformResponse": [[Function transformResponse]], "transitional": {"clarifyTimeoutError": false, "forcedJSONParsing": true, "silentJSONParsing": true}, "url": "/auth/signup", "validateStatus": [Function validateStatus], "withCredentials": true, "xsrfCookieName": "XSRF-TOKEN", "xsrfHeaderName": "X-XSRF-TOKEN"} 리스폰스 인터셉터 [AxiosError: Request failed with status code 400] email, password로그도 잘 찍히고 하는데 왜 400이 발생하는지 모르겠습니다..ㅠㅠ 서버쪽 같기도 한데 잘 모르겠네요.. postgresql에 테이블도 잘 생성 되어 있고 npm run start:dev Application] Nest application successfully started +2ms http://localhost:3030 크롬에서 3030 으로 요청시 로그에 내줄 index.html 없다고 하는거 보니 작동 하는것 같긴 한데... 이상하게 Postman 에서는 couldnot send 나오고... /auth/signup도 마찬가지고... 다른 부분은 confirmPassword를 제가 rePassword로 바꾸었는데 보내는 쪽에서도 비밀번호확인은 안보내는것 같고 받는 쪽에서도 아예 안받는것 같은데.. 혹시 위 내용으로 추측 가능한 부분이 있을까요??

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
ajrfyd 댓글 4 좋아요 0 조회수 687

로그인/회원가입 오류 질문 드립니다.

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

const postLogin = async ({ email, password, }: RequestUser): Promise<ResponseToken> => { console.log('postLogin'); const {data} = await axiosInstance.post('/auth/signin', {email, password}); console.log('data', data); return data; }; 회원가입에서 오류가 발생해서 db를 봤는데 db에 데이터는 들어가 있습니다. 그래서 로그인을 진행해 봤는데 로그인이 되질 않아 postLogin에 console을 찍어 보았더니 axios post 에서 아무런 값도 받아오질 못하고 있었습니다. 오류 코드는 뜨지 않구요. 시뮬레이터를 껏다 켜보기도 하고 서버를 껏다 켜보기도 했는데 이제는 회원가입 시 db에 저장도 되질 않습니다. 환경은 윈도우/안드로이드 입니다. https://github.com/ghgfhfg2/react-native-base

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
soo_ya 댓글 2 좋아요 0 조회수 426

강의 자료 소스코드는 없나요?

미해결

iOS/Android 앱 개발을 위한 실전 React Native - Basic

제목 그대로 강의 자료로 완성된 소스코드는 따로 없는지 문의 드립니다 다른 강의들은 다 주던대

  • react
  • react-native
  • es6
ypd603 댓글 1 좋아요 0 조회수 346

No tests were found

미해결

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

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

  • java
  • spring
  • mvc
  • spring-boot
xorud0711 댓글 3 좋아요 0 조회수 350

전체 회원 다 뜨는거 말고 원하는 아이디만 찾을떄 어떻게해야 할까요?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <form action="/members/find" method="post"> <div class="form-group"> <label for="name">찾기</label> <input type="text" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit">찾기버튼</button> </form> </div> <!-- /container --> </body> </html> find.html입니다. <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <div> <table> <thead> <tr> <th>#</th> <th>이름</th> </tr> </thead> <tbody> <tr th:each="member : ${members}"> <td th:text="${member.id}"></td> <td th:text="${member.name}"></td> </tr> </tbody> </table> </div> </div> <!-- /container --> </body> </html> memberfind.html 입니다 memberController.java 입니다 @GetMapping("members/find") public String find(MemberForm form) { return "members/find"; } @PostMapping("members/find") public String find(Model model) { List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberfind"; } } List<Member> members = memberService.findMembers(); 여기 부분을 List<Member> members = memberService.findOne(); 으로 바꾸어야할텐데 ()-> 여기안에 매개변수를 뭘로 해야할까요

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 206

DROP 전략과 LATEST 전략의 차이점이 무엇인가요?

미해결

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

안녕하세요. 수업 잘 듣고 있습니다~ 백프레셔 전략 중 DROP과 LATEST 전략은 결국 버퍼가 비워질 때까지 Publsiher에서 emit되는 데이터를 제거(drop or discard)하는 것으로 이해했습니다. 버퍼가 비어지는 시점 이후로 emit되는 데이터를 다시 버퍼에 채운다는 점에서 두 전략은 같은 것으로 보입니다. 차이점을 알려주시면 감사하겠습니다~

  • java
  • spring
  • project-reactor
  • webflux
막스 댓글 3 좋아요 3 조회수 674

자바 컴파일 실행이 안 되서 질문 드립니다..

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

같은 패키지 내부에 Test.java 와 BusObject.java 가 있습니다. Test에서 BusObject객체를 만들어서 사용하는 것을 테스트하고자 하는데 다음과 같이 에러가 나옵니다. javac BusObject.java Test.java java BusObject.java Test.java (java BusObject Test 도 동일하게 안 됩니다ㅜㅜ) Error: Could not find or load main class week11.BusObject Caused by: java.lang.ClassNotFoundException: week11.BusObject 뭔가 문제인가요..? 지금까지 컴파일할때 week11.하고 패키지도 붙여보고, -classpath . 도 해봤습니다...

  • java
  • 객체지향
댓글 1 좋아요 0 조회수 208

실무에서 매핑 테이블은 어떻게 활용할 수 있을까요?

미해결

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

토이 프로젝트를 진행하던 중 궁금한 내용이 생겨서 질문 드립니다. 과거 Mybatis와 같은 것을 활용해 진행할 때는 코드 매핑 테이블에 코드값 (기본키)과 코드명 이렇게 있고 특정 테이블에서는 이러한 코드 값 키를 들고 있어 서브쿼리를 활용해 코드 명을 가져오는 방식으로 활용했습니다. JPA에서 위 구조를 활용하려면 특정 엔티티에 코드 엔티티를 넣고 서로 연관관계를 걸어 준 후에 fetch join으로 select 하는게 베스트 일까요?

  • java
  • spring
  • spring-boot
  • jpa
ybs1121 댓글 1 좋아요 0 조회수 603

[질문은 아니고 에러 해결법] 혹시 iOS로 진행하시면서 Config가 안 먹히는 분들 써보세요.

미해결

배달앱 클론코딩 [with React Native]

save it under ios folder as "Config.xcconfig" with the following content: #include? "tmp.xcconfig" ios폴더 들어가셔서 Config.xcconfig라는 새파일 만드시고 위 코드 넣으시면 동작합니다. 출처: https://www.npmjs.com/package/react-native-config

  • react-native
Bumang 댓글 1 좋아요 1 조회수 256

동시성 처리 관련 스레드 풀 설정 질문

미해결

@Test @DisplayName("쿠폰 여러 명 발급") void 쿠폰_여러_명_발급() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { final int threadNumber = i + 1; Integer key = i; executorService.submit(() -> { try { couponService.issueCoupon(param, usersMap.get(key)); } catch (PessimisticLockingFailureException e) { .... } 쿠폰 발급 동시성 처리 관련해서 테스트 코드 작성 간 궁금한 점이 있어서 질문을 올립니다. 구글링해서 작성해봤는데, 제가 이해하는 게 맞나 싶어서요... Executors.newFixedThreadPool(32) 이렇게 설정해주면, 32 개의 고정된 스레드 풀을 생성한다는 것이고 1,000 명의 유저가 해당 스레드 풀이 나눠서 작업이 수행된다는 것인가요 ? 그러니까 하나의 스레드에서 약 31명의 유저를 담당한다는 뜻일까요 ? 아니면 순차적으로 1,000 명의 유저를 하나의 스레드에 한 명씩 배치하여 작업하는 것이고, 실질적으로 한 순간에 32명의 유저만 작업한다는 뜻일까요 ? ㅠㅠㅠ

  • java
  • spring
  • 멀티스레딩
  • 동시성제어
  • 동시성
오세창 댓글 1 좋아요 1 조회수 319

pinned 확인법

미해결

1시간만에 끝내는 virtual thread in spring boot

https://github.com/openjdk/jdk/pull/17221 이런 내용이 있네요. -Djdk.tracePinnedThreads 보다 JFR 을 권장하는 것 같습니다.

  • java
  • spring-boot
  • 동시성
  • thread
  • virtual-thread
adoda 댓글 3 좋아요 0 조회수 422

해결했습니다!

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

해결했습니다!

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
댓글 1 좋아요 0 조회수 389

인기 태그

인프런 TOP Writers

주간 인기글