보통 날짜값을 사용할 때 db와 뷰와의 관계에서 컨버팅을 자주 하게 된다. DB에는 예쁘게 들어가있지만 사용자 화면에 그대로 뿌리면 보통 우리가 보던 포맷이 아니기 때문에 매우 별로다. 그래서 데이터 조회해올 때 컨버팅한다던가 애초에 db에 string 형태로 넣는 경우다. 현재 프로젝트에서 날짜 컬럼타입을 timestamp 형식으로 사용하고 있다. JPA 에서 조회해서 뷰에 그대로 뿌려보니 2023-07-05T16:05:41 날짜와 시간 값을 구분하는 T가 들어간다. 그래서 엔티티는 LocalDateTime 타입으로, DTO 는 String 타입으로 mapstruct 에서 자동으로 컨버팅 되도록 해보려고 한다. 엔티티와 DTO의 날짜 필드타입을 다르게 선언하였다. @Entity public class ..
구 프로젝트에서 신규 프로젝트로 데이터를 반영해줘야 하는 경우가 생겨 HTTP API 호출 클래스인 AsyncRestTemplate 을 사용하려한다. 원래는 Spring5 부터 deprecated 되어 Webclient를 사용했지만, 구 프로젝트가 spring4.3.30 인 관계로 쓸때없는 공수를 투입하지 않기 위해 AsyncRestTemplate 클래스를 활용하려고 한다. AsyncRestTemplate 를 사용하여 비동기 호출을 하려고 한다. 여러 메뉴에서 해당 기능을 활용하기 위해 각 메뉴의 DTO를 받는 제네릭 메소드로 작성해보았다. public class HttpApiUtil { private Logger logger = LoggerFactory.getLogger(this.getClass());..
DB timestamp 타입과 맞추기 위해 DTO 변수를 LocalDateTime 으로 선언하고데이터를 받아 DTO에 Objectmapper로 set 할때 아래와 같은 오류를 만났다. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling java8 버전의 날짜/시간 직렬화/역직렬화 하는데 jackson 쪽에서 모듈이 없어 못하는 상황. jackson-datatyp..
IB Sheet8 그리드 제품을 신규 프로젝트에도 사용하기로 되었는데 기존 프로젝트에는 공통 CRUD 컨트롤러/서비스에서 IB Sheet의 데이터 Map 방식을 가공하여 mybatis 쿼리 xml에 맵핑하는 방식으로 되어있었다. 기능을 빠르게 만들어 내기에는 아주 편안한? 그러나 유지보수하기에는 찾기 아주 불편한? 편안한 이유는 기능마다의 컨트롤러/서비스/DTO를 구성할 필요가 없으며, mybatis xml 쿼리만 생성하면 되었기 때문에 java 코드를 작성할 필요가 없었음. 전형적인 대한민국 si 프로젝트 방식으로 구성 되어있었음. 신규프로젝트에는 JPA를 적용하기로 했고, 그러다 보니 기존 공통 CRUD를 그대로 가져다 쓸 수 없었음. (제네릭방식으로 잘 구성하면 다시 재활용 가능하나, 난 유지보수가..
프로젝트에 QueryDsl 을 잘 적용하여 진행중에 갑자기 느닷없이 빌드오류가 발생해서 봤더니 예전에 발생했던 Qclass 심볼을 찾을 수 없다는 오류... D:/GitHub/sample/src/main/java/.../SampleCustomRepository.java:6:36 java: cannot find symbol symbol: class QSampleEntity location: package com....sample.entity 아래 글에서 gradle 설정으로 해결을 했던 상황이기 때문에 동일 문제 아닐 것이라 보고 다른 케이스를 찾아보았다. [SpringBoot] QueryDSL Q클래스 빌드오류 해결 (feat.intelliJ) 지난번 이클립스(STS)와 인텔리제이에서 QueryDSL Q..
서로 다른 리눅스 서버간 파일을 통째로 옮겨야 해서 scp (secure copy) 를 써보기로 했다.(얘 없었으면 ftp로 내컴에 옮긴담에 목적지 서버에 밀어 넣는 짓을 하고 있었겠지...? ㅋ) scp 대상파일 목적지ip:받을 디렉토리scp test.html 127.0.0.1:/home/test 파일을 보낼때 위와 같이 작성해주면 되는데scp 는 ssh 22 포트를 통해서 보내기 때문에 서버간 ssh 가 연결 되는지 확인 해줘야 됩니다. ssh -p 22 목적지IP ssh 명령어로 서버간 접속이 잘 되면 scp 명령어를 사용하면 파일을 바로 보내버립니다. 이제 저는 폴더채 전송을 했는데 아래와 같은 메세지가 나옵니다.root@127.0.0.1's password:/usr..