inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

19강 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 선생님 늘 친절하게 답변해주셔서 감사합니다. 19강에서 궁금한 게 있는데 service와 repository를 스프링 빈으로 만들기 전에 왜 jdbctemplate에 의존할 수밖에 없는 건가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 2 좋아요 1 조회수 688

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

미해결

실전! 스프링 부트와 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 조회수 363

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

해결됨

실전! 스프링 부트와 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

EC2 Auto Scaling - 동적 조정 페이지 내용 확인 요청

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

"EC2 Auto Scaling - 동적 조정" 페이지에서 단계 조정과 단순 조정의 차이점을 이야기하면서 휴지 기간 발생 유무를 설명하는데, 이 차이가 바뀐거 같습니다. 페이지에서는 단계조정 : 휴지기 발생해 응답이 나중에 수행 단순조정 : 휴지기 없어서 스케일링 중에도 응답 수행 그런데 AWS 가이드 보다 보니 반대로 되어 있더라고요. https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/as-scaling-simple-step.html#SimpleScaling 그래서 한번 더 확인 부탁 드립니다.

  • 네트워크
  • aws
park namsoo 댓글 1 좋아요 0 조회수 432

SpringConfig import문제

미해결

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

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

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

실전문제풀이 pdf 파일 요청드립니다

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

안녕하세요! 클라우드 인프라 강의 수강중인 학생입니다! 실전문제풀이 pdf를 받을 수 있을까해서 연락드립니다. e-mail : piel07@naver.com 가능하시다면 해당 메일로 보내주시면 감사하겠습니다! 좋은 강의 너무 감사드립니다!

  • 네트워크
  • aws
piel07 댓글 1 좋아요 0 조회수 389

업데이트 강의 목록

미해결

AWS Certified Advanced Networking - Specialty 자격증 준비하기

안녕하세요. 이번에 업데이트된 강의 목록을 알 수 있을까요? 전체적으로 변경된건 아닌것 같은데 업데이트된 강의만 다시 보려고 합니다.

  • 네트워크
  • aws
아이러브 댓글 1 좋아요 0 조회수 424

해설 pdf 공유해주시면 감사하겠습니다.

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

해설 pdf 공유해주시면 감사하겠습니다! 공부환경 특성상, 글을 보면서 공부하는게 편할 것 같아 문의드립니다. wndnjs0249@naver.com 감사합니다.

  • aws
  • 해설pdf
어하 댓글 1 좋아요 0 조회수 410

실전문제풀이 해설 pdf 요청 드립니다.

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

안녕하세요, 강의 들은 학생입니다. 실전문제풀이 해설 PDF 요청드립니다. 메일주소 kuhbmj@naver.com 입니다. SAA-03시험 꼭 합격하고 싶습니다. 감사합니다.

  • 네트워크
  • aws
james lee 댓글 1 좋아요 0 조회수 366

15강 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 선생님. jdbcTemplate.query(readSql, (rs, rowNum) -> 0, request.getId())에서 (rs, rowNum) -> 0과 request.getId()의 자리가 바뀌면 안 되나요? 왜 위치가 저런 건가요? 그리고 왜 수정은 id 기준이고 삭제는 이름 기준인가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 1 좋아요 1 조회수 466

session.abortTransaction()에 대한 실제 예시 문의

해결됨

mongoDB 기초부터 실무까지(feat. Node.js)

아래 명령어를 통해 transaction이 실패했을 때 원복한다고 하는데, 저런 것은 catch문에 넣어야 하는 것이 맞나요? 아니면 if else로 문제점을 발견했을 때 처리하게 하는 걸까요? 즉, 저 코드를 실제로 사용할 때, 어떤 모습으로 들어가는 지 궁금합니다. session.abortTransaction()

  • javascript
  • node.js
  • aws
  • mongodb
  • rest-api
  • dbms/rdbms
  • 데이터-엔지니어링
띵동 댓글 1 좋아요 0 조회수 310

AWS Shield & WAF

해결됨

AWS Boot Camp - AWS로 클라우드 시작하기

안녕하세요 영상중에 AWS Shield & WAF 마지막 부분이 말이 중간에 끊어진거 같습니다. 뒤에 뭐가 더 있는지 알수가 없네요 확인 부탁드려요

  • aws
Dalbong 댓글 1 좋아요 0 조회수 491

실전문제 해설 PDF 부탁드립니다

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

강사님 안녕하세요 좋은 퀄리티 강의 감사드리고 덕분에 AWS 익히는데 큰 도움이 되었습니다. 혹시 메일로 실전문제 해설 PDF 파일 받을 수 있을지 문의드립니다. 메일주소 : janghb0903@gmail.com 감사합니다.

  • 네트워크
  • aws
장성훈 댓글 1 좋아요 0 조회수 354

트레비스 ci 에 깃허브 연동이 안되네요.

미해결

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

플랜도 1달러 카드 승인과 구독완료했는데 계속 이러네요...

  • aws
  • docker
  • github
  • ci/cd
  • travis-ci
  • 데이터-엔지니어링
김은지 댓글 1 좋아요 0 조회수 572

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

해결됨

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

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

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

verify, validate, check, is

미해결

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

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

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

@ModelAttribute 사용시 @Valid

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

@RequestBody @Valid 사용시에 오류가 발생하면 ControllerAdvice @ExceptionHandler(MethodArgumentNotValidException.class)로 잡을 수 있었습니다. 하지만 @ModelAttribute를 사용하면 ControllerAdvice @ExceptionHandler(MethodArgumentNotValidException.class)로 잡히지가 않습니다.. 제가 잘못한 부분이 있을까요? /author/presentation/AuthorController getAuthorListByNickname에서 오류가 잡을 수가 없습니다. ControllerAdvice는 /global/error/ControllerAdvice에 있습니다. 감사합니다~ https://github.com/320Hwany/Webtoon

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
yhwjd 댓글 1 좋아요 0 조회수 1657

동적쿼리

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요! 아직 강의를 다 듣지는 않았지만, 궁금한게 있어 질문드립니다! 제가 현재 진행해야 하는 프로젝트는 동적으로 쿼리를 생성하는 게 중요합니다. 테이블에 10개의 컬럼이 있다면, 2개를 선택해서 보여줄 수도, 3개를 선택해서 보여줄 수도 다양한 조합으로 보여줘야 합니다. 저는 node.js와 flask로 웹을 개발한 경험이 있는데요, 컬럼을 리스트(또는 배열)로 받고 for문을 돌려가면서 컬럼 and 컬럼 and ... 이런 식으로 문자열을 만든 다음 select문 문자열에 for문 돌리면서 만든 문자열을 넣어서 예를 들면 select {컬럼조합} from 테이블 이런 식으로 만든 뒤 실행시켰거든요. 문자열만 잘 작성하면 그 문자열대로 바로 실행이 되니 오히려 쉽다고 느꼈습니다. 근데 스프링부트는 쿼리 수행이 굉장히 정적이라는 느낌인데요....제가 아직 공부 중이라 잘은 모르겠으나 어디서는 조회하고자 하는 컬럼에 대한 인터페이스를 만들라고 하는데, 그 조합이 한두개가 아닌지라.....그걸 하나하나 만들 수도 없고요...이건 where조건도 마찬가지고 join도 마찬가지고요...다른 프레임워크에서는 쉽게 가능하던걸 springboot가 바보 프레임워크가 아닌 이상 지원 안해주는 건 말이 안될 거 같고 이런 걸 어떻게 해야 하는 걸까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
Gahee Kim 댓글 2 좋아요 1 조회수 806

인기 태그

인프런 TOP Writers

주간 인기글