2022/03 3

[subList] Java.Util.ArrayList$SubList Deserialization 이슈 해결

Dto에서 선언한 List를 Service로직이나 Dao단에서 subList를 이용할 경우가 있습니다. 해당 subList를 통해 특정 길이로 잘라서 아래와 같이 사용하는 경우가 있었습니다. List dataList = new ArrayList(); dataList = dataList.subList(0,5); subList는 fromIndex, toIndex를 받아 해당하는 크기만큼 리스트를 반환합니다. 해당 값을 Redis로 캐싱할 때 아래와 같은 이슈가 발생했습니다. Redis deserialization error could not read JSON: cannot construct instance of ` Java util. ArrayList$SubList` subList로 자르면서 캐싱된 데이터 ..

Java 2022.03.30

[PostgreSQL] upsert 시 excluded 명령어

upsert 쿼리 시에 excluded 명령어에 대한 개념과 사용법을 정리해보겠습니다. - excluded 정의 기존의 파라미터 값을 그대로 사용할 때 사용. insert 에서 이용한 값을 재이용하고 싶을 때 excluded 키워드를 사용합니다. - 예시 INSERT INTO post (title, contents) values ('POST TITLE', 'POST CONTENTS') ON CONFLICT (title) DO UPDATE SET (contents) = (excluded.contents) 아래 excluded.contents 라는 것은 위에서 사용한 contents 값을 그대로 사용한다는 의미입니다.

Database 2022.03.25

STOMP에 대한 이해

STOMP란? (STOMP : Simple Text Oriented Messaging Protocol) STOMP는 메시지 전송을 효율적으로 하기 위한 프로토콜로, 기본적으로 Publish-Subscribe 구조로 되어있다. Publish-Subscribe 구조란 메시지를 공급하는 주체와 소비하는 주체를 분리해 제공하는 메시징 방법이다. 따라서 메시지를 전송하고 / 받아서 처리하는 부분이 확실하게 구조로 정해져있다. COMMAND key(header):value key(header):value ... BODY^@ COMMAND 리스트 - CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, BEGIN, COMMIT, ABORT, ACK, NACK, DISCONNECT 참고 : http:/..

Spring 2022.03.14