Fast API 구축_1 에 이어서 이번에는 CURD가 가능한(데이터베이스를 사용) 형태로 구성해 보려 합니다! CURD에 필요한 DB 선정은 MongoDB 를 사용하려고 해요, MongoDB를 사용하는 이유는 비동기식 데이터 처리를 지원하고 있기 때문에, Fast API 와 같이 비동기적 동작에 특화된 API 에 적용해 보려해요. Fast API(Python) 에서 MongoDB 에 비동기적으로 사용하기 위한 라이브러리로 "Motor" 을 사용해 보도록 할께요! Motor 설치 명령어 pip install motor MongoDB 설치는 되어 있다고 가정하고 진행 할께요~! MongoDB 를 이전 글에서 생성한 Fast API app에 적용해 보도록 할께요! MongoClient.py from pymo..
Python 에서 구성 가능한 FastAPI 아래의 특징을 가지고 있다고 해서, Python 도 공부해 볼겸 이번 시간에 local 에 구축하여 테스트 해보려 해요. 특징 : 빠른 성능: FastAPI는 Starlette(비동기 웹 프레임워크)에 기반하여 비동기 프로그래밍을 지원함으로써 높은 성능을 제공해요. 이로 인해 매우 빠른 API 개발이 가능해요. 타입 힌트와 자동 문서화: FastAPI는 파이썬의 타입 힌트를 사용하여 매개변수의 타입을 명시할 수 있고, 이를 통해 에디터 지원, 타입 체크, 자동 데이터 검증 및 직렬화가 가능해져요. 또한, 이 타입 힌트를 바탕으로 Swagger UI와 ReDoc을 통한 API 문서가 자동으로 생성돼요. 간편한 데이터 검증: Pydantic 라이브러리를 사용하여 ..
개요 : 스터디 활용 용으로 AWS EC2 에 스프링 부트로 인스턴스 생성하는 실습 진행 1. 인스턴스 시작 (사전에 region 아시아 태영양(서울) 로 지정함) 2. 인스턴스 시작 - 이름 및 태그 설정 - 애플리케이션 및 OS 이미지 설정 (프리 티어 사용 가능 하도록) - 애플리케이션은 ubuntu, 아키텍처 64bit로 설정 3. 인스턴스 유형 프리티어로 설정 4. 키 페어(로그인) - SSH 접속을 위한 키페어 설정 - 한번 다운로드 받으면 재다운 받을 수 없기 때문에 안전한 곳에 저장해 두어야함 5. 네트워크 설정 - EC2 접속 허용하느 ACL 설정 - 보안그룹 별로 설정을 하여 추후 제어 가능하므로, 현재 필자의 IP 로만 접근 가능 하도록 6. 스토리지 구성 - 프리 티어는 30GB의 ..
1. 우아한 형제 https://techblog.woowahan.com/7835/ 회원시스템 이벤트기반 아키텍처 구축하기 | 우아한형제들 기술블로그 {{item.name}} 최초의 배달의민족은 하나의 프로젝트로 만들어졌습니다. 배달의민족의 주문수는 J 커브를 그리는 빠른 속도로 성장했고, 주문수가 커지면서 자연스럽게 트래픽 또한 매우 커졌습니 techblog.woowahan.com 무엇을 이벤트로 발행할 것인가? “회원의 본인인증이 초기화되는 경우 가족계정 서비스에서 탈퇴되어야 한다" 정책 존재 MSA 변경 과정 1. 가족계정 서비스 탈퇴 로직은 회원의 본인인증 해제 로직에 깊게 관여되어 강한 결합을 가지고 있음 이를 회원 시스템, 가족계정 시스템 으로 물리적 분리 2. 비동기 호출을 통한 물리적 분리 ..
32장. TDD 마스터 하기 단계가 얼마나 커야 하나? 각 테스트가 다뤼야 할 범위는 얼마나 넓은가? 리팩토링을 하면서 얼마나 많은 중간 단계를 거쳐야 하는가? 리펙토링 초기에는 작은 단위 부터 작업할 준비가 되어야 하며, 나중에는 단계를 뛰어 넘거나 툴을 사용해서 진행하라. 테스트할 필요가 없는 겂은 무엇인가? "두려움이 지루함으로 변할때까지 테스트를 만들어라" 아래 목록을 테스트 하도록 하자 조건문 반복문 연산자 다형성 좋은 테스트를 갖췄는지의 여부를 어떻게 알 수 있는가? 다음은 설계 문제가 있음을 알려주는 테스트의 속성이다. 긴 셋업 코드 : 하나의 단순한 단언을 수행하기 위해 수백 줄의 객체새성 코드가 필요하다면 뭔가 문제가 있는 거다. 객체가 너무 크다는 뜻이므로 나뉠 필요가 있다. 셋업 중복..
Kafka 를 이용한 MSA 서비스간 통신을 진행해 보도록 하겠다. 1. 구조 2. Order(주문), PG(결제) MSA 프로젝트 생성 Order package com.example.Order; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class OrderController { @Autowired private OrderService orderService; @PostMapp..
오늘은 Kafka 를 로컬에 테스트로 설치하고, Kafka 를 이용한 api 통신 처리를 해도록 하겠다. 1. kafka 설치 homeBrew 설치 https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh wget 설치 $ brew install kafaka 설치 brew install kafka zookeeper 설치 zookeeper 를 이해 하기 위해 Kafka 구조를 알아 보자 brew install zookeeper Kafka 구조 Kafka 크게 Producer, Kafka (Broker), Zookeeper Consumer 로 이루어져 있으며, 상세 내용은 아래와 같다. Producer..
13장. 진짜로 만들기 카드 수수료(0.2) + 계좌 수수료(0.3) = 결제 금액 (복합결제가 가능 50대 50 으로만 결제 가능) 카드 수수료(0.2) + 카드 수수료(0.3) 모든 중복을 제거 하기 전까지는 카드 수수료(0.2) + 카드 수수료(0.3) 테스트를 완료 표시 할 수 없다. 코드는 중복코드는 없지만, 가짜 구현에 있는 아래 코드를 구현해 보자. public Payment reduce(Expression source, String to) { return Payment.card(0.25); } 우선, 두 Payment 의 합은, RepresentPayment(대표지불수단) 이어야 한다. @Test public void testAddReturnsRepresentPayment() { Payme..
- Total
- Today
- Yesterday
- data mining
- Python
- mongodb
- AWS
- Python #FastAPI
- 퀜트백
- 테스트 주도 개발
- TDD
- 웹개발
- nodejs
- SpringBoot
- 분산처리
- 테스트주도개발
- GateWayApi
- 테스트
- kafka
- 웹서비스
- MSA
- MQ
- 켄트 백
- fastapi
- data crawling
- EC2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |