inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

쿼리가 강의보다 더 나오고 있습니다.

미해결

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

"/api/v2/simple-orders " 이 url로 호출했을 때, (1) order테이블에서 가져오는 쿼리 1번 => (2개의 데이터) (2) member 쿼리 1번 * 2 (3) delivery 쿼리 1번 * 2 해서 총 5번이 나오는 걸로 알고 있습니다. 근데 현재 로그에서 총 쿼리가 7번이 나가고 있습니다. 코드를 따라쳐보면서 했는데도 왜 다르게 나가는지 원인을 짐작하기가 힘듭니다. 현재 제 쿼리는 (1) order 테이블에서 가져오는 쿼리 1번 (2) member 쿼리 1번 (3) delivery 쿼리 1번 (4) delivery id 조건절로 order 찾는 쿼리 1번 (2)~(4)번 한 번 더 반복 이렇게 해서 총 7번 쿼리가 나가게 됩니다. 쿼리만 보고 어떤 부분때문에 더 나가게 됐는지 짐작할 수 있을까요? 엔티티 간의 연관관계 매핑은 강의를 보면서 했기 때문에 제가 중간에 놓쳤나 생각이 들기도 하네요ㅜ 원인을 짐작하기가 어렵습니다. select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first ? rows only 2023-03-23T19:03:54.387+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2023-03-23T19:03:54.390+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2023-03-23T19:03:54.393+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2023-03-23T19:03:54.395+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2023-03-23T19:03:54.396+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2023-03-23T19:03:54.397+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=?

  • java
  • spring
  • spring-boot
  • jpa
감자 댓글 5 좋아요 9 조회수 1382

다대다 데이터 조회 질문입니다.

해결됨

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

강사님 강의를 보고 최근에 프로젝트를 하다 궁금한게 생겨 질문 남기게 되었습니다. Product <-> Category Entity 다대다 매핑을 위해 product(OneToMany) <-> product_category(ManyToOne) <-> category(OneToMany) 위와 같은 테이블로 매핑한 상태이고 join 상속 전략으로 district_category 테이블도 생성 하였습니다. district_category를 쿼리 파라미터로 받고 해당 district_category를 갖고 있는 상품들을 검색하고 페이징을 하는 로직을 짠다고 했을때 두가지 방법이 생각났는데 둘 중 어느게 더 적합한지 모르겠습니다 검색어를 바탕으로 product_category에서 Product를 EntityGraph로 같이 찾은 후에 찾은 ProductCategory.getproduct() 와 같은 방식 SearchService Category category = districtCategoryRepository.findByDistrictEnum(districtEnum) .orElseThrow(() -> new ProductException(ProductExceptionType.CATEGORY_NOT_FOUND)); return new ProductCategoryToProductPage(productCategoryRepository.findAllByCategory(pageable, category)); ProductCategoryRepository @EntityGraph(attributePaths = "product") Page<ProductCategory> findAllByCategory(Pageable pageable, Category category); ProductCategoryToProduct public ProductCategoryToProductPage(Page<ProductCategory> page) { this.content.addAll(page.getContent().stream() .map(ProductCategory::getProduct) .map(ProductListGetResponseDTO::new) .collect(toList())); this.totalPages = page.getTotalPages(); this.totalElements = page.getTotalElements(); this.pageNumber = page.getNumber() + 1; this.size = page.getSize(); } 발생 쿼리문 select districtca0_.category_id as category2_1_, districtca0_1_.parent_id as parent_i3_1_, districtca0_.district_enum as district1_2_ from district_category districtca0_ inner join category districtca0_1_ on districtca0_.category_id=districtca0_1_.category_id where districtca0_.district_enum=? select productcat0_.product_category_id as product_1_8_0_, product1_.product_id as product_1_7_1_, productcat0_.category_id as category2_8_0_, productcat0_.product_id as product_3_8_0_, product1_.created_date as created_2_7_1_, product1_.content_detail as content_3_7_1_, product1_.product_content as product_4_7_1_, product1_.product_name as product_5_7_1_, product1_.product_price as product_6_7_1_, product1_.product_status as product_7_7_1_, product1_.product_thumbnail as product_8_7_1_ from product_category productcat0_ left outer join product product1_ on productcat0_.product_id=product1_.product_id where productcat0_.category_id=? limit ? select count(productcat0_.product_category_id) as col_0_0_ from product_category productcat0_ where productcat0_.category_id=? 검색어를 바탕으로 product에서 직접 찾기 (데이터 뻥튀기의 문제는 쿼리dsl 이용 productId로 groupBy로 해결) 글 쓰고 생각해보니 A카테고리는 B라는 상품 안에서는 하나밖에 있을 수가 없으니 굳이 groupBy를 안써도 될거 같네요 SearchService Category category = districtCategoryRepository.findByDistrictEnum(districtEnum) .orElseThrow(() -> new ProductException(ProductExceptionType.CATEGORY_NOT_FOUND)); return productRepository.findAllByCategory(pageable, category); ProductRepository @Override public Page<Product> findAllByCategory(Pageable pageable, Category category) { List<Product> content = queryFactory.selectFrom(product) .join(product.productCategories, productCategory) .where(productCategory.category.categoryId.eq(category.getCategoryId())) .groupBy(product.productId) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); Long total = queryFactory .select(Wildcard.count) .from(product) .join(product.productCategories, productCategory) .where(productCategory.category.categoryId.eq(category.getCategoryId())) .fetchOne(); return new PageImpl<>(content, pageable, total); } 발생 쿼리문 select districtca0_.category_id as category2_1_, districtca0_1_.parent_id as parent_i3_1_, districtca0_.district_enum as district1_2_ from district_category districtca0_ inner join category districtca0_1_ on districtca0_.category_id=districtca0_1_.category_id where districtca0_.district_enum=? select product0_.product_id as product_1_7_, product0_.created_date as created_2_7_, product0_.content_detail as content_3_7_, product0_.product_content as product_4_7_, product0_.product_name as product_5_7_, product0_.product_price as product_6_7_, product0_.product_status as product_7_7_, product0_.product_thumbnail as product_8_7_ from product product0_ inner join product_category productcat1_ on product0_.product_id=productcat1_.product_id where productcat1_.category_id=? group by product0_.product_id limit ? select count(*) as col_0_0_ from product product0_ inner join product_category productcat1_ on product0_.product_id=productcat1_.product_id where productcat1_.category_id=?

  • java
  • jpa
말차 댓글 1 좋아요 0 조회수 362

실무에서는 스크립트를 다듬는다고 하셨는데 지금 예제에서는 어떤 점을 다듬어야 할까요?

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 영한님, 강의 잘 듣고 있습니다! 강의에서 JPA가 생성해준 테이블을 그대로 쓰면 안되고, JPA가 쓴 DDL을 다듬어서 쓴다고 하셨는데 생각해보니 저는 토이프로젝트에서 항상 JPA가 만들어주는 그대로 썼던 것 같습니다. 그렇다면 지금 예제에서는 어떤 점을 보완하는게 필요할까요? 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
MyCatIsRockstar 댓글 1 좋아요 2 조회수 501

requestanimationframe 성능관련 궁금증

미해결

웹게임을 만들며 배우는 인터렉티브웹! JAVASCRIPT

안녕하세요 좋은 강의 잘 참고해서 재밌게 만들어보고있습니다. ^^ requestanimationframe을 사용해서 애니메이션이 부드럽게 잘 이동합니다만 애니메이션 종료를 따로 설정해주지 않으면 renderGame()은 무한히 반복될텐데 성능에 문제가 없을까요? bulletComProp.arr와 allMonsterComProp.arr의 경우 충돌하거나 사라질때 배열에서 삭제하기때문에 순회할게 없어 동작이 안된다고하더라도 hero.keyMotion 혹은 setGameBackground는 console로 찍어보니 값이 무한히 반복해서 성능에 문제가 되지 않을까 고민해보게 되네요 답변주시면 감사하겠습니다 정말 감사합니다.

  • HTML/CSS
  • javascript
  • 인터랙티브-웹
suhyeon kim 댓글 1 좋아요 0 조회수 608

레이아웃 B타입 만들기 footer-inner 작동오류

미해결

[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드

index.html <div class="footer-inner"> <footer> <div class="footer-logo"></div> <div class="copyright"> <div></div> <div></div> </div> </footer> </div> style sheet .footer-inner{ background-color: beige; } footer{ border: 1px solid green; width: 1200px; margin: auto; } footer > div { height: 100px; box-sizing: border-box; float: left; } .footer-logo{ border: 1px solid pink; width: 200px; } .copyright{ width: 1000px; } .copyright > div { border: 1px solid black; height: 50px; } footer-inner 부분만 먹히지 않아요... background-color를 줘도 실행이 안됩니다ㅠㅠ

  • HTML/CSS
  • jquery
  • 웹-디자인
소히 댓글 1 좋아요 1 조회수 415

== 와 ===

미해결

처음 만난 리액트(React)

const post = data.find((item) => { return item.id == postId; }); 이 코드에서 왜 == 를 ===로 바꿔줬을 때는 data를 찾지 못하는 걸까요? postId 와 item.id 모두 int 값 아닌가요?

  • HTML/CSS
  • javascript
  • react
ejrgud31 댓글 1 좋아요 0 조회수 525

전체레이아웃 E형 _ 브라우져 가로스크롤 생성이 됩니다.

미해결

[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드

안녕하세요 강좌를 듣고 큰 도움을 얻고 있습니다. 강의 듣고 따라 하는중 궁금사항이 있어 문의드립니다. - 전체레이아웃 E형 강의 듣고 따라 하여 모두 정상적으로 잘 레이아웃이 작성되었습니다. ( 강좌명 : E유형(HTML 전체 레이아웃 제작 with Flex) – E1) 그런데 , 브라우져의 세로 스크롤이 생성됩니다. 세로 스크롤을 안생기게 하려면 어떻게 해야 할까요?

  • HTML/CSS
  • jquery
  • 웹-디자인
윤희숙 댓글 4 좋아요 1 조회수 513

command 커서

미해결

컴퓨터, 웹, 코딩, 프로그래밍의 시작 - Web1

수업 내용중에 맥북은 command를 누르고 커서가 들어갈 곳을 누르면 여러곳을 한번에 수정할 수 있다고 하셨는데 저는 여전히 하나하나 수정해야 해야하길래 혹시 단축기 수정이 필요한걸까요 ? 아니면 제가 어떤걸 놓치고 있을까요 ㅠㅠㅠ 감사합니다

  • HTML/CSS
rse1232 댓글 1 좋아요 0 조회수 521

useContext hook

미해결

처음 만난 리액트(React)

useContext hook 을 사용할때 만약 랜더링이 무거운 작업이라면 최적화를 시켜줘야한다고 하셨는데 여기서 말하는 최적화란 무엇일까요? 변수에 담아서 데이터를 사용하는게 최적화 일까요?

  • HTML/CSS
  • javascript
  • react
ejrgud31 댓글 1 좋아요 0 조회수 476

SpringConfig import문제

미해결

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

강의영상에서는 MemberService가 제대로 import 되고 MemberService의 메서드도 불이 잘들어가있는데 왜 import가 안되는지 모르겠습니다. 앱실행하면 구동은 잘됩니다

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

"세팅 제이슨" 질문 보고왔는데 안되서 질문드립니다.

미해결

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

설정 창에 검색하니까 settings.json 이 안나오네요 ㅠㅠ 어떡하죠 편집이 안되네요 윈도우라 ctrl shift p 누르면 settings.json은 나와요

  • HTML/CSS
  • javascript
  • react
  • node.js
  • react-native
  • 머신러닝
  • express
  • tensorflow
조현성 댓글 1 좋아요 0 조회수 504

타임즈 render 부분 질문

미해결

자바스크립트 : 기초부터 실전까지 올인원

안녕하세요! 타임즈 뉴스 만들기 부분에서 render 함수 짜고 있는데 자꾸 map 관련 오류가 뜹니다... 콘솔에 아래와 같이 찍혀요... 데이터만 불러오면 자꾸 같은 오류가 나서 렌더링이 잘 안되는데 어떻게 해결할 수 있나요? main.js:17 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'map') let news = [] const getLastNews = async () => { let url = new URL('https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=business&page_size=10' ); let header = new Headers({"x-api-key" : "TXFw8gmdafTvdz_B53fry7i7yuJesOf5fWWhu5EZdyQ", }); let response = await fetch(url,{ headers:header }); let data = await response.json(); news = data.articles render() }; const render = () => { let newsHTML = ""; newsHTML = news.map((news) => { return `<div class="row news"> <div class="col-lg-4"> <img class="news-image" src="${news.media}"/> </div> <div class="col-lg-8"> <h2>${news.title}</h2> <p> 내용 </p> <div> 출처 </div> </div> </div>`; }).join(''); document.querySelector('#news-board').innerHTML = newsHTML; } getLastNews()

  • HTML/CSS
  • javascript
정윤경 댓글 1 좋아요 0 조회수 457

nav 태그

미해결

중상급 퍼블리싱을 위한 CSS3의 모든 것

안녕하세요 강사님 질문이 있어 질문드립니다. 강의 1분 30초경에 nav 태그를 설명하시면서 하나의 html 문서에 여러개의 nav 태그가 오는것은 시멘틱 태그 취지에 맞지 않다고 설명해주셨는데요 mdn 사이트에 nav 태그를 검색해보면 <nav> 하나는 사이트 전체 탐색, 다른 하나는 현재 페이지 내 탐색으로 사용하는 등, 하나의 문서에서 여러 개의 <nav> 태그를 가질 수 있습니다. 이럴 때 aria-labelledby 를 사용해 접근성을 향상할 수 있습니다. 이렇게 내용이 나오는데요 혼란이 있어 질문드리게 되었습니다. 감사합니다.

  • HTML/CSS
권경완 댓글 1 좋아요 1 조회수 1160

추상클래스 (abstract class)와 인터페이스(interface)의 최적의 쓰임?

해결됨

나도코딩의 자바 기본편 - 풀코스 (20시간)

안녕하세요 나도코딩 선생님...ㅎ 몇 주전에 나도코딩 자바편 강의를 완강하고 다시 2회차로 강의를 듣는 중입니다...ㅎ 추상 클래스 (abstract class)와 인터페이스(interface) 관련 강의를 들으면서 각각의 특징들 및 차이점들에 대해서 다시 조금씩 알아가고 있는데... (예를 들면, 추상클래스는 abstract 키워드를 가지고, abstract메소드를 가지고 있어서 객체를 생성할 수 없는 반면, 인터페이스(interface)는 보통 -able 키워드, 변수 X, 생성자 X, 오로지 메소드만 있다 등) 이 둘, 그러니까 추상 클래스 (abstract class)와 인터페이스(interface)는 '어느 때 (또는 어느 시점)'에 활용하는게 가장 적절한지 디테일하게 알 수 없을까요? 항상 좋은 강의와 답변 감사합니다...ㅎ

  • java
  • 객체지향
  • 추상클래스
  • abstract
  • 인터페이스
  • interface
댓글 1 좋아요 0 조회수 3482

verify, validate, check, is

미해결

Java/Spring 주니어 개발자를 위한 오답노트

안녕하세요! verify : 과정 validate : 최종 결과 check : 확인 is : 존재 여부 이렇게 생각하는데 다른 분들 의견 및 강사분 의견을 듣고싶습니다!

  • java
  • spring
  • 객체지향
이얏 댓글 1 좋아요 4 조회수 1968

border: none과 0px의 차이

해결됨

[코드캠프] 시작은 프리캠프

강의에서는 none이라고 해주셨는데 한번 0px로 해보니까 차이가 없더라구요 (육안으로는 차이 발견 못함) 혹시 0px이 아닌 none로 하는 이유가 있나요? iframe은 네모난 aqua 영역 전부입니다~

  • HTML/CSS
  • javascript
방황하는물고기 댓글 1 좋아요 0 조회수 1168

event 위임 관련해서 질문있습니다!

미해결

인터랙티브 웹 개발 제대로 시작하기

여기서 와일문을 돌리면 점점 큰 범위로 menu-btn이라는 클래스가 있는지 찾아가는 게 되는건가요? 예를 들어 버튼안에 버튼, 그안에 버튼 이렇게 있다면 내가 제일 안쪽에 있는 버튼을 클릭했을 때에, 제일 안쪽의 버튼, 중간버튼, 제일 겉에 있는 버튼 이런 순서로 찾아가게 되는 건지가 궁금합니다 영상 너무 잘보고 있습니다 ㅠ 좋은 강의 감사해요!!

  • HTML/CSS
  • javascript
  • 인터랙티브-웹
oilater 댓글 2 좋아요 1 조회수 474

html{}

미해결

입문자를 위한, HTML&CSS 웹 개발 입문

style 태그 내부에서 html { }을 하셨는데, 어떤 의미인가요? html 문서 전체를 선택한 건가요? 그렇다면 *{}와는 어떤 차이가 있나요?

  • HTML/CSS
태보미 댓글 1 좋아요 0 조회수 360

스칼라타입 형변환 질문드립니다

미해결

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

기본적인 개념같아서 구글링도 해봤는데 object 와 object[] 배열간의 형변환에 대한 내용이 안보여서 질문드립니다. 다름이 아니라 Object o = resultList.get(); Object[] result = (Object[])0; 에서 왜 Object 타입에서 Object[] 타입으로 형변환을 해야하는지, 그냥 o[0], o[1] ... 로 쓰면 왜 컴파일 오류가 나는지 궁금합니다. Object 타입에서 어떻게 Object[] 타입으로 형변환이 가능한지 궁금합니다. Obect[] 배열은 Object가 여러개 포함된 배열 아닌가요?.. 아니면 Object 타입이 Object[] 타입까지도 포함한 포괄적인 개념이라 위처럼 형변환이 가능한 건가요? 기본적인 내용같은데 개념이 잘 이해가 안가서 질문드립니다 ㅠㅠ

  • java
  • jpa
hw h 댓글 1 좋아요 0 조회수 430

class와 id

미해결

입문자를 위한, HTML&CSS 웹 개발 입문

CSS에서 id 선택자는 문서에서 하나만, class 선택자는 문서에서 여러개를 선택 가능하다고 하셨는데요! id 선택자가 따로 있는 이유는 무엇인가요? (모두 class로 선택하면 되는 것이 아닌가 해서 여쭤봅니다!) 감사합니다!

  • HTML/CSS
태보미 댓글 1 좋아요 0 조회수 290

인기 태그

인프런 TOP Writers

주간 인기글