목록분류 전체보기 (375)
잡동사니
안녕하세요. 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 ..
안녕하세요. yeTi입니다. 오늘은 M-JPEG에 대해서 알아보려고 합니다. 정의 Motion JPEG - Wikipedia는 멀티미디어 환경에서 각 비디오 프레임은 JPEG 이미지로 압축하는 방식입니다. 초기에는 PC 어플리케이션용 멀티미디어 환경을 위해서 개발이 됐지만, 요즘에는 디지털 카메라나, IP 카메라, 웹캠과 같은 디바이스 환경에 사용하고 있습니다. M-JPEG over HTTP M-JPEG를 HTTP를 활용하여 스트리밍할 수 있습니다. 기본적으로 HTTP로 스트리밍을 한다는것은 각각의 이미지를 순서대로 표시하는것을 의미하는데 이미 QuickTime 이나 VLC에서 사용하고 있습니다. 스트리밍의 방식은 간단합니다. 클라이언트에서 GET request를 요청하면, 서버에서는 HTTP를 통하여 ..
안녕하세요. yeTi입니다. 오늘은 Ceph을 활용해서 S3와 같은 Object Storage를 사용할 수 있는 환경을 구성해보겠습니다. Ceph Object Storage Ceph Object Storage는 librgw 와 librados상에서 제공하는 object storage interface입니다. 위의 그림에서와 같이 Ceph Object Storage는 두가지 인터페이스를 제공합니다. S3-compatible: Amazon S3의 RESTful API와 호환되는 인터페이스를 사용하여 객체 스토리지 기능을 제공합니다. Swift-compatible: OpenStack Swift API와 호환되는 인터페이스를 사용하여 객체 스토리지 기능을 제공합니다. Object Storage 설치 Rook D..