일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- IMAGE
- Ethereum
- rust
- Kubernetes
- Container
- Refactoring
- 파이썬
- Algorithm
- 백준
- 플랫폼
- 코어 이더리움 프로그래밍
- 알고리즘
- 러스트
- RabbitMQ
- 이더리움
- dockerfile
- function
- BlockChain
- Network
- 전문가를 위한 파이썬
- fluent python
- 동시성
- BAEKJOON
- Python
- Thread
- docker
- Fast API
- 블록체인
- guru
- AWS
- Today
- Total
글쓰기 | 방명록 | 관리 |
목록전체 글 (99)
Victoree's Blog
들어가며.. 평소 유저향 서비스 개발을 5년째 해오고 있는 나는 API 서버 개발, CICD 배포 관리나 인프라 리소스 관리 등등을 해오곤 했는데, 아직 검색 엔진을 기반으로 한 검색 기능이나 추천 기능을 구현해 볼 기회가 없었다. 이번 프로젝트는 아직 경험해보지 못한 검색/추천 기능들을 직접 해볼 기회가 있고, 이를 대상으로 할 데이터 셋도 크고 사용자 트래픽도 꽤 받아볼 수 있는 기회라고 판단해서 현재 열심히 출시 준비를 하고 있다. 검색과 관련한 기능을 곧 맡아서 개발해야 하기 때문에, 요즘 검색엔진 공부를 하고 있고 이렇게 글을 적게 되었다 🙂 이 글은 말이죠~ Elasticsearch(검색 엔진)가 어떤 역할을 하는 녀석인지 감이 안 오는 사람, Elasticsearch에서 해주는 기능들이 어떤..
7.1 Future Future은 비동기 작업의 실행 객체이다. future 객체는 concurrent.futures 라이브러리나 asyncio에서 future 객체를 이용할 수 있다. 이 두 Future 클래스 객체는 완료되었을 수도, 아닐수도 있는 지연된 계산을 표현하기 위해 사용된다. Future는 앞으로 일어날 일을 나타내고, 이 실행을 스케줄링하는 프레임워크만이 어떤 일이 일어날지 확실히 알 수 있기 때문에 동시성 프레임워크에서만 배타적으로 생성해야한다. 또한 Client에서 Future의 상태를 변경하면 안된다. 실행 여부를 체크하려면 done() 메소드를 호출함으로 알 수 있고, 일반적으로 클라이언트는 Future가 완료되었는지 물어보는게 아니라 callback으로 통지해주는 것을 요청한다...
Django나 FastAPI를 사용할 때, 슬며시 지나갔던 개념들 중에 WSGI와 ASGI에 대해 간단히 정리해보자. 1. WSGI WSGI는 web server gateway interface로 파이썬 스크립트가 웹서버와 통신하기 위해 만들어진 인터페이스로 CGI의 일종이다. CGI는 common gateway interface의 약자로, 서버와 어플리케이션간에 데이터를 주고받는 방식, 규율이라고 생각하면 된다. WSGI 의 예시로, gunicorn이나 uWSGI가 있는데, 이 녀석들은 Nginx나 Tomcat과 같은 웹서버의 http request를 해석(파싱)하여 어플리케이션단에 보내는 역할을 한다. 보통 uWSGI보다 gunicorn이 성능이 더 좋아서 많이 채택된다. Tomcat이나 nginx ..
코루틴을 알아가기 전에, 예에전에 대학시절에 공부했던 프로세스와 스레드와 관련한 내용을 잠시 잠깐 리뷰하고 가자. 6.1 프로세스와 스레드 Process는 실행중인 프로그램을 말하며, 최소 1개의 thread로 구성되고 thread 단위로 스케줄링된다. 프로세스는 create, ready, run(cpu나 메모리같은 자원을 받음), suspension (메모리를 뺏김) ..등등의 다양한 상태값을 가지며 process control block에 해당 정보(pid, state, program counter - 다음으로 실행할 명령어)들이 기록된다. stack, heap, text(code), data 네개의 자원을 할당받는다. 프로세스 같은 경우, 각 자원들을 독립적으로 할당받기 때문에 종료되어도 다른 프로..
사실 이 책을 읽기 시작할 때, 제어 흐름 챕터에 관심있는 부분들이 제일 많아서 기대하고 있었다. 모호했던 내 머리속에 있는 개념들을 잘 정리할 수 있는 기회가 될 것 같아서! 이 챕터부터 몇 가지의 주제들로 파이썬의 비동기 프로그래밍 관련한 내용이 다뤄지지 않을 까 싶다. 5.1 반복형과 반복자 파이썬 2.2에서 yield 가 추가되면서, 이 키워드는 제너레이터를 생성할 수 있게 해주었다. 모든 제너레이터는 반복자다. 파이썬의 collections들은 모두 반복형이며, 다음과 같은 과정으로 iter() 함수가 동작한다. 객체가 __iter__() 메소드를 구현하였는지 확인하고, 이 메서드를 호출해서 반복자를 가져온다. __iter__() 메소드가 구현되어있지 않지만, __getitem__()이 구현되어..
현업에서 근무하면서 레디스를 여러번 사용할 기회가 있었는데, 제대로 공부해볼 시간 없이 그냥 Single Thread니까! 하고 사용만 해왔다. 이것저것 Wrap Up 공부하면서 Redis에 관해 공부한 내용을 정리해본다. 1. Redis는 싱글 스레드 기반의 Key, Value 구조의 비정형 데이터를 저장하고 관리하는 비관계형 DBMS이다. 레디스는 모든 데이터를 메모리에 저장하는 인메모리 데이터베이스이며, 다양한 자료구조를 지원한다. 레디스는 영속성을 보장하기 위해 데이터를 DISK에 저장할 수 있다. 서버가 내려가더라도 DISK에 저장된 데이터를 읽어서 메모리에 로딩을 하는데, 데이터를 DISK에 저장하는 방식은 아래와 같이 두 가지 방식이 있다. RDB(Snapshotting) 방식 순간적으로 메..