inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이야기를 나눠요

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

Spring Data JPA로 Mysql Full Text Search 기술 가용여부 질문

실전! 스프링 데이터 JPA

안녕하세요 스프링 데이터 JPA 강의를 듣다 질문이 생겨 문의드립니다. 토이프로젝트로 JPA를 사용하여 Mysql 전문검색(Full Text Search)를 해보는 중입니다. public interface JpaMenuReviewRepository extends JpaRepository<MenuReview, Long> { @Query(value = "SELECT * FROM menu_review WHERE MATCH (comments) AGAINST (:keyword IN NATURAL LANGUAGE MODE)", nativeQuery = true) List<MenuReview> findMenuReviewByCommentsContainingOnFullTextSearchWithQuery(@Param("keyword") String keyword); } JPA에서는 Full Text Search를 지원하지 않아서 nativeQuery로 다음과 같이 쿼리문을 작성하였습니다. 그런데 전문검색을 위해서 Table의 컬럼에 Full index를 추가해야 전문검색 쿼리가 작동한다고 알고 있는데요, JPA의 해당 특징은 "JPA의 DDL 자동 생성 기능" 또는 "JPA의 스키마 자동 생성 기능"으로 알고 있습니다. 이 기능은 JPA가 애플리케이션의 Entity 클래스를 분석하고, 이를 바탕으로 데이터베이스 스키마를 자동으로 생성하거나 업데이트하는 역할을 하여 @Entity , @Table , @Column 등의 애노테이션을 사용하여 엔티티 클래스를 정의하면, JPA는 이 정보를 바탕으로 필요한 테이블과 컬럼을 데이터베이스에 생성하는데요, 이럴 경우에는 제가 "ALTER TABLE tbl_query ADD FULLTEXT INDEX FullText (`comments` ASC)" 해당 ddl문을 넣을 수 없어서 곤란한 상황입니다. JPA, Mysql에서는 Full Text Search를 사용할 수 없는 건가요? 차선책으로 Elastic Search, Postgre, Mongo를 구상중인데 차선책으로 우회해야할지 고민입니다. 추가로 실무에서는 전문검색 기능을 위해 어떤 방법을 쓰시는지, 관련해서 문의드리고 싶습니다. 강의내용과 동떨어져 있는 질문이라 죄송합니다.

  • java
  • spring
  • spring-boot
  • jpa
하윤 댓글 1 좋아요 0 조회수 1939

그러면 API를 개발할 때 최선의 방법은 무엇인가요?

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

이번 API 개발 고급 - 컬렉션 조회 최적화를 쭉 들으면서 생긴 고민입니다. V1 ~ V3 까지의 각각의 명확한 차이점과 최적화 과정에 대해 이해하고 왜 이렇게 사용하는지에 대략적으로 이해하였습니다. 반면에 V4, V5, V6의 경우 DTO를 직접 조회를 통해 쿼리문의 간소화를 진행시키는 방법으로 최적화를 진행하는 것에 배웠는데 질문 1) 최종적인 실무에서는 V3.1의 fetch join 방식과 DTO를 통해 최소한의 쿼리 줄이는 방식 중 어느 것이 더 대중화된 방식인지 궁금합니다. 질문 2) 명확히 정해진 방식이 없다면 어느 부분에서는 fetch join 방식이 유용한지 dto 방식이 유용한지 아직 잘 이해가 되지 않습니다. 관련 지식을 학습할만한 검색 키워드를 알려주실수 있으신가요?

  • java
  • spring
  • spring-boot
  • jpa
재성 댓글 1 좋아요 0 조회수 392

슬슬 머리 터질 거 같으면 개추

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

이해가 안되고 머리가 아파온다

  • java
  • jpa
한성현 댓글 1 좋아요 4 조회수 592

면접 때, fetchjoin 관련 질문을 받았었는데요

실전! Querydsl

"N+1 문제 관련하여 어떻게 하면 해결할 수 있느냐?" 최근에 위와 같은 질문을 받았었는데요. 당연히 일반적으로 fetch join을 사용하니까 위와 같이 대답을 했었는데. 그렇다고 모든 걸 fetch join으로 사용할 수 없으니까 다른 최적화된 방법에 대해 아는게 있냐고 질문하시더라고요. 그래서 그 부분과 관련해서 질문드리는데요. 혹시 이론적인 부분 말고 실무적으로 위와 같은 내용을 해결할 수 있는 방법이 있을까요? 제가 생각했던 방법 중의 하나는 연관 관계를 맺지 않은 상태에서 해당 테이블의 PK를 갖고 있는 건데. (예를 들어, 주문 테이블, 상품 테이블이 있다면 주문 테이블에서 상품 테이블의 PK를 단순 컬럼 선언으로 갖고 있는 구조) 이런 구조로 해결할 수도 있나요? 이론적으로 JPA에서는 연관관계를 맺지만 실무적으로도 연관관계를 무조건적으로 맺어야 하나요? 예를 들어, FK가 걸려있는 회원과 게시판 테이블이 있는데 '게시판 글 등록'을 하게 되면 실제 존재하는 회원인지 회원 테이블에서 확인을 할 텐데 회원 테이블의 데이터가 1,000만명이면 그걸 다 확인하는 구조일텐데 현실적으로 이런 것들을 고려해서 실무에서는 어떡게 해결하시는지 궁금합니다.

  • java
  • jpa
ㅅㅎ 댓글 1 좋아요 0 조회수 666

선생님 혹시 tableau 강의는 없을까요

[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이

SAS만 다뤘었고 SQL + Python이 대세인 가 싶었는데 어느 순간 대시보드 구축능력도 요구하네요 ㅋㅋㅋㅋ tableau 강의가 있으실지요.. 뭐부터 손을 대야 할지 .. 고민입니다.

  • sql
러시안블루 댓글 0 좋아요 0 조회수 504

목록을 보는 회차에서 zipcode가 안불러와지는 이유가..?

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

앞선 수강생처럼 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.Mon Oct 30 21:40:32 KST 2023There was an unexpected error (type=Internal Server Error, status=500).An error happened during template parsing (template: "class path resource [templates/members/memberList.html]")org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/members/memberList.html]") 여기서 zipcode받는 부분을 html부분에서 빼고 받지 않으면 실행이 됩니다. 그런데 zipcode를 받는 부분이 문제가 없어보이는데... 계속 검토중이긴 합니다만..혹여나아시는게 있을까 싶어서..

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김범준 댓글 2 좋아요 0 조회수 347

테스트 가이드 강의 수강하고 프로젝트 진행 중 번외로 질문하고 싶은 것이 있어 문의남깁니다 !

Practical Testing: 실용적인 테스트 가이드

제가 테스트 강의를 다 보고 프로젝트를 진행하던 도중에 막혔던 테스트 케이스가 있어 이렇게 문의드립니다. 바쁘시겠지만 혹시나 시간이 나신다면 한번 피드백 주시면 감사하겠습니다 ㅠㅠ https://mingeonho1.tistory.com/entry/JUnit5-WithMockUser%EC%97%90%EC%84%9C-username%EC%9D%B4-%EC%9D%98%EB%8F%84%EB%8C%80%EB%A1%9C-%EC%9E%91%EB%8F%99-%EC%95%88-%ED%95%A8 간단하게 궁금한점을 작성해봤습니다. - 블로그에 작성한 것처럼 외부로 분리해서 테스트한게 맞았을까요?? - @WithMockUser에 대해 제가 정확하게 이해한게 맞을까요?? - 틀리거나 부족한 내용은 없을까요?? 좋은 하루보내세요 감사합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
HOYA 댓글 1 좋아요 0 조회수 457

비즈니스 로직을 쿼리에서 해결 vs 도메인 단에서 해결

실전! Querydsl

안녕하세요 querydsl 강의를 보면서 이런 생각이 들더라구요 특정 비즈니스 로직을 수행함에 있어서 쿼리를 통해서 한번에 해결할 수 도 있을 것이고 아니면 관련된 엔티티를 불러와서 도메인 단에서 해결할 수도 있구요. 대부분 전자를 트랜잭션 스크립트 모델 패턴 후자를 도메인 모델 패턴이라고 부르더라구요. 저는 이전까지 대부분 후자를 선택했습니다. (유지 보수가 더 쉽다고 생각합니다.) 이 두개에 대한 선택 기준이 궁금합니다.

  • java
  • jpa
wooseok 댓글 1 좋아요 0 조회수 891

github 관련 질문

Practical Testing: 실용적인 테스트 가이드

강사님의 강의를 듣기 시작한 학생입니다. 제 개인 github에 강의에서 들은 내용을 정리하며 들을라 하는데, 코드를 작성하신 것을 올려도 될까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
tjdwo6269 댓글 1 좋아요 0 조회수 410

jdbcTemplate, JPA

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

JPA 로드맵의 JPA를 제대로 학습하려면 스프링 로드맵 DB 접근기술에 있는 jdbcTemplate 관련 강의를 꼭 봐야할까요?

  • java
  • spring
  • mvc
  • spring-boot
  • jpa
  • jdbctemplate
김경모 댓글 1 좋아요 0 조회수 459

깃에 공부한거 정리하며 올리는중인데

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

어떤식으로 출처를 남기면 좋을까요??

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

연관관계질문

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

임녕하세여 질문잇습니다 쌤이 밀하시길 단방향으로 설계를 하는게 좋다고랫는데 주문 과 주문아이템은 양방향으로 하신이유가잇을까요??

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
조소영 댓글 1 좋아요 0 조회수 360

연관관계 방향

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

안녕하세요 연관관계 방향대해서 여쭤볼게잇어서 질문합니다 상품이랑 리뷰 상품이랑 카테고리 방향에 대해서 질문잇습니다 Item <- review : 1:n 단방향 Item -> itemCategory -> category 1:n n:1 이 단방향이 맞을까요?? 구현하다가 양방향으로 변경해야할까요 아니면 단방향으오 해결될까요??

  • java
  • jpa
조소영 댓글 1 좋아요 0 조회수 310

모든 계층에 테스트 코드를 작성하는건 비효율적일까요?

Practical Testing: 실용적인 테스트 가이드

강사님의 훌륭한 강의를 듣고 현재 진행하고 있는 프로젝트에 테스트 코드를 작성하려고 합니다. 프로젝트 크기는 크지만(개인적인 생각) 아직 테스트 코드는 작성하지 않았고, 해당 프로젝트는 계층형 아키텍처로 이루어져있습니다. 개인적으로 테스트 코드는 유효성 검사를 하는 Presentation Layer보다는 Domain Layer와 같이 중요하고 복잡한 로직이 있는 곳에 더 필요하다고 생각합니다. 그래서 테스트 코드를 작성하는 것도 비용이라고 생각해서 우선은 도메인 로직과 관련된 테스트 코드를 작성하고 컨트롤러와 같이 적은 역할을 하는 곳에 테스트 코드를 차례대로 작성하려고 합니다. 테스트 코드를 작성한 경험이 없어서 부족한 점이 많은데 이렇게 테스트 코드를 프로젝트에 도입하는게 맞을까요? 강사님의 의견이 궁금합니다! 그리고 실무에서도 프로덕션 코드에 맞는 테스트 코드를 모두 작성하시는지 아니면 필요하다고 생각하는 곳에만 작성하시는지도 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
alsdl0629 댓글 1 좋아요 0 조회수 623

sql 이후 머신러닝을 배우려 합니다.

데이터 분석 SQL Fundamentals

이왕이면 강사님께서 올리신 강좌를 구매해 이어서 학습을 해보려 합니다. 로드맵이 있다면, 보고 구매를 하려고 했는데 올려져 있는 강의 수는 많은데 머신러닝 관련 로드맵이 없더라고요 파이썬 머신러닝 완벽 가이드, 딥러닝 컴퓨터 비전 완벽 가이드 딥러닝 CNN 완벽 가이드 캐글 advanced 머신러닝 실전 박치기 이 강의들을 기본부터 학습하려 하는데요 오래된 강좌가 개정되어 다른 이름으로 만들어져 있어서 내용이 겹치는게 있는지 아니면 모두 수강하는게 맞는지 어떤 순서로 학습하면 되는지 알고 싶습니다.

  • sql
  • postgresql
  • dbms/rdbms
bluebamus 댓글 1 좋아요 0 조회수 686

사이드프로젝트 전, 어디까지 강의를 들어야 할까요?

스프링 DB 2편 - 데이터 접근 활용 기술

하나 여쭤보고 싶은게 있는데, 기존에 NestJS를 사용하다가 Spring으로 전향하게 되어, NestJS로 작성된 토이 프로젝트를 Spring으로 변환하면서 강의 내용을 체득해보려고 합니다! 토이 프로젝트의 규모도 꽤 크고, 기존에 GraphQL로 작성된 쿼리들을 REST API로 변경할 계획인지라 사실상 새로 제작한다에 가까울 것 같습니다. 이걸 어떤 강의까지 들은 뒤 작업할 지 고민이 되는데, 혹시 조언을 주실 수 있을까요? 1. DB 2편 2. 스프링 완전 정복 로드맵 3. DB 2편까지 듣고, JPA 실무 완전 정복 로드맵까지 4. 스프링 완전 정복 로드맵과 JPA 실무 완전 정복 로드맵까지 현재 DB 2편 듣고 있는 중이며, 이 강의를 듣기 전엔 Spring에 대한 기반 지식이 아예 없었던 상태입니다. 조언 감사합니다!

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
이승주 댓글 1 좋아요 0 조회수 456

안녕하세요 선생님 SQLD 자격증을 취득하기위해선 해당 강의 로드맵을 다 듣는게 좋을까요?

[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이

안녕하세요. 강의를 보면서 열심히 공부하고있습니다. 다름이 아니라 이번에 SQLD 자격증 시험을 신청했습니다. 해당 강의 로드맵을 다 듣고 노랭이 책을 풀려고하는데, 해당 강의 로드맵을 전체적으로 들으면 될까요?

  • sql
Glitch 댓글 0 좋아요 0 조회수 422

안녕하세요 선생님 :)

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

삭제된 글입니다

  • java
  • 객체지향
갈색곰 댓글 1 좋아요 0 조회수 1643

주인 선정 방법의 고민

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

주인을 선정할때 "외래키가 있는 곳을 주인으로 정해라" 라고 설명이 되어있는데 RDB 를 많이 다뤄봤다면 당연한 개념입니다. 이런 개념으로 ERD 설계를 많이 하기는 합니다.(정규식, 비정규식 등의 개념은 있지만, 이 부분은 논외로 하구요~) 쿼리 작성시 이 부분이 헷갈리면 join 할때마다 고민이 많아지기는 합니다. 양방향이다 보니 아무렇게나 join 하면 되기 때문입니다. 하지만 쿼리 조인은 반드시 주인을 정해놓고 하다보면 틀이 잡히기 시작하고 inner/left/outer join 등의 개념도 아주 명확해지기는 합니다. 저는 이 강의를 보고 이 부분이 어렵다, 이해하기 힘들다고 하셨는데, 전혀 헷갈리거나 힘들지 않았습니다. 왜냐하면 이미 10년이상 RDB 쿼리 작성시 이런 개념으로 하다보니 그냥 당연하게 받아들여졌습니다. 단지, 객체지향(OOP)에서 이 부분을 어떻게 설계하고 문법을 정했는지가 궁금했습니다. 저도 EF(Entity Framework) 하다가 JPA를 공부중인데... 거의 같은 개념이고 받아들이기 쉽네요. 이 개념이 계속 어렵다면 RDB join 에 대해서 조금 깊이있게 연습해보시면 이해하는데 많은 도움이 될 것 같습니다.

  • java
  • jpa
miriamme 댓글 0 좋아요 0 조회수 451

인기 태그

인프런 TOP Writers

주간 인기글