분류 전체보기 (1002) 썸네일형 리스트형 [TIL][링크] messageSource application.yml 설정 옵션 지식 MessageSource와 관련된 설정들을 application.yml 파일에 작성할 수 있습니다. ( 참고 ) key 기본값 설명 spring.messages.always-use-message-format false MessasgeFormat을 전체 메시지에 적용할 것인지 여부 spring.messages.basename messages message 파일을 여러개 사용할 경우 콤마로 구분해서 여러개의 basename을 설정할 수 있다. spring.messages.cache-duration 캐시 주기 설정, 기본 값 forever spring.messages.encoding UTF-8 인코딩 방식 spring.messages.fallback-to-system-locale true 감지된 loca.. [Querydsl] 4. 중급 문법 - Projections, BooleanBuilder 1. 특정 DTO로 원하는 필드값만 가져오기 복습겸 JPQL로 원하는 필드값만 가져오는 것을 연습한다. MemberDto를 만들고 member.username, member.age 값을 가져와본다. 순수 JPA에서 JPQL로 Dto 조회 select 절에 new Operator를 사용해서 MemberDto를 가져올 수 있도록 작성한다. 특이한 점은 해당 Dto가 있는 패키지 위치를 전부 작성해야된다는 점이고, 타입은 MemberDto.class로 가져오면서도 from절은 Member 엔티티로 지정하고, MemberDto의 필드값도 이 엔티티 기반으로 m.username, m.age 로 작성해준다는 점이다. MemberDto.class 생성자가 반드시 있어야 한다. 1 2 3 4 5 6 7 @Data @A.. [Querydsl]3. 기본 문법 - 서브쿼리, Case, 상수 문자 더하기 1. 서브쿼리 서브 쿼리의 필요성과 SQL 사용 권장 사항 서브쿼리를 사용하면 SQL의 결과를 한 번에 깔끔하게 가져올 수 있다. 그러나 SQL로 모든 데이터를 한번에 가져오고, 깔끔하게 정리까지 할려는 것은 과한 측면이 있다. SQL문 하나에 모든 데이터를 가져오도록 하지말고, 작은 SQL문으로 쪼개어 애플리케이션이나 화면단에서 데이터를 합치자. 너무 방대한 쿼리문을 작성하는 것보다 여러 개의 의미있는 SQL문을 작성하는 것이 재사용성과 가독성을 높이는데 도움을 줄 수 있다. 다만, 성능이 매우 중요하고 실시간으로 데이터를 빠르게 받아와야 하는 경우에는 쿼리 횟수를 줄여서 성능을 확보하는 것이 중요할 수도 있다. raw 데이터를 가져오는 방식으로 SQL문을 작성해야한다. SQL문에서 제공하는 기본적인 .. [Querydsl]2. 기본 문법 기본문법은 대부분 익숙한 내용이라, 몰랐던 부분이나 중요한 부분만 위주로 개조식으로 작성한다. Q객체 생성하기 Maven으로 Build를 하면 Q 객체를 생성해줬었는데, Gradle은 Build를 해도 Q객체를 생성하지 않는다. 이전 글에서 배운 것처럼 compileQuerydsl을 직접해줘서 Q객체를 생성해줘야 한다. 기본 문법 static import를 안해서 어색할 수 있다. Q객체의 alias를 "m"과 같이 설정하고, 해당 객체를 querydsl 문법으로 넘기는 방식을 적용함을 자각하고 있자. 이 alias는 querydsl이 JPQL을 작성할 때 sql문의 alias로 사용한다. 같은 Q객체를 동시에 조회해야할 때, Q 객체의 alias를 지정해서 사용해주면 된다! 똑같은 엔티티에서 다른 내용.. [작성중][잠정 중단] 2. Bridge - 예제 : 구체적 이해 디자인 패턴은 글로는 이해가 되나, 아직까지 실무적으로 와닿지는 않는 것 같다. 향후 기회가 된다면 다시 공부해보자. 예시 - Remote And Device 리모컨이 Abstraction이고 어떤 Device를 interface로 만든다. 리모컨으로 표현되는 Remote에서는 device를 참조값으로 갖는다. device가 아니라 animal을 참조값으로 갖는다면 동물이나 사람을 조종할 수도 있지 않을까!? 어쨌든 device의 구현체들이 radio, tv 등이다. 이것들이 실제 기능을 하게된다. 또한 사용자는 리모컨만 있으면 어떤 device든지 켜고 끄고, 소리를 키우거나 줄일 수 있다. 응용처 실제 Bridge 패턴은 크로스 플랫폼 애플리케이션, 여러 종류의 데이터베이스를 지원하는 서비스 등에서 .. [Querydsl]1. 프로젝트 생성 및 예제 작성해보기 Querydsl 왜 쓸까? 1. 문법이 sql문과 거의 유사하기 때문에 배우기 쉽고 간결하다. 자바처럼 프로퍼티 탐색('.' 찍기)으로 문법 검색이 가능하다. 2. JPQL의 String으로 작성하는 sql문에 비해서, querydsl의 문법은 자바의 문법을 차용하기 때문에 Compile 시점에 미리 에러를 잡아준다. (전체 파일이 실행되기 전에 문제가 있으면 바로 알려준다.) 3. 검색 조건 등 복잡하고 동적인 쿼리를 가능하게 해준다. 물론 한계가 있어서 통계성 쿼리 등은 natvie 쿼리 등으로 해결해야한다. 1. 프로젝트 생성 및 환경 설정 스타터에 querydsl은 없다. 그림상에 있는 dependencies들만 추가하여 프로젝트를 생성한다. springBoot가 querydsl의 버전을 관리해주.. [비공개] Weekly Report - 21/11/22~21/11/28, 518일차 보호되어 있는 글입니다. 1. Bridge - 개념 : 기본 이해 Bridge는 추상(Abstraction)과 구현(implementation)으로 구조를 설계한다는 뜻이다. 자바 스프링에서는 추상과 역할을 분리한다. 정도로 이해하면 될 것 같다. 자바에서는 abstract - interface 이전 1 ··· 74 75 76 77 78 79 80 ··· 126 다음