
[thymeleaf] Expression Utility 로 데이터 백분율 row 추가하기.통계 집계한 데이터를 조회하여 table 에 그려주는 과정에서중간중간마다 데이터 백분율을 작성해 주고 싶었다. thymeleaf each 를 사용해서 조회한 데이터를 아래와 같이 그렸다. 구분1월2월jong-bae.tistory.com 이전 포스트에서 thymeleaf 로 데이터 테이블을 가공해서 뷰에 그려줬는데이번엔 검색 필터로 조회할때마다 값을 비동기적으로 업데이트 하고자 했다. 일반적으로는 ajax 나 fetch 를 사용해서 서버로 부터 값을 받아와성공 결과로직에서 갱신할 엘리먼트를 지우고 다시 그려주거나 했다. 간단한 엘리먼트 갱신은 문제 없으나화면에 요소가 많으면 매우 불편하다. 하지만 아래..

Mapstruct 를 활용하면 Entity ↔ DTO 간 필드들을 쉽게 맵핑하여 사용할 수 있습니다. 필드가 많아지면 일일이 손수 맵핑하는게 여간 귀찮은 일이 아니며, 생각없이 맵핑하다가 타이핑 실수로 맵핑이 안되는 경우가 발생 할 수 있기 때문에 Mapstruct 를 잘 활용하는 것이 좋습니다. 이번 포스트에서는 mapstruct 로 간단히 entity 와 DTO 간 필드를 맵핑하는 법과 @Mapping 어노테이션을 활용하여 필드 데이터를 조작 맵핑하는 방법을 다뤄보려고 합니다. 더 고급 기술들이 있지만 저도 아직 실 사용하지 않는터라 다 다루지는 않겠습니다. Mapstruct 를 사용하기 위해서는 아래의 dependency 를 추가해줍니다. implementation 'org.mapstruct:map..

필자도 한때 프로젝트를 뛰면서 생각없이 기간내에 처리하기 위해 @Autowired 를 이용한 의존주입을 남발하여 사용해왔고, 지금도 자연스럽게 이를 사용해왔습니다. (사실 Spring을 처음 접할 때 그렇게 쓰라고 가르쳤었음...) 생성자를 이용하는 것이 이점이 있음을 알고 있었지만 간편함에 빠진 오래된 버릇을 고치기란 쉽지 않았습니다. 그래서 신규로 하는 프로젝트에는 이런것들을 없애고자 @Autowired 를 완전 지양하도록 하려고 합니다. 이미 @Autowired 의 사용은 공식문서 그리고 Spring팀에서 지양을 권고해왔습니다. 단점들이 너무 명확했기에... - 불확실한 참조 - 코드 변이의 가능성 - 순환참조의 가능성 (컴파일 시 검출 불가) - 단일책임의 원칙 위반 가능성 장점은 남발하기 편하다..

구 프로젝트에서 신규 프로젝트로 데이터를 반영해줘야 하는 경우가 생겨 HTTP API 호출 클래스인 AsyncRestTemplate 을 사용하려한다. 원래는 Spring5 부터 deprecated 되어 Webclient를 사용했지만, 구 프로젝트가 spring4.3.30 인 관계로 쓸때없는 공수를 투입하지 않기 위해 AsyncRestTemplate 클래스를 활용하려고 한다. AsyncRestTemplate 를 사용하여 비동기 호출을 하려고 한다. 여러 메뉴에서 해당 기능을 활용하기 위해 각 메뉴의 DTO를 받는 제네릭 메소드로 작성해보았다. public class HttpApiUtil { private Logger logger = LoggerFactory.getLogger(this.getClass());..

보통 로그인부를 직접 만들어 써도 되지만Spring 에는 security 라는 아주 좋은 인증 기능이 있기 때문에 보통 이것을 사용해왔다. 최근 security 쪽 코드를 개선하다가 사용법을 남겨보려고 한다. Springboot gradle 에 관련 라이브러리를 작성합니다.설정에 필요한 라이브러리만 일단 작성해줍시다.implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'org.springframework.boot:spring-boot-starter-security'implementation 'org.springframework.boot:spring-boot-starter-data-jpa'compileOnly..

지난번 STS (이클립스) 에서 QueryDSL을 설정했었다. [SpringBoot] QueryDSL Q클래스 생성하기 : 플러그인 방식 (feat.STS) [SpringBoot] QueryDSL Q클래스 생성하기(feat.STS) JPA JPQL 을 사용하던 도중 QueryDSL 로 쿼리를 짜보고 싶어 셋팅해봄. SPRING DATA JPA 레퍼런스에 queryDSL이 언급은 되는데 설정하는 방법 같은 건 딱히 없어서 블로그들 참고하여 셋팅해봄. 먼저 build. jong-bae.tistory.com 이번에 인텔리J로 같은 프로젝트 import 해서 진행하다보니 gradle 설정을 약간 조정해줘야 했다. 그래서 간단히 그 부분만 작성하도록 한다. 위 링크에 있는 이클립스 설정대로 IntelliJ 에..