일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 생성형
- BFS
- OpenShift
- 도커
- 오픈시프트
- 로깅
- 리트코드
- POD
- LeetCode
- fast api
- SpringBoot
- GPT
- fastapi
- jpa
- 컨설턴트
- Machine Learning
- 컨설팅
- Python
- vuejs
- LLaMa
- Docker
- 쿠버네티스
- kubernetes
- vue.js
- 머신러닝
- k8s
- 메세지큐
- Redis
- 생성형 AI
- 솔루션조사
- Today
- Total
목록토이 프로젝트 (9)
수 많은 우문은 현답을 만든다
오늘은 대규모 요청에 대해서 Timeout이 나지 않도록 하기 위해서 메세지 큐를 적용해보고자 한다.어떤 메세지큐를 써야할까? 카카오 면접을 볼때 어떤 메세지 큐를 왜 선택 했는지에 대한 질문을 받은 기억이 있다. 메세지 큐 비교1. RabbitMQ프로토콜: AMQP(Advanced Message Queuing Protocol)를 지원하며 다양한 프로토콜을 지원할 수 있습니다.특징:고성능, 안정성 및 다양한 메시지 전달 기능(예: 라우팅, 큐의 팬아웃 등).다양한 플러그인을 통해 기능 확장이 가능.장점:멀티 프로토콜 지원.메시지의 영속성을 유지할 수 있는 기능.단점:설정과 관리가 상대적으로 복잡할 수 있음.고성능 애플리케이션의 경우 성능 최적화가 필요할 수 있음.2. Apache Kafka프로토콜: 자체..
오늘은 성능 향상에 대해서 이야기를 해보자. 서론한달만에 Big-data를 다루는 API 중계 솔루션을 개발했다.데이터를 수집하는 멀티쓰레딩 배치가 10개정도 동시에 돌아가고, 수집된 데이터를 API로 제공하는 서비스이다.문제는 API 응답 데이터가 가장 큰 녀석은 한번에 250MB를 보내고 있어서 성능 테스트에 어려움을 겪었다.처음부터 큰 데이터를 다루기 위한 설계를 잘 했어야 하는데, 분산시스템 개발 경험은 있으나 이런 큰 단건 데이터 처리는 경험이 없어서 고생을 했다. 솔루션 기술 스택 :- Fast API, Redis, Mongo DB 성능 요구 사항 :- 400 TPS, 동시접속자 150,000명, 속도 건당 1초 이내 본론우선 단건 데이터가 적은 API들은 성능 요구 사항을 만족했다. 그러나..
개요오늘은 API 개발을 진행해보자. 1장에서 JWT 발급을 하도록 했으니 우리는 Access_Token으로 API에 접근할 수 있도록 젭근제어를 해보자. API 목록 API는 위와 같이 3개로 나눠 구성했다.1. Administrator : 사용자별 구분이 되도록 client를 생성하는 메소드 create_client 와 토큰을 발급하는 /token 메소드2. User : 사용자가 access_token 만료시 refresh_token 으로 토큰 재발급을 요청할 수 있는 /token/refresh 메소드3. Collector : Mockup API로 접근제어를 해 볼 테스트 메소드 Token 종류1. Access TokenAccess Token(엑세스 토큰)은 클라이언트가 API 요청을 할 때 서버에 ..
개요이번엔 Fast API 서비스와 Database를 연동하는 작업을 해보겠다. 데이터베이스 설치개발하려는 서비스 요건상 JSON 포맷을 써야하는 데이터가 많기 때문에 MongoDB를 설치하자. 1. 다운로드Download MongoDB Community Server | MongoDB Try MongoDB Community EditionTry MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project!www.mongodb.com위 링크에 접속해서 .msi 파일을 받는다. 2. 환경 설정특별한 변..
개요Python과 Fast API를 사용해서 json 형태의 API를 제공하는 서비스를 개발하려고 한다.오늘은 API 요청의 가장 기본이 되는 JWT(Json Web Token) 방식을 구현해보고 자세한 과정들을 기록해 공유하고자 한다. 환경 구성우선 아래 라이브러리들을 설치해준다.pip install fastapipip install uvicornpip install pyjwt1. fastapi : python 3.6 이상에서 동작하는 경량, 고성능 백엔드 프레임워크2. uvicorn : FastAPI를 실행하기 위한 ASGI 서버 * ASGI(Asynchronous Server Gateway Interface) : 비동기 웹서버 * WSGI(Web Server Gateway Interface) :..
안녕하세요, 조영호입니다. Vue.js는 컴포넌트 기반의 프레임워크로 알려져 있습니다. Vue.js는 사용자 인터페이스를 작고 독립적인 조각으로 나누는 데 중점을 둔 컴포넌트 지향 아키텍처를 채택하고 있습니다. Vue.js에서 컴포넌트는 재사용 가능한 독립적인 모듈로써, 각각의 컴포넌트는 자체의 상태 및 뷰 로직을 갖고 있습니다. 우리는 이러한 컴포넌트들을 조합하여 전체 어플리케이션을 구성하게 됩니다. 각 컴포넌트는 자체 스타일, 템플릿 및 로직을 정의하며, 필요에 따라 부모 컴포넌트로부터 데이터를 받아 사용할 수 있습니다. 또한, 컴포넌트 기반의 아키텍처는 코드의 재사용성과 유지보수성을 높이는 데 도움이 되며, 대규모 어플리케이션의 개발을 용이하게 합니다. Vue 프로젝트의 실행 순서 설명 우리가 바로..
안녕하세요, 조영호입니다. 이번엔 요즘에 유행하는 python 3.6 이상 버전에서 사용가능한 백엔드 프레임워크인 fast api를 사용해보도록 하겠습니다. fast api는 Uvicorn ASGI Server 를 사용한다는 특징이 있다. Uvicorn lightweight(매우 가벼운) 비동기 웹 서버 fastapi framework만으로는 웹 개발을 할 수 없고, ASGI와 호환되는 웹 서버가 필요하다. ASGI Asynchronous Server Gateway Interface의 약자 비동기 web server를 의미함 - async / await 구문을 사용 자 이제 우리는, uvicorn 이라는 HTTP Request를 처리해줄 경량 비동기 웹서버를 설치하고 그 위에 fast api를 돌려보겠다..
어떤 웹 서비스든지 화면이 존재하며 우리는 그것을 Front-end라고 부릅니다. 오늘은 Front-end 프레임워크 중 하나인 Vue.js로 화면을 구성하는 방법을 알아보고자 합니다. Vue란? JavaScript 프레임워크로 이번 포스팅에서는 Vue 3를 다루겠습니다. Vue 컴포넌트는 옵션(Options) API와 컴포지션(Composition) API 두 가지 스타일로 작성할 수 있는데 옵션 스타일은 익숙하므로 Vue 3부터 나타난 컴포지션 방식으로 작성해보도록 하겠습니다. Node.js 설치 https://nodejs.org/en/download/ 설치 후 커맨드창을 열고 npm -v 로 설치를 확인합니다. Vue 설치 npm init vue@latest 플러그인 설치 저는 위에서 ESLint,..
안녕하세요, 조영호 입니다. 간단한 쇼핑몰을 제작해보면서 기초를 다지고 스스로 놓쳤던 부분들을 챙길 수 있을 것이라는 기대로 글을 시작합니다. 이번 프로젝트에서는 다양한 기술들을 다뤄볼 예정입니다. Springboot, JPA, Mysql, Swagger, Spring Security, JWT Token, Redis, Spring Batch, Rabbit MQ, Docker, Exception Handler, React.js or Vue.js 등의 내용을 다루면서 쇼핑몰을 제작하도록 하겠습니다. 오늘은 IntelliJ IDE를 사용해 간단한 Springboot Web Application을 제작해보겠습니다. ORM은 JPA를 사용할 계획이고 API 문서화는 Swagger를 사용해보겠습니다. 1. 인텔리제..