Programming
-
비동기 프로그래밍과 동기 프로그래밍의 차이Programming/Python 2023. 12. 22. 09:58
비동기 프로그래밍의 핵심 목적과 동기 프로그래밍과의 차이점을 이해하려면, 먼저 두 접근 방식의 기본적인 작동 방식을 이해해야 합니다. 비동기 프로그래밍의 목적 효율성 향상: 비동기 프로그래밍은 프로그램이 I/O 작업(예: 네트워크 요청, 디스크 읽기/쓰기)을 기다리는 동안 다른 작업을 수행할 수 있도록 함으로써 리소스 활용도를 극대화합니다. 동시성 증가: 여러 작업이 동시에 수행될 수 있어, 특히 웹 서버와 같은 멀티 유저 환경에서 성능이 크게 향상됩니다. 응답성 개선: 사용자 인터페이스와 같이 실시간으로 반응하는 애플리케이션에서 사용자 경험을 개선합니다. 동기 프로그래밍과의 차이점 동기 프로그래밍: 블로킹 동작: 동기 프로그래밍에서, 한 작업(함수 호출 등)이 완료될 때까지 프로그램의 실행은 그 작업에..
-
How to Optimize FastAPI for ML Model ServingProgramming/Python 2023. 10. 4. 10:14
https://luis-sena.medium.com/how-to-optimize-fastapi-for-ml-model-serving-6f75fb9e040d How to Optimize FastAPI for ML Model Serving If you do I/O alongside ML model serving, this will definitely make your FastAPI service faster. luis-sena.medium.com
-
Docker Image 경량화 방법 - 1부Programming/Docker 2023. 8. 8. 12:41
제가 사용하는 방식은 Develop Image의 용량이 너무 커서, 줄이는 방법을 고안하면서 터득했던 방법론을 공유하고자 합니다. 실제 개발에 사용하고 있고, 많은 테스트를 진행한 결과입니다. 3부작으로 나누었습니다. 1부 일반적인 패키지 관리 방법 2부 멀티스테이징 빌드 3부 ENTRYPOINT를 활용한 마지막 경량화 대부분 Deploy 이미지를 구축하는 방법에 대해서는 많은 레퍼런스가 있기 때문에 그런 부분부터 보고 오시면 조금 더 이해가 쉬울 수 있습니다. 일단 Docker Image는 다수의 이미지 레이어의 결합체입니다. 예를들어서, 이런 이미지와 FROM ubuntu:20.04 RUN apt-get update --yes RUN apt-get install --yes --no-install-re..
-
Web Server와 WAS(Web Application Server)의 차이Programming 2023. 7. 18. 21:23
Web server와 WAS(Web Application Server)는 웹 애플리케이션을 실행하기 위한 서버 소프트웨어입니다. 다음은 각각의 순기능과 주요 차이점을 깔끔하게 정리한 후, 간단한 예시를 제시합니다: Web server: 순기능: 클라이언트로부터 HTTP 요청을 받아 정적인 웹 페이지를 제공합니다. HTML, CSS, JavaScript, 이미지 등 정적인 콘텐츠를 제공합니다. HTTP 프로토콜 기반으로 동작하며, 클라이언트와의 요청 및 응답을 처리합니다. WAS와의 차이점: 주로 정적인 콘텐츠 제공에 특화되어 있습니다. 대표적인 웹 서버: Apache HTTP Server, Nginx 예시: 클라이언트로부터 /index.html 요청을 받으면 서버에서 해당 정적 파일을 반환하여 클라이언트..
-
ChatGPT를 활용한 PDF 요약봇 만들기Programming/Python 2023. 7. 14. 15:58
전체 소스: https://github.com/Joonyeong97/langchain-summarize-bot GitHub - Joonyeong97/langchain-summarize-bot: PDF Summarize Bot PDF Summarize Bot. Contribute to Joonyeong97/langchain-summarize-bot development by creating an account on GitHub. github.com langchain과 결합하여, PDF를 한글로 요약하는 봇 입니다. ChatGPT가 나오고 나서, 만들었던 토이 프로젝트였는데, 공개를 까먹고 있다가 지금 공개합니다. 요약이 되면서 텍스트가 나오게끔 만들었습니다. 요약이 된 텍스트는 텍스트가 저장됩니다. 로컬에..
-
Python 3.11.4 Base Docker Image 만들기Programming/Python 2023. 7. 14. 15:27
https://betterdatascience.com/python-310-vs-python-311/ Python is About to Become 64% Faster - Python 3.10 vs. Python 3.11 Benchmark | Better Data Science Let’s compare Python 3.10 vs. Python 3.11 in an extensive benchmark test. Spoiler alert: Python 3.11 is up to 64% faster! betterdatascience.com 변경사항 참고 Python 3.11로 업데이트 되면서 성능 개선이 있다고 하였습니다. 공식 이미지가 있지만, 공식 이미지를 기반으로 만들다보니 에러가 많이 발생해서, Python..
-
PostgreSQL Tuning 종류Programming/PostgreSQL 2023. 3. 9. 10:05
인덱싱(Indexing) 인덱싱은 데이터베이스의 성능을 최적화하기 위한 가장 기본적인 방법 중 하나입니다. 인덱스는 테이블의 열(column)에 대한 정렬된 데이터 구조입니다. 인덱스를 사용하면 데이터베이스에서 원하는 데이터를 빠르게 검색할 수 있습니다. 특히 WHERE, JOIN, ORDER BY, GROUP BY 등의 작업에서 인덱스를 사용하면 실행 속도를 향상시킬 수 있습니다. 쿼리 최적화(Query Optimization) 쿼리 최적화는 SQL 쿼리를 더 빠르게 실행하기 위한 방법입니다. 이 방법은 쿼리의 실행 계획을 확인하여 최적의 실행 계획을 찾는 것입니다. 쿼리 실행 계획은 데이터베이스 엔진이 쿼리를 실행하기 전에 만들어지며, 이를 확인하여 쿼리 실행 속도를 빠르게 만들 수 있습니다. 정규화..
-
Jenkins Github 로컬에서 Webhook 사용하기Programming/Jenkins 2022. 7. 31. 19:42
일단 Github에서 Webhook을 사용하려면 Jenkins에 DNS 설정이 되어있어서 외부에서도 연결이 가능해야 합니다. 하지만 우리는 로컬에서 사용해볼 것이기 때문에 ngrok를 사용해서 진행해보겠습니다. https://ngrok.com/ ngrok - Online in One Line Zero Trust Add SSO, Mutual TLS, IP Policy, and webhook signature verification. ngrok.com 간단하게 회원가입 후 jenkins port를 맞춰서 열어주면 됩니다. 사용법은 너무 간단해서 스킵하겠습니다. 최종적으로 본인의 포워딩된 주소를 가져오면 됩니다. 본인이 배포할 github 프로젝트에 들어간 뒤에 Settings를 클릭해줍니다. Webhooks..