일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- wandb
- leetcode
- GCP
- Kubernetes
- autoencoder
- python
- torchserve
- datascience
- 백준
- 네이버AItech
- github
- 완전탐색
- 프로그래머스
- GitHub Action
- 알고리즘
- DeepLearning
- NLP
- NaverAItech
- 코딩테스트
- GIT
- vscode
- FastAPI
- rnn
- PytorchLightning
- Matplotlib
- Kaggle
- pytorch
- pep8
- docker
- FDS
- Today
- Total
목록개발 (38)
Sangmun
1. Intro 넘블에서 진행하는 프로젝트로 FastAPI를 활용하여 딥러닝 모델 추론결과를 return 해주는 서버를 production 기준에 맞추어서 구축해 보는 프로젝트이다. 프로젝트에서 주요하게 요구하는 사항은 * FastAPI를 사용할것 * v2 inference protocol의 기준에 맞춰 구현할 것 * Torchserve, Kserve와 같은 딥러닝 서빙 프레임워크를 사용할 것 등이다. 그 외 코드의 가독성이 좋은지 CI/CD가 구축되어 있는지도 주요한 평가 사항이다. 위 기준을 충족하여 일정 수준 이상이 되면 프로젝트를 진행하시는 분께서 직접 코드 리뷰를 해주신다고 한다. 기왕 하는 거 코드 리뷰까지 받을 수 있도록 열심히 해봐야겠다. 2. torchserve torchserve는 py..
개인적으로나 이전 직장에서나 mongodb를 접할 기회는 많이 있었으나 query나 기타 부가적인 기능에 대해서는 자세하게 알지 못해서 이번 기회에 강의가 싸게 풀려서 한번 결제를 하고 들어보기로 했다. 내가 결제했을 때는 23000원이었는데 지금은 10만 원이 넘어가는 가격이 되었다... 2만 원의 값어치보단 좋은 강의인 것 같은데 10만 원까지는 하지는 않는 것 같다... https://www.udemy.com/course/mongodb-the-complete-developers-guide/ MongoDB - The Complete Developer's Guide 2023 Master MongoDB Development for Web & Mobile Apps. CRUD Operations, Index..
동시성이라는 의미는 동시에 여러 가지 일이 발생하는 것을 의미하며 프로그래밍에서는 여러 작업을 동시에 처리하는 것을 의미한다. python에서는 해당개념을 언급할때 thread, task, multiprocessing이 언급되는데 진정한 의미에서 동시에 작업을 처리하는 것은 multiprocessing만 해당된다. 따라서 본 글에서는 위의 3가지 개념에 대한 차이점과 용도를 정리하고자 한다. 먼저 Threading과 Asyncio는 하나의 CPU 코어에서만 작업이 이루어지만 동시에 여러 작업을 왔다 갔다 하면서 처리하기 때문에 여러 작업을 동시에 수행하는 것처럼 보인다. 하지만 언급했듯이 실제로 작업을 수행하는 CPU 코어는 하나이다. 이러한 것을 multitasking이라고 하는데 Threading과 ..
Producer-consumer Problem(생산자 소비자 문제는) threading이나 프로세스 동기화 이슈와 관련된 computer science에서 자주 볼 수 있는 문제이다. 현재 글에서는 python의 Lock을 이용하여 Producer-comsumer problem을 어떻게 해결하는지 다루고자 한다. 다음과 같은 예제가 있다. 외부로부터 message를 수신하는 작업과 수신한 message를 db에 저장하는 작업이 있다. 이때 외부에서 들어오는 message는 언제 들어올지 모르며 때때로 너무 많은 양이 들어올 때가 있다. 이 message를 수신하는 작업이 Producer이다. 수신한 message를 db에 저장하는 작업 Consumer이며 작업의 속도가 상대적으로 느리다. 따라서 외부에서..
python에서 thread는 동시성을 가지는 코드를 작성을 위해 필요로 한다. 하지만 multiprocessing과는 다르게 실제로 여러 개의 작업을 동시에 하는 것은 아니다. 단지 하나의 코어로 여러 작업을 왔다 갔다 하면서 동시에 처리하는 것처럼 보일뿐이다. Thread는 보통 외부의 이벤트를 오래동안 기다려야(I/O bound) 하는 작업에 적용하면 효과적이다. 하지만 많은 CPU연산을 필요로 하는 작업에는 Thread 보단 multiprocessing이 어울린다. Python Thread의 예시 아래 코드는 main section에서 thread를 하나 생성하여 원하는 함수를 실행하는 코드이다. threading.Thread 함수안에 target으로 실행하고자 하는 함수와 args에 변수를 넘겨..
쿠버네티스의 Label은 쿠버네티스의 리소스를 논리적인 그룹으로 나누기 위해 붙이는 레이블링이다. selector는 Label을 이용하여 조회하려는 리소스만 조회할 수 있게 하는 기능이다. yaml 파일 안에서 Label은 아래와 같이 metadata아래에서 선언을 하며 해당 이미지에는 app=backend, version=v1, env=prod라는 라벨링을 생성하였다. apiVersion: v1 kind: Pod metadata: name: my-pod labels: app: backend version: v1 env: prod spec: containers: - image: my-pod name: my-pod 또한 yaml에서 선언하지 않아도 kubectl 명령어로도 label을 생성하거나 삭제가 가..
쿠버네티스에서 Pod는 노드에서 컨테이너를 실행하기 위한 가장 기본적인 배포 단위이다. 여러개의 노드에서 1개이상의 pod를 배포하는것이 가능하다. 쿠버네티스 Pod의 특징 쿠버네티스를 Pod를 생성할때 노드에서 유일한 IP를 할당 Pod 내부 컨테이너간에 localhost로 통신, 포트 충돌에 유의 Pod 내부에서는 네트워크와 볼륨 자원을 공유 외부에서는 접근이 불가능하고 클러스터 내부에서끼리 통신이 가능하다 (외부 트래픽을 수신하려면 Service, Ingress 오브젝트가 필요) 또한 자가 치유 능력이 없음으로, Pod나 노드에 이상이 발생하면 종료되고 재생성 되지 않는다. (ReplicaSet 오브젝트로 해당 부분 관리 가능) Pod와 컨테이너를 1:1로 기본 설계하고 특별한 사유가 있는 경우 1..
쿠버네티스로 애플리케이션을 배포하고 관리하기 쿠버네티스를 사용하여 사용자의 의도대로 어플리케이션을 배포하는 방법은 쿠버네티스 오브젝트를 정의하여 Master node(API Server)에 명령을 내리는것이다. 이때 명령을 내리는 표현방식은 yaml형식의 파일을 작성하여 REST API로 마스터 노드에 전달을 하면 된다. 쿠버네티스 오브젝트란 "쿠버네티스 클러스터를 이용해 애플리케이션을 배포하고 운영하기 위해 필요한 모든 쿠버네티스 리소르스를 의미하며 쿠버네티스 오브젝트가 될 수 있는 것들은 아래와 같다. Pod : 애플리케이션 Replicaset : 복제 횟수 Node, Namespace : 어디에(서버 등) Deployment : 배포 방식 Service, Endpoints : 트래픽 로드밸린싱 이러..