본문 바로가기

전체 글

[Colaboratory] 코랩으로 python 환경 구성하기 딥러닝, 머신러닝 등으로 Python을 많이 활용하게 됩니다. Python 환경을 로컬에 구성해도 좋지만, 여기서는 Google에서 제공하는 Colaboratory (일명 Colab, 코랩)을 소개하겠습니다. colab.research.google.com Google Colaboratory colab.research.google.com 구글 코랩은 무료로 제공되며, Python 에서 많이 사용되는 Jupyter Notebook의 클라우드 버전으로 생각하시면 됩니다. 무료로 제공되는 환경은 노트북에 대한 최대 12시간 세션 유지 약 12 GB 메모리 약 100 GB 디스크 Nvidia K80, T4, P4, P100 등의 GPU 제공 (선택불가) 입니다. 작성된 내용은 Google Drive 또는 Gith.. 더보기
[Ubuntu] Google로 시간동기화 하기 Ubuntu에서 시간을 동기화 하는 방법은 NTP 설정이 있습니다. 여기서는 다른 이유로 NTP 설정이 어려운 경우 간단한 명령으로 시간동기화 하는 방법을 공유합니다. # sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z" 더보기
[docker-compose] NVIDIA GPU 사용하기 docker-compose 로 Docker 서비스를 구성할 때 NVIDIA GPU를 접근하는 방법에 대해 설명합니다. 사전필요사항 아래 내용을 진행하기 위해서는 다음사항이 준비되어야합니다. NVIDIA GPU Driver 설치 NVIDIA-CONTAINER-RUNTIME 설치 참고로, Docker 데몬의 기본 런타임을 nvidia로 설정하면 아래 내용이 불필요할 수 있습니다. runtime 사용 (v1.27.0 이상) Docker Compose v1.27.0 이상 버전부터는 2.x과 3.x 버전의 Compose 파일 스펙을 병합하여 지원하게 됩니다. 따라서 예전 v2.3에서 지원했던 runtime을 다시 사용할 수 있습니다. 다만, GPU 장치의 상세 설정은 불가능합니다. services: test: i.. 더보기
[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(); 제약사항 일반적인 설정은 재적용이 가능하나, 일부 재시작이 필요한 설정은 적용되지 않습니다. 더보기