본문 바로가기

전체 글

[JSON] Json에 클래스 상속 적용하기 (JsonSubType) 상속받은 클래스에 대한 JSON 처리를 하려면 JsonSubType을 활용해야합니다. 클래스 구조 활용방법을 위한 클래스가 다음과 같이 있다고 가정하겠습니다. package me.oofbird.vo; public class MainClass { private String type; public void setType(String type) { this.type = type; } public String getType() { return this.type; } } package me.oofbird.vo.sub1; import me.oofbird.vo.MainClass; public class Sub1MainClass extends MainClass { Sub1MainClass() { this.setType.. 더보기
[JPA] PostgreSQL jsonb 타입 설정하기 Spring Data JPA + PostgreSQL을 사용중에 객체정보를 테이블에 저장할 필요가 있을 수 있습니다. 객체를 JSON String으로 변환하여 저장하는 방법도 있지만, 여기서는 JSONB 타입으로 저장하는 방법을 설명하겠습니다. 의존성 추가 먼저 Spring Data JPA 기반이 되는 Hibernate의 type을 추가하기 위하여 vladmihalcea의 hibernate-types를 추가합니다. com.vladmihalcea hibernate-types-52 2.10.4 TypeDef 추가 특정 타입에 사용되는 클래스를 정의하기 위하여 @TypeDef 어노테이션을 사용합니다. 사용위치는 Entity 클래스에 정의합니다. package me.oofbird.jpa import org.hib.. 더보기
[VuePress] 한글Header 자소분리현상 수정 번역을 위해 VuePress를 활용하여 구성중 한글이 normalize되어 링크가 정상적으로 동작하지 않는 경우가 발생했습니다. 관련되어 수정방법을 공유합니다. 환경 vuepress : 1.8.4 현상 #을 활용한 헤더에 한글이 들어갈 경우 생성되는 Link가 자소분리되어 링크가 정상동작하지 않게 됩니다. # Compose 목차 # Compose 목차 실제로는 잘 보여도 Notepad++와 같은데에서 확인해보면 자소분리가 되어있음을 볼 수 있습니다. 원인 config.js 중 markdown.slugify 에서 사용되는 함수에 NKFD (정규형 호환성 분해(Normalization Form Compatibility Decomposition))를 사용하여 발생하는 현상입니다. @vuepress/shared.. 더보기
[Jenkins] pom.xml 정보 불러오기 Jenkins를 활용하여 Maven 빌드를 구성시 아래와 같이 pom.xml에 정의한 version 정보를 읽는 방법입니다. me.oofbird test 1.0.0 Pipeline Utility Steps Pipeline Utility Steps 플러그인을 사용하면 아주 단순합니다. def VERSION = readMavenPom().getVersion() Maven 명령어 활용 만약 플러그인을 사용하기 어려운 환경일 경우, Maven의 명령을 활용합니다. def VERSION = sh(script: 'mvn help:evaluate -Dexpression=project.version -q -DforceStdout', returnStdout: true) 이렇게 하면 VERSION에 1.0.0 값이 들어가.. 더보기
[PostgreSQL] 재시작없이 설정불러오기 (reload configuration without restart) PostgreSQL은 다양한 설정을 파일로 다루고 있습니다. 그중 pg_hba.conf 파일로 접근제어를 하게 되는데 운영중 수정이 필요한 상황이 발생했을 때 재시작 없이 적용하는 방법을 가이드 합니다. pg_ctl 이용 pg_ctl에서는 다음방법으로 설정로딩을 지원합니다. $ pg_ctl reload [-s] [-D datadir] 옵션은 -s : 오류 관련 메시지만 출력합니다. -D datadir : PostgreSQL이 사용하는 데이터 경로를 지정합니다. Query 이용 SQL 내에서도 설정로딩을 할 수 있습니다. SELECT PG_RELOAD_CONF(); 제약사항 일반적인 설정은 재적용이 가능하나, 일부 재시작이 필요한 설정은 적용되지 않습니다. 더보기
[MariaDB] 문자열을 날짜로 STR_TO_DATE MariaDB에서 문자열을 날짜형으로 변경하는 방법입니다. 문법 STR_TO_DATE(str, format) str은 날짜로 전환할 문자열이며, format은 문자열의 형식입니다. Format 주요 형식은 다음과 같습니다. 옵션 설명 %Y 4자리 년도 (예: 2021) %y 2자리 년도 (예: 21) %m 2자리 월 (예: 01) %d 2자리 일 (예: 01) %H 2자리 시간 (00 ~ 23) %h 2자리 시간 (01 ~ 12) %i 2자리 분 %S 2자리 초 예시 SELECT STR_TO_DATE('20200101 23:59:59', '%Y%m%d %H:%i%S') 2020-01-01 23:59:59 더보기
[Docker] Login시 'No such interface 'org.freedesktop.Secret.Collection' 오류 조치방법 Ubuntu 18.04 LTS의 Docker에서 Repository 연결을 위하여 Login을 시도하는데 다음과 같은 오류가 발생했습니다. ~$ docker login repository.com ** Message: 01:40:19.095: Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod:.... Error saving credentials: error storing credentials - err: exit status 1, out: `No such interface 'org.freedesktop.Secret.Collection' on object.... 해결방법은 누락된 특정 패키지를 설치하시면 됩니다. ~$ sud.. 더보기
[Ubuntu 18.04] Swap 크기 조정하기 우분투에서 사용되는 메모리는 물리메모리(RAM)와 SWAP메모리(HDD or SSD 등 disk)로 구성됩니다. 물리메모리가 부족하게 되면 SWAP메모리를 사용하게 됩니다. 메모리 확인 어플리케이션이 느려지거나, OOM(Out of Memory) 등의 문제가 발생하면 메모리 부분을 확인해보시면 됩니다. ~$ free -m totalusedfreesharedbuff/cacheavailable Mem:31989188661214151990812662 Swap:20475051542 free -m 명령을 통하여 확인이 가능하며 위 경우는 2GB가 할당되어있습니다. Swap 확장 메모리가 모자란듯하니 Swap영역을 확장해보겠습니다. 순서는 비활성화 -> 크기조정 -> Swap만들기 -> 활성화 입니다. #Swap .. 더보기