최근 글
Web

[Web] CloudFlare & Nginx SSL/TLS 인증

웹서버를 구축할 때 직면하는 문제 중 하나가 보안에 관한 것이다.웹 프로토콜은 HTTP 와 HTTPS 가 있고 이중 HTTPS 가 보안 인증된 프로토콜이다. 번외로, SSL 은 인증 오래된 보안 인증이고 지금은 SSL 3.0을 기반으로 TLS 로 발전해서 현재는 TLS로만 사용되고 있지만 워낙 SSL이름이 유명해서 그냥 SSL이라고 부르기도 하는 거란다. SSL 보안인증을 수행하기 위해서는 웹서버에서 공인인증된 SSL 인증서를 구축해야 하나 비용과 저사양 서버를 사용할 때의 SSL 보안 동작 부하를 줄이기 위해서 Cloudflare 를 활용 할 수 있다.1. 웹 데이터 기본 흐름클라이언트 (웹브라우저) 는 브라우저에 사이트 주소를 입력하여 접속한다. 이때 사이트 이름을 도메인이라고 하고 도메인은 실제 구..

VTK

[VTK] vtkTransform 더 깊이 알기

vtkTransform에 대해서 작성한 내용이 이전에 있었으니, VTK 내부의 작동 방식을 보며 공부한 내용을 다시 정리하려 합니다.1. vtkTransform 개요vtkTransform 은 Homogeneous Transform 을 기반으로 이동, 회전, 크기 조절등과 같은 3차원 공간에서의 조작을 위한 기능을 제공위한 클래스이다. Homogeneous Transform 은 여러 행렬을 순차적으로 곱을 하여 최종 변형 값을 계산하게 되는데, 이를 위해서 vtkTransformConcatenation 클래스 객체로 내부에 리스트로 저장되어 있는 Transform 데이터를 설정에 따라서 행렬 곱을 수행하고 결과 값을 전달한다. 2. VTK Transform List 저장방식모든 VTK에서의 Transfor..

VTK

[VTK] vtkTransform 외부 입력 하기

1.vtkTransform Internal Matrix vtkTransform 의 내부 Matrix 의 동작 방식을 이해하기 위해서는 vtkTransform 의 상속 관계를 확인해야한다. vtkTransform 을 내부적으로 vtkTransformConcatenation 클래스를 사용한다. 이를 통해 누적된 Matrix list 를 PreMultiply 또는 PostMultiply 를 기반으로 최종 행렬을 계산한다. 그런데, vtkTransform 에는 상속 클래스인 HomogeneousTransform 의 함수인 GetMatrix 함수가 있는데 이는 지금까지의 최종 행렬의 값을 갖고 있는 Matrix를 Update call 에 따라 업데이트하여 새로운 메모리에 할당하여 전달하고 있다. 따라서 이 함수를..

C#

[CSharp] Dependency Injection for IDisposable

ServiceCollection 의 DI를 이용하여 클래스의 객체를 생성하고 그 객체의 클래스가 IDisposable 을 상속하여, 프로그램이 종료 또는 인스턴스가 종료될 때 Dispose 함수가 자동으로 호출되게 하기 위해서는 DI 컨테이너가 해당 서비스가 IDisposable을 구현해야 되는지를 명시적으로 등록해야 한다. 이를 위한 예제는 아래와 같다.using Microsoft.Extensions.DependencyInjection;using System;public interface ITrackedDownloadService{ void TrackDownload(string url);}public class TrackedDownloadService : ITrackedDownloadService..

HW

[XIAO] Seeed Studio Xiao nRF52 구성

References Getting Started with XIAO nRF52840 | Seeed Studio WikiGetting Started with Seeed Studio XIAO SAMD21 | Seeed Studio Wiki1. 보드 : XIAO BLE nRF52840 (Sense) 보드 개발을 위한 첫 시작은 메인 내용을 참고하면 된다. Arduino 에서 보드 설정과 PC의 Serial 포트를 설정하고 example 코드로 테스트를 수행한다.nRF52840 보드와 nRF52840 (Sense)보드의 차이는 마이크와 IMU 센서의 유무이다. 2. DFU  모드 전환하기펌웨어를 업로드하기 위해서는 DFU(Device Firmware Update)모드로 전환을 해야한다. 기본적으로 업로드를 하면 ..

Developments
VTK

[VTK] vtkTransform 더 깊이 알기

vtkTransform에 대해서 작성한 내용이 이전에 있었으니, VTK 내부의 작동 방식을 보며 공부한 내용을 다시 정리하려 합니다.1. vtkTransform 개요vtkTransform 은 Homogeneous Transform 을 기반으로 이동, 회전, 크기 조절등과 같은 3차원 공간에서의 조작을 위한 기능을 제공위한 클래스이다. Homogeneous Transform 은 여러 행렬을 순차적으로 곱을 하여 최종 변형 값을 계산하게 되는데, 이를 위해서 vtkTransformConcatenation 클래스 객체로 내부에 리스트로 저장되어 있는 Transform 데이터를 설정에 따라서 행렬 곱을 수행하고 결과 값을 전달한다. 2. VTK Transform List 저장방식모든 VTK에서의 Transfor..

VTK

[VTK] vtkTransform 외부 입력 하기

1.vtkTransform Internal Matrix vtkTransform 의 내부 Matrix 의 동작 방식을 이해하기 위해서는 vtkTransform 의 상속 관계를 확인해야한다. vtkTransform 을 내부적으로 vtkTransformConcatenation 클래스를 사용한다. 이를 통해 누적된 Matrix list 를 PreMultiply 또는 PostMultiply 를 기반으로 최종 행렬을 계산한다. 그런데, vtkTransform 에는 상속 클래스인 HomogeneousTransform 의 함수인 GetMatrix 함수가 있는데 이는 지금까지의 최종 행렬의 값을 갖고 있는 Matrix를 Update call 에 따라 업데이트하여 새로운 메모리에 할당하여 전달하고 있다. 따라서 이 함수를..

VTK

[VTK] Mesh Smoothing Filters

GPT 답변vtkSmoothPolyDataFilter와 vtkWindowedSincPolyDataFilter 두 필터는 모두 VTK (Visualization Toolkit)에서 제공하는 메쉬 스무딩(정점 위치 조정을 통한 표면 평활화) 기능을 수행하지만, 각기 다른 알고리즘과 특성을 가지고 있습니다. 이들의 주요 차이점을 이해하는 것은 특정 응용 프로그램에 적합한 필터를 선택하는 데 중요할 수 있습니다.vtkSmoothPolyDataFilter알고리즘: vtkSmoothPolyDataFilter는 간단한 래플라시안 스무딩 기법을 사용합니다. 이 방법은 각 정점을 그 이웃 정점의 평균 위치로 이동시킴으로써 메쉬를 평활화합니다. 이 과정은 여러 번 반복될 수 있으며, 각 반복은 스무딩의 정도를 증가시킵니다..

VTK

[VTK] VTK File Extension

1. 개요 VTK 에서 지원하는 파일 타입을 알아본다. 2. 지원 파일 File Extension Description Data Types .vtk Legacy VTK format. Stores a wide range of data types in either ASCII or binary format. Structured and unstructured grids, polygons, images .vti VTK XML Image Data format. Stores structured points or image datasets. Structured points, images .vtp VTK XML PolyData format. Stores polygonal data. Polygons .vtu VTK XML..

VTK

[VTK] Painting Mask Image 생성하기

1. 개요 입력된 원본 이미지의 Painting 작업을 위해서는 Mask 용 이미지데이터가 필요하다. 이를 위해 원본 이미지에 맞는 Painting Mask 용 이미지 데이터를 생성하고 임의의 영역에 대한 초기값을 입력하는 것을 알아본다. 2. Painting Source 만들기 Masking 용으로 사용되는 이미지는 Compoenent가 1이며 unsigned char 타입의 scalar type을 갖는다. 원본이미지의 Spacing, Dimension, Origin만 참고하여 새로운 이미지 데이터를 만들면 된다. public void CreatePaintingSourceImageData() { paintData = vtkImageData.New(); paintData.SetOrigin(0, 0, 0)..

Programming
Web

[Web] CloudFlare & Nginx SSL/TLS 인증

웹서버를 구축할 때 직면하는 문제 중 하나가 보안에 관한 것이다.웹 프로토콜은 HTTP 와 HTTPS 가 있고 이중 HTTPS 가 보안 인증된 프로토콜이다. 번외로, SSL 은 인증 오래된 보안 인증이고 지금은 SSL 3.0을 기반으로 TLS 로 발전해서 현재는 TLS로만 사용되고 있지만 워낙 SSL이름이 유명해서 그냥 SSL이라고 부르기도 하는 거란다. SSL 보안인증을 수행하기 위해서는 웹서버에서 공인인증된 SSL 인증서를 구축해야 하나 비용과 저사양 서버를 사용할 때의 SSL 보안 동작 부하를 줄이기 위해서 Cloudflare 를 활용 할 수 있다.1. 웹 데이터 기본 흐름클라이언트 (웹브라우저) 는 브라우저에 사이트 주소를 입력하여 접속한다. 이때 사이트 이름을 도메인이라고 하고 도메인은 실제 구..

C#

[CSharp] Dependency Injection for IDisposable

ServiceCollection 의 DI를 이용하여 클래스의 객체를 생성하고 그 객체의 클래스가 IDisposable 을 상속하여, 프로그램이 종료 또는 인스턴스가 종료될 때 Dispose 함수가 자동으로 호출되게 하기 위해서는 DI 컨테이너가 해당 서비스가 IDisposable을 구현해야 되는지를 명시적으로 등록해야 한다. 이를 위한 예제는 아래와 같다.using Microsoft.Extensions.DependencyInjection;using System;public interface ITrackedDownloadService{ void TrackDownload(string url);}public class TrackedDownloadService : ITrackedDownloadService..

C#

[OxyPlot] C# Custom Command Binding

1. Command 정의 및 Binding Oxyplot의 PlotController 에 원하는 이벤트에 대한 Command를 Binding 한다. 이를 위해서 어떤 데이터를 변수로 handle 할지를 정의한 Delegate를 선언한다. 그리고 원하는 이벤트에 Binding 을 한다. private PlotController BuildMainPlotcontroller() { var plotController = new PlotController(); // plotController.UnbindAll(); // Custom Command 함수를 위한 Delegate를 정의한다. HeatmapClicked = new DelegatePlotCommand((view, controller, args) => Hea..

C#

[C#] Setting Service with Configuration

1. 개요 Setting Service 를 구현하기 위해 사용되는 Package를 비교 분석한다. System.Configuration.ConfigurationManager 와 Microsoft.Extensions.Configuration 의 기능을 비교한다. 더보기 1. Historical Context: System.Configuration.ConfigurationManager: Part of the older .NET Framework. Commonly used to read settings from App.config for desktop apps and Web.config for ASP.NET apps. Built primarily for a world where apps had a single..

C#

[C#] Logging 서비스 활용하기

1. 개요 로깅 서비스를 통합관리하는 시스템으로 편리하게 소프트웨어 로깅을 기록하자. 2. 소개 여기에서는 .Net에서 사용할 수 있는 로깅 서비스로 NLog를 사용하려고 한다 간단한 설정에서 Dependency Injection 을 활용할 예정이다. 3. 구현하기 우선 Package 는 NLog와 NLog.Extension.Logging이 필요하다. NLog를 사용하기 위해서 Configuration 파일을 등록해야하는데 두가지 방법을 사용할 수 있다. # Configuration Config | NLog (nlog-project.org) NLog.config vs. appsettings.json 작성하는 방식의 차이일뿐 큰차이는 없다. 다만 NLog.config 를 사용할 경우에는 복잡한 layout..

RichardBang
로봇을 품은 개발자 이야기