23-06-14 TIL

more·2023년 6월 14일
0

문제

  • 인텔리제이 한글 주석이 깨지면서 테스트 코드를 돌렸을 경우 되기는 하는데 problem으로 나옴
  • Query Methods는 왜 메서드명을 규칙에 맞게 작성을 하면, 자동으로 쿼리가 생성되는지 원리를 잘 모르겠다. 완전 인공지능 인듯

시도

  • 인코딩 문제인 것으로 보이는데 실제 작동되는 코드도 아니고 주석처리한 부분인데 이렇게 난 경우가 없어서 잘 모르겠음
    -> 원래는 한글로 주석 처리 했을 경우 별 문제 없었는데 테스트 코드라서 그런가? 확인해봐야겠음
    -> 확인 결과 그냥 코드를 실행했을 경우에는 한글 주석을 주석처리로 하는데 테스트 코드에서는 problem으로 인식하는 거 같음

  • 메서드의 이름만 설정함으로써 쿼리를 자동으로 생성하는게 무슨 규칙이 있는건지 무슨 원리인지 알아보고 싶어서 구글링
    -> 규칙 : 해당 필드가 엔티티에 존재해야 하며, 필드명과 메서드 이름이 반드시 일치해야 한다
    -> find...By / read...By / query...By / get...By / count...By / exists...By / delete...By / remove...By 에서는 ...에 Entity의 필드명이 들어가야함 (아무거나 들어갈 수는 있긴함, 근데 이왕이면 엔티티에 필드가 있으면 그걸로 하면 좋을듯)

해결

  • File > Settings > Editor > File Encoding을 전부 UTF-8로 바꾸어줌
    -> 구글링 결과 Help > Edit Custom VM Option에서 '-Dfile.encoding=UTF-8' 이거랑
    '-Dconsole.encoding=UTF-8' 이거도 추가해주라고 함
    -> 해결

  • By 앞 부분은 주어를, 그 뒤 부분은 술어를 의미한다고 공식 문서에 적혀있긴하다.
    -> Spring Data JPA 에서 정해놓은 네이밍 컨벤션을 지키면 JPA가 해당 메서드 이름을 분석해서 적절한 JPQL 을 구성한다는데... 도저히 원리는 모르겠음... Spring의 기밀인건가? 뭐 검색하거나 공식 문서에 가도 나오질 않네... (검색, 영어 실력의 부족일 수도...)

알게 된 점

  • 코딩 공부하는데 있어서 정말 영어가 중요하구나 -> 괜히 개발자들이 중요하다고 생각하는 언어 1위가 아니였음

  • 뭔가 많음... 이렇게 개념도 많고 그에 따라서 배워야할 것도 많고...
    -> Spring은 query method, Annotation 등등 사용자가 굳이 일일히 만들지 않고 사용법을 알고 있으면 구현할 수 있도록 제공해주는 기능들이 이미 많이 구현되어있다는 것을 알았다. 이렇게 많은 것들을 알고 사용하는 것도 힘들텐데 어떻게 만들었는지;;
    -> 진짜 후회없도록 공부를 많이 해야겠다.

0개의 댓글