목록분류 전체보기 (373)
잡동사니
안녕하세요. yeTi입니다. 오늘은 자바에서 람다식을 사용하는 방법에 대해 공유하고자 합니다. 제가 처음 Oracle Java Documentation내 Lambda Expressions을 읽은 이유는 단순히 자바에서 사용하는 람다의 표현식에 대해서 알고자 함이었습니다. 하지만 documentation 에서 제공하는 시나리오를 읽으면서 단순히 function 을 파라메터로 전달하는 형식에 그치는 것이 아니라 function 을 파라메터로 전달하는 형식에 의해 얻을 수 있는 인터페이스의 변화나 확장성에 대해 인지할 수 있는 시간이었기 때문에 해당 내용을 공유하게 됐습니다. 개요 자바에서는 interface (하나의 추상 함수를 가지는)와 anonymous classes (익명 클래스)를 활용하여 로직을 함..
안녕하세요. yeTi입니다. 오늘은 Java를 공부하는 범위에 대해 알아보려고 합니다. 개요 자바를 공부하는 방법에는 다양한 방법이 있고, 공부하는 방법에 따라 강조하는 부분이 다를 수 있습니다. 따라서 어느정도 공부를 해야 자바를 잘 안다고 할 수 있을지에 대한 개인적인 생각을 공유하고자 합니다. 우리가 접하는 대부분의 제품에는 설명서가 있습니다. 마찬가지로, 프로그래밍 언어나 오픈소스에도 Document라는 형태로 개념이나 spec에 대해 설명을 하고 있습니다. 따라서 자바를 공부함에 있어서 해당 진영에서 제공하는 document를 기반으로 지식을 얻는다는 것은 의미가 있다고 생각합니다. 이에 오라클에서 제공하는 학습 가이드를 기반으로 Java를 공부하는 범위를 보고자 합니다. Guide for be..
안녕하세요. yeTi입니다. 오늘은 주택도시기금에서 제공하는 신혼부부전용 전세자금대출을 7일만에 승인받은 후기를 공유하려고 합니다. 심사 일정 결과적으로 심사받은 절차는 다음 일정대로 진행됐습니다. 2020.06.10 대출신청 2020.06.11 자격심사 완료 2020.06.16 자산심사 완료 2020.06.16 대출승인 완료 2020.06.19 대출실행 2020.07.10 사후 자산심사 결과 적격 판정 보시면 아시겠지만, 대출신청 후 대출승인까지 6일이 걸렸습니다. 과정 대출받으러 여러 은행을 돌아다녔습니다. 총 4군데 은행을 돌아다녔는데요. 대부분 대출승인받으려면 여유있게 한달정도의 기간은 있어야한다. 다음주에 실행해야하는 촉박한 일정에는 은행쪽에서 대출승인을 보장할 수 없어 신청을 받을 수 없다.는..
안녕하세요. yeTi입니다. 오늘은 우분투 사용중에 갑자기 네트워크가 안되는 현상이 발생해서 이를 해결해보려고 합니다. 증상 우분투에서 무선 마우스를 연결하니 갑자기 UI가 다운되면서, 재부팅하니 네트워크가 잡히지 않는 이슈가 발생했습니다. 환경 확인 OS의 버전을 확인합니다. $ lsb_release -a | grep Desc Ubuntu 18.04.5 LTS커널의 버전을 확인합니다. $ uname -r 5.4.0-65-generic랜카드 인식여부 확인 랜카드의 인식여부를 확인합니다. $ lspci | grep -i Ethernet Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8125랜카드의 네트워트 상태를 확인합니다. $ lshw -cla..
안녕하세요. yeTi입니다. 오늘은 임베디드환경(tx2)기반에서 MQTT 브로커를 설치하고 메세징을 해보려고 합니다. MQTT brocker 설치 MQTT란, IoT용 message broker 선택하기를 기반으로 mosquitto를 mqtt broker로 진행했습니다. 도커 이미지를 기반으로 mosquitto broker를 구동합니다. $ docker run -it -p 1883:1883 -p 9001:9001 eclipse-mosquitto Subscriber 구현 먼저 mqtt를 활용하기 위해서 paho 모듈을 설치합니다. $ pip install paho-mqtt==1.5.1 다음과 같이 Subscriber 클래스를 작성합니다. import paho.mqtt.client as mqtt class ..
안녕하세요. yeTi입니다. 오늘은 graceful shutdown을 위한 docker container를 종료시 시그널을 받아 처리하는 방안에 대해서 알아보겠습니다. docker stop docker stop명령어는 컨테이너내의 메인 프로세스에 SIGTERM과 SIGKILL을 순차적으로 호출합니다. 신호의 전달은 graceful shutdown을 위해 중요합니다. 하지만, 만일 서비스 프로세스가 메인 프로세스에서 구동할 수 없는 상황이라면 해당 프로세스는 종료 신호를 전달받지 못하여 서비스 종료를 위한 후처리가 불가능합니다. 이에 shell script를 메인 프로세스로 두고 python 서비스에 종료 신호를 전달하는 방안을 알아보고자 합니다. CMD의 3가지 형식 docker에서 컨테이너를 실행하기 ..
안녕하세요. yeTi입니다. 오늘은 MQTT에 대해서 알아보고 사용할 수 있는 broker를 알아보려고 합니다. MQTT란 MQTT는 사물인터넷(IoT)을위한 프로토콜로 OASIS(Organization for the Advancement of Structured Information Standards)에서 제시한 표준 메시징 프로토콜입니다. MQTT의 특징 MQTT의 특징은 다음과 같습니다. Lightweight and Efficient 디바이스의 리소스를 적게 사용하도록 설계되어 있다. 대표적으로 메시지 헤더는 작게 설계되어 오버헤드가 적게 발생한다는 것을 예로 들 수 있다. Bi-directional Communications Device에서 cloud로만 송신할 수 있는 단방향 통신이 아니라 (e..
안녕하세요. yeTi입니다. 오늘은 Triton Inference Server에서 추론을 하기위한 구조를 분석해보려고 합니다. 분석 환경 Triton Inference Server : Release 2.6.0 corresponding to NGC container 20.12 Concurrent Model Execution Triton은 다양한 모델을 각각의 인스턴스로 수행하여 병렬로 처리할 수 있고, 하나의 모델에 대해서 다수의 인스턴스를 활용하여 병렬처리할 수 있도록 제공합니다. 각 경우를 그림과 함께 살표보겠습니다. 2개의 모델을 각각 요청한경우 병렬로 처리가 됩니다. 모델당 인스턴스의 기본 설정값이 1개인데, 이 때 model1에 2개의 요청이 들어오면 순차적으로 처리됩니다. model1의 인스턴스..
안녕하세요. yeTi입니다. 오늘은 AI모델을 저장하고 버전관리를 할 수 있는 저장소로 사용할 수 있는 서비스들에 대해서 알아보겠습니다. Nexus Repository OSS 개인 레포지토리로 많이 사용하고 있는 저장소입니다. Sonatype이 가지고 있는 제품으로 free버전과 pro버전을 제공합니다. Free버전은 github을 운영하고 있고 라이센스는 Eclipse Public License - v 1.0으로 상업적 사용이 가능합니다. Pro버전간의 차이는 운영시 고려되어야하는 가용성, storage, 보안, 인증, 모니터링 등의 기능을 추가적으로 제공한다는 것입니다. 지원하는 저장소의 형식은 Bower, Docker, Maven, npm, NuGet, Go, PyPI, RubyGems, YUM, ..
안녕하세요. yeTi입니다. 오늘은 Spring Framework에 대해 알아보겠습니다. Spring Framework Overview에 따르면 스프링은 자바 엔터프라이즈 어플리케이션을 가장 쉽게 만들 수 있도록 해준다고 합니다. 즉, 많은 사용자와 많은 데이터, 많은 비즈니스 로직을 처리하는 기업용 어플리케이션을 개발함에 있어서 보다 쉽게 개발할 수 있도록 제공해다는 것입니다. 이를 위해서 스프링 프레임워크는 Core Technologies, Testing, Data Access, Web frameworks(Web on Servlet, Web on Reactive), Integration, Language Support를 제공합니다. 스프링 프레임워크하면 가장 많이들 언급하는 의존성 주입이나 AOP 등..