목록IT (224)
잡동사니
안녕하세요. 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 등..
안녕하세요. yeTi입니다. 오늘은 Pgpool을 활용하여 PostgreSQL을 사용하는 중에 지속적으로 pgpool이 죽는 현상을 해결한 부분을 공유하고자 합니다. 작업 환경 Pgpool : 4.1.1 PostgreSQL : PostgreSQL 11.7 on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit 구성 서버 구성은 pgpool과 postgresql이 1:1로 설정되어 있습니다. 현상 pgpool pod이 지속적으로 재시작하는 현상이 있었지만 pod로그나 이벤트로그상으로는 특이점을 찾을 수 없는 상황이었습니다. 원인 분석 pgpool의 session을 확인하는 도중 클라이언트 커넥션이 다 차면서 pgpool이 재시작하는 것..
안녕하세요. yeTi입니다. 오늘은 Pgpool에서 현재 접속한 커넥션수를 확인해보려고 합니다. 작업환경 Pgpool : 4.1.1 shell에서 pgpool 상태확인하기 psql 접근시 비밀번호를 입력하는 단계를 생략하기 위해 환경변수에 pgpool의 비밀번호를 설정합니다. /$ export PGPASSWORD=[계정 비밀번호] psql을 활용하여 pgpool에 쿼리를 실행에 shell로 반환하여 정보를 받습니다. show pool_processes를 사용하면 pgpool에 설정되어있는 클라이언트 수 및 현재 접속하고 있는 클라이언트를 확인할 수 있습니다. /$ psql -h localhost -p 5432 -U postgres -d postgres -c "show pool_processes;" poo..
안녕하세요. yeTi입니다. 오늘은 PostgreSQL을 접속하기에 유용한 클라이언트 툴인 pgAdmin을 활용하여 데이터베이스를 백업 및 복구를 해보려고합니다. 작업환경 pgAdmin : 4.21 PostgreSQL : PostgreSQL 11.7 on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit 백업 백업을 진행할 DB에는 테이블 하나와 한개의 데이터를 추가했습니다. 백업메뉴를 선택합니다. 저장할 파일명과 인코딩 설정을 합니다. 백업에 대한 설정을 합니다. 백업이 완료되면 다음과같이 안내가 나옵니다. 복구 복구할 데이터베이스를 생성합니다. 복구메뉴를 선택합니다. 백업한 파일을 선택합니다. 복구를 진행하면 다음과같이 안내가 나..
안녕하세요. yeTi입니다. 오늘은 Python을 사용하면서 겪은 궁금증을 해소하는 시간을 가져볼까 합니다. 궁금 키워드 async await asyncio Coroutine Task Future Asyncio asyncio는 network, web-servers, database connection libraries, distributed task queue 등 을 고성능으로 사용할 수 있도록 도와주는 asynchronous framework입니다. 이를 위해 다양한 High-level API들을 제공하는데 그 중 Coroutines and Tasks - Python Documentation에 코루틴 및 태스크에 대한 설명을 제공하고 있습니다. Coroutines Coroutine이란 무엇일까요? Co..
안녕하세요. yeTi입니다. 오늘은 VSCode를 활용하면서 발생하는 ClassNotFoundException을 해결해보려고 합니다. 작업환경 VSCode : 1.48.2 현상 JPA환경에서 Querydsl을 사용하여 개발을 하고 있던 와중에 Debug모드로 구동하니 QClass를 사용하는 과정에서 java.lang.ClassNotFoundException이 발생하였습니다. 2020-09-08 13:39:18.658 ERROR 25152 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception..
안녕하세요. yeTi입니다. 오늘은 Python 모듈을 패키징하여 The Python Package Index (PyPI)에 공유해보려고 합니다. Packaging Python Projects를 참고하여 진행했습니다. 예제 프로젝트 생성 practice-python-packaging - GitHub과 같이 샘플 프로젝트를 생성합니다. Generating distribution archives 패키징에 사용할 setuptools과 wheel을 업그레이드합니다. > python3 -m pip install --user --upgrade setuptools wheel distribution archives를 생성합니다. > python3 setup.py sdist bdist_wheel ... creating ..