전체 글 106

[Spring Boot] 동적 쿼리 처리를 위해 Querydsl 알아보기

Querydsl ? - JPA의 쿼리 메서드의 기능과 @Query를 통해 많은 기능을 구현 할 수는 있지만, 선언할 때 고정된 형태의 값을 가지는 단점이 있다. 이러한 경우엔 동적으로 쿼리를 생성하여 처리할 수 있는 Querydsl을 사용한다. - Querydsl은 작성된 엔티티 클래스는 그대로 이용하는 것이 아닌 'Q도메인'이란 것을 이용해야 하고, 이 과정에서 추가적인 설정이 필요하다. querydsl을 위한 설정 추가 (본인은 스프링부트 2.7.7 기준으로 작성) - build.gradle 파일에 다음과 같은 내용을 처리하자. 1. plugins 항목에 querydsl 관련 부분을 추가 2. dependencies 항목에 필요한 라이브러리 추가 3. Gradle에서 사용할 추가적인 항목 추가 bui..

스프링 2023.02.13

[경력] 그동안의 발차쥐

4년제 정보통신학과 졸업 전공자임에도 개발 관련 수업을 1학년 이후로 들어보지 못함 졸업을 앞두고 java 및 기본적인 공부 독학 시작 & 졸업전에 정보처리기사 합격 졸업 후 국비 시작 졸업 부터 취업까지 약 2년의 사투(?) 끝에 취업 2018.09 ~ 2019.06 솔루션 회사에 취업 연봉 2600 대체적으로 유지보수 업무를 맡아서 했고 전화응대가 주 였고, 가장 스트레스.. 2019.06 ~ 2022.05 지방으로 파견 시작 이전과 달리 하나의 사이트만 맡아서 개발, 유지보수를 하는 업무라 전보다 훨씬 깊게 공부 할 수 있었음 이 기간에 연봉 협상을 2번했고, 각각 2650, 3200으로 협상 요구분석, 기능정의, 화면설계를 직접 접할 수 있어서 좋은 경험이었음 2022.06 ~ 퇴사 후 첫 프리 ..

경력 2023.01.27

[프로그래머스] 스킬 체크 테스트 Level.1 - 문제 2

문제 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567→ "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 0 zero 1 one 2 two 3 three 4 four 5 five 6 six 7 seven 8 eig..

알고리즘 2023.01.17

[Spring Boot] Thymeleaf를 활용해보자(2)

Thymeleaf에서의 링크처리 Thymeleaf의 링크는 '@{}'를 이용한다. @GetMapping({"/ex2", "/exLink"}) public void exModel(Model model) { List list = IntStream.rangeClosed(1,20).asLongStream(). mapToObj(i->{ SampleDTO dto = SampleDTO.builder() .sno(i) .first("First.."+i) .last("Last.."+i) .regTime(LocalDateTime.now()) .build(); return dto; }).collect(Collectors.toList()); model.addAttribute("list", list); } Colored by ..

스프링 2023.01.12

[Spring Boot] Thymeleaf를 활용해보자(1)

Thymeleaf '템플릿 엔진'의 일종으로 HTML에 속성을 추가해 페이지에 값을 추가하거나 처리 할 수 있다. Thymeleaf를 사용하는 이유? 1. JSP와 유사하게 ${}을 별도의 처리 없이 이용할 수 있다. 2. Model에 담긴 객체를 화면에서 Javascript로 처리하기 편하다. 3. 연산이나 포맷 기능을 추가적인 개발 없이 지원한다. 기본적인 사용방법 기존의 속성 앞에 'th:'를 붙여주고 값을 지정해준다. JSP와 달리 별도의 태그를 이용하지 않아도 되며 Thymeleaf는 HTML은 그대로 두고 값을 추가하는 방식이다. Title Colored by Color Scripter cs 일반적으로 JSP에서 foreach문으로 리스트를 돌리는 것과 다르게 li 태그 내에 th:each라는..

스프링 2023.01.12

data-hwpjson 제거해버리기

업무 중 오류 사항을 전달 받았고 특정 게시글들만 게시글 저장/수정시에 크롬이 죽어버리는 현상이 발생되었다. 확인해보니 hwpEditorBoardContent라는 id값을 가진 div와 함께 data-hwpjson 이라는 태그가 함께 딸려 들어온다 그러니 필요외의 본문 내용이 함께 저장되서 너무 느려진다. 그래서 저장전에 불필요한 내용은 지우고 넘겨서 저장하도록 바꿨더니 해결되었다. (이게 원초적 해결인지는 잘 모르겠...) 1 2 3 4 5 var ntt = jQuery("#p_ntt_cn").val(); if(ntt.indexOf("

언어/JavaScript 2023.01.10

[Spring] @Query 어노테이션에 대해 알아보자

@Query 어노테이션 Spring Data JPA가 제공하는 쿼리 메소드는 간단한 검색 기능의 경우는 편리하게 사용 할 수 있지만 조인이나 복잡한 조건을 처리해야 하는 경우엔 불편할 때가 많다. @Query의 경우 메서드의 이름과 상관없이 메서드에 추가한 어노테이션을 통해 처리가 가능하다. @Query의 value는 JPQL(Java Persistence Query Language)로 작성하는데 흔히 '객체지향 쿼리'라 불리는 구문들이다. @Query로 할 수 있는 작업들 - 필요한 데이터만 선별적으로 추출하는 기능이 가능 - 데이터베이스에 맞는 순수한 SQL을 사용하는 기능 - insert, update, delete와 같은 select가 아닌 DML을 처리하는 기능(@Modifying과 함께 사용)..

스프링 2023.01.09

[Spring] 쿼리 메서드(Query Methods)에 대해 알아보자

쿼리 메서드? 말 그대로 '메서드의 이름 자체가 쿼리문'이 되는 기능이다. 쿼리 메서드는 주로 'findBy 나 getBy..'로 시작하고 이 후 And, Or와 같은 키워드를 이용한다. 사용하는 키워드에 따라서 파라미터의 개수가 결정된다. 예를 들어, Spring Data JPA 문서를 보면 findByStartDateBetween은 ...where x.startDate between ?1 and ?2 라고 설명되어 있듯 해당 키워드는 2개의 변수가 필요하다는걸 알 수 있다. 리턴 타입도 select를 하는 작업은 List나 배열을 이용 할 수 있고, 파라미터에 Pageable이 들어간는 경우엔 무조건 Page로 이용해야 한다. 테스트 코드를 통해 알아보자. Repository 인터페이스에 추가 pub..

스프링 2023.01.09

[Spring] Pageable 인터페이스 사용해보기

Spring Data JPA에서 페이징 처리와 정렬은 findAll()이라는 메서드를 이용한다. findAll()은 JpaRepository 인터페이스의 상위인 PagingAndSortRepository의 메서드로 파라미터로 전달되는 'Pageable'이란 타입의 객체에 의해 실행되는 쿼리를 결정한다. Pageable 인터페이스? 페이지 처리를 위해 가장 중요한 건 org.springframework.data.domain.Pageable 인터페이스이다. Pageable은 페이지 처리에 필요한 정보는 전달하는 용도의 인터페이스 타입으로, 실제 객체를 생성할 때는 구현체인 org.springframework.data.domain.PageRequest라는 클래스를 사용한다. PageRequest? 이 클래스의..

스프링 2023.01.08
728x90
반응형