목록분류 전체보기 (373)
잡동사니
안녕하세요. yeTi입니다. 오늘은 NVIDIA Triton Inference Server에 gRPC 통신을 해보려고 합니다. 개요 gRPC는 RPC(Remote Procedure Call)를 Google에서 개발한 RPC 프레임워크입니다. NVIDIA Triton Inference Server에서 gRPC로 통신을 편하게 할 수 있도록 Client SDK를 제공합니다. Client SDK 획득 Build Using CMake - Fail Triton Inference Server - GitHub에 코드를 공유하고 있는데 이를 활용하여 직접 빌드하여 SDK를 생성하는 방법입니다. git clone https://github.com/NVIDIA/triton-inference-server.git에서 Repo..
안녕하세요. yeTi입니다. 오늘은 자바 어플리케이션을 도커로 배포시 발생하는 A fatal error has been detected by the Java Runtime Environment오류를 해결해보겠습니다. 현상 도커로 Springboot 어플리케이션을 배포하는 상황에서 베이스이미지로 openjdk:12-alpine을 사용했습니다. 쿠버네티스에 배포 후 어플리케이션이 로드하는 과정에서 다음과 같은 오류가 발생했습니다. # # A fatal error has been detected by the Java Runtime Environment: # # SIGILL (0x4) at pc=0x00007fb82810e9bc, pid=1, tid=6 # # JRE version: OpenJDK Runtime..
안녕하세요. yeTi입니다. 오늘은 VSCode에서 프로젝트 빌드시 Duplicate Targetframework attribute가 발생하는 문제를 해결해보겠습니다. 작업 환경 VSCode : 1.44.0 dotnet : 3.1.300 .NETFramework : 4.7.1 문제 상황 여러 프로젝트를 사용하는 상황에서 빌드하다보면 global::System.Runtime.Versioning.TargetFrameworkAttribute' 특성이 중복되었습니다. 혹은 Duplicate Targetframework attribute가 발생할 때가 있습니다. 해결 MSBuild: unnecessary rebuilds because of generated AssemblyAttributes.cs - Mic..
안녕하세요. yeTi입니다. 오늘은 Kubernetes 환경에서 PostgreSQL의 HA를 구성해보겠습니다. 작업환경 OS : Linux 4.18.0 Kubernetes : 1.18 Helm : 2.16.7 High Availability PostgreSQL Documentation에 따르면 PostgreSQL은 자체적으로 Master-Slave형태의 replication을 제공합니다. 추가적으로 Standby의 형태를 Cold Standby, Hot Standby를 제공하고 있어 상황에 맞는 구성을 선택할 수 있습니다. 하지만 Master-Slave형태의 구성에는 클라이언트가 접속할 수 있는 End-Point를 단일화 하는 이슈가 있는데, 이를 Pgpool이라는 미들웨어를 사용하여 해결할 수 있습니다..
안녕하세요. yeTi입니다. 오늘은 쿠버네티스를 하다보면 접하게되는 rook-ceph 중 ceph에 대해서 알아보겠습니다. Ceph이란? Ceph은 PC단위를 Ceph Node로 storage를 clustering 해주는 서비스입니다. Intro to Ceph에 따르면 Ceph Storage Cluster를 구성하기 위해서는 Ceph Monitor, Ceph Manager, Ceph OSD(Object Storage Daemon)가 하나이상 있어야 하고 Ceph File System client를 사용하려면 Ceph Metadata Server가 있어야 합니다. 각각의 데몬들은 다음과 같은 역할을 합니다. Monitors: Ceph Monitor (ceph-mon)는 monitor map, manager..
안녕하세요. yeTi입니다. 오늘은 라즈베리파이에 AI를 구동하는 환경을 설정해보려고 합니다. 이를 위해서 Tensorflow를 활용해 모델을 생성하고 Tensorflow Lite를 활용해 모델의 변환 및 라즈베리파이에 AI를 구동했습니다. 작업환경 OS : Linux raspberrypi 4.19 Tensorflow : 2.1.0 Python : 2 Tensorflow Tensorflow를 설치하고 mnist 모델을 생성합니다. Tensorflow - Dockerhub CPU만 사용하는 Tensorflow를 일회성 컨테이너로 사용하고 싶으면 다음과 같이 구동합니다. $ docker run -it --rm tensorflow/tensorflow bash Tensorflow에 Jupyter notebook..
인프런의 스프링 부트 개념과 활용 - 백기선을 수강하면서 내용을 정리하고 간단한 후기를 남깁니다. 스프링 부트 시작하기 Spring Boot Reference Documentation의 Introducing Spring Boot에 따르면 스프링 부트는 스프링기반 독립적인 어플리케이션을 쉽게 만들 수 있도록 지원한다. 스프링이나 3th 파티 라이브러리들을 최소한의 노력으로 사용할 수 있다. 스프링 부트의 목적은 다음과 같다. 스프링 개발자가 빠르고 폭넒게 개발할 수 있도록 제공한다. 기본적으로 제공하는 설정을 빠르게 수정할 수 있다. Embedded 서버나 보안, 메트릭 등과 같은 비기능적 요소들을 폭넒게 제공한다. 더 이상 XML 설정이나 코드 generation을 하지 않는다. 스프링 부트 원리 의존성..
안녕하세요. yeTi입니다. 오늘은 Eclipse에서 JUnit을 구동할때 발생하는 Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.EngineDiscoveryListener를 해결한 상황을 공유하고자 합니다. 저는 다음과 같은 상황에서 정상적으로 JUnit을 사용하고 있었습니다. IDE : STS-4.5.1.RELEASE Java : openjdk-12.0.1 (JavaSE-11) SpringBoot : 2.2.4.RELEASE Gradle : 6.0.1 JUnit : 5.5.2 오류 그런데 STS에서 업데이트 안내가 떠서 업데이트를 하고나니(4.6.0.RELEASE) 다음과 같은 오류가 발생하면서 JUnit이 동작하지 않았..
안녕하세요. yeTi입니다. 오늘은 2020년 카카오의 신입을 대상으로하는 코딩테스트의 문제를 풀어보고자 합니다. 문제 및 해설은 2020 신입 개발자 블라인드 채용 1차 코딩 테스트 문제 해설에 기재되어 있는데 스스로 풀어보고 회고해보는 시간입니다. 7개의 문제 중 4번 문제를 풀어봤습니다. 정확도는 30분정도만에 해결했지만 효율성을 해결하는데 3시간 30분이 걸렸습니다.ㅜ 다른 풀이는1번 문제 풀이, 2번 문제 풀이, 3번 문제 풀이에서 확인하실 수 있습니다. 채점 결과는 다음과 같습니다. 정확성: 25.0 효율성 : 75.0 합계: 100.0 / 100.0 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 친구들로부터 천재 프로그래머로 불리는 "프로도"는 음악을 하는 친..
안녕하세요. yeTi입니다. 오늘은 2020년 카카오의 신입을 대상으로하는 코딩 테스트의 문제를 풀어보고자 합니다. 문제 및 해설은 2020 신입 개발자 블라인드 채용 1차 코딩 테스트 문제 해설에 기재되어 있는데 스스로 풀어보고 회고해보는 시간입니다. 7개의 문제 중 3번 문제를 풀어봤습니다. 어렵게 생각해서 헤매다 7시간이 걸렸습니다.ㅜ 다른 풀이는1번 문제 풀이, 2번 문제 풀이에서 확인하실 수 있습니다. 채점 결과는 다음과 같습니다. 정확성: 100.0 합계: 100.0 / 100.0 문제 설명 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께..