소개 요즘은 간단한 프로젝트나 테스트를 하기 위해 Docker를 사용하여 Database를 띄우는 경우가 많습니다. 그럴때 마다 백업 된 데이터를 다시 넣어주거나 데이터를 일일이 다시 넣어주는 일은 매우 귀찮은 일입니다. Database를 가장 맨 처음 딱 한번만 데이터를 넣고 싶을 때 사용하는 방법에 대해 알아보도록 하겠습니다. Init Da...
Stream, FileStream, BufferedStream, MemoryStream
Stream이란? 프로그램을 개발하다보면 Stream을 사용하는 일이 많습니다. Java와 .NET 에서는 입풀력 작업을 Stream이란 개념을 통해서 추상화하여 사용합니다. 대표적으로 파일을 읽고 쓸 때 많이 사용하는데, 자세히 알아보도록 하겠습니다. 먼저 사전적인 의미를 보자면 아래와 같습니다. A stream is a small na...
Docker Container Exit Code
소개 이번 포스팅에서는 Docker Container의 Exit Code에 대해 알아봅니다. Docker를 사용하다보면 예기치 않게 Container가 내려가거나 내려가 있어도 무슨 원인으로 내려갔는지 모를 경우가 많습니다. 이때 Exit Code를 확인하여 원인을 알아 볼 수 있습니다. Docker 종료 된 Container 목록 확인 &g...
DataGrid ColumnItem의 버튼으로 해당 행 삭제
개요 이 포스트는 WPF-MVVM에서 DataGrid의 행들이 각각 버튼을 가지고 있고 그 버튼을 클릭 했을 때 해당 행이 삭제되는 예제입니다. WPF 프로젝트 생성 MVVM 패턴으로 하기 때문에 아래와 같이 파일을 생성합니다. 파일명 설명 DelegateComma...
.NET Core에서 Redis Job Queue 사용하기
소개 Redis는 Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)입니다. 데이터베이스, 캐시, 메시지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소입니다. 많이들 Redis의 자료구조 중 List를 가지고 Queue나 Stack을 만들어 사용합니다. 속도는 ...
Could not load dynamic library 'libcudnn.so.8'
환경 OS : RHEL 8.5 GPU : Nvidia GeForce GTX 1060 6GB CUDA : 11.6 문제발생 Tensorflow를 실행 시킬 때 아래와 같은 로그가 뜨면서 GPU 동작을 하지 않고 CPU로만 동작합니다. 2022-03-29 16:21:12.448227: W tensorflow/stream_executo...
WPF Binding의 RelativeSource 속성
소개 WPF에서 Binding의 태그 중 RelativeSource 속성은 바인딩 할 객체를 찾을 때 사용됩니다. 자기 자신 <TextBlock Text="{Binding RelativeSource={RelativeSource self}, Path=FontFamily}" /> 자기 자신이 바인딩 소스인 경우 self로 자정하고 Pa...
NUMA node read from SysFS had negative value -1
환경 OS : RHEL 8.5 GPU : Nvidia GeForce GTX 1060 6GB CUDA : 11.6 문제발생 Tensorflow를 실행 시킬 때 아래와 같은 로그가 뜨면서 GPU 동작을 하지 않고 CPU로만 동작합니다. Found 3670 files belonging to 5 classes. Using 2936 fil...
FastAPI Docker 이미지 제작
소개 이번 포스트는 FastAPI 서비스를 Docker Image로 만들어 띄우는 방법에 대해 소개합니다. main.py 생성 main.py 파일을 생성하여 기본 코드를 작성합니다. from fastapi import FastAPI app = FastAPI() @app.get("/") def root(): return {"hello ...
FastAPI 실행하기
소개 이번 포스트는 FastAPI를 python 코드로 실행하고 확인하는 방법에 대해 설명합니다. 시작하기 FastAPI는 실행 방법이 두가지 있습니다. python에서 uvicorn 모듈을 사용하여 직접 실행하는 방법과 디버깅을 위해 main 함수에 uvicorn 실행 코드를 넣는 방법 입니다. 직접 실행 아래와 같이 main.py 파일에...