일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- AWS
- 러스트
- Algorithm
- 백준
- Python
- 알고리즘
- Fast API
- BlockChain
- 동시성
- Network
- Ethereum
- 파이썬
- 플랫폼
- fluent python
- docker
- rust
- guru
- function
- 전문가를 위한 파이썬
- 블록체인
- Kubernetes
- dockerfile
- RabbitMQ
- Container
- Refactoring
- 코어 이더리움 프로그래밍
- Thread
- 이더리움
- BAEKJOON
- IMAGE
- Today
- Total
글쓰기 | 방명록 | 관리 |
목록분류 전체보기 (99)
Victoree's Blog
들어가며 이번에는 무슨 글을 쓸까 고민하다, 갑작스레 한 친구가 넷플릭스는 왜 스트리밍 서비스를 제공할때 UDP 대신 TCP를 쓰냐는 질문을 던져주었다. 엥? 그래?? 하고 검색해보니 ㅇㅇ 그러했다. 내가 너무 UDP는 스트리밍! TCP는 메세지! 이런 식으로 TCP는 스트리밍에 불리하다고 알고있어서 아예 사용을 안할거라 생각하고 있었던 것 같다.. 그래서 다시 UDP, TCP에 대해 정리해보려 한다. UDP VS TCP UDP - User Datagram Protocol UDP는 많은 양의 데이터를 소비하는 웹사이트에서 네트워크의 효율성을 증대시키는 것에 컴퓨터 네트워크에서 아주 중요한 역할을 한다. UDP는 TCP에 비해 보안적으로 덜 안전하지만 훨씬 빠르다. UDP는 비연결형 프로토콜로 연결을 설정..
들어가며 책을 좀 읽어야겠다고 다짐한 지 한 두 달 만에, 독서모임에 참여하게 되어 Ron Jeffries의 "The Nature of Software Development"를 읽게 되었다. 개발 서적을 읽고 독서 감상문을 적는 건 처음이라 좀 당황스럽지만..! 단순 요약이 아니라 책을 읽으면서 들었던 나의 생각과 의문점들을 적어보려 한다. 우선 이 책을 처음 마주했을 때는 생각보다 책이 얇고, 글자 크기도 크고 그림도 많아서 가볍게 읽을 수 있을 줄 알았다. 물론 지금 생각해보면 빠르고 가볍게 읽을 수 있을 것 같긴 하지만.. 독후감을 쓰기 위해 중간중간 메모하고 고민하며 읽으려 하니 속도가 늦어졌다. (물론 나의 짧은 집중력 덕분에 속도가 나지 않았을지도 😅) 서론 우선 소프트웨어 개발을 용암에 빗대..
지난 1년간 어떻게 지냈는가? 2022년이 되면서 3년 차 개발자가 되었다. 꿈에 그리던 개발자라는 직업으로 벌써 3년이라는 시간을 보냈다는 것이 믿기지 않고 신기했다. 20대의 절반을 보내면서 ‘2022년이 가장 혼란스러웠던 한 해가 아닐까?’라는 생각을 하곤 한다. 작년 2021년 5월 진행 중이던 사내 프로젝트를 중단하고, 새로운 프로젝트를 위해 Demo 준비를 명 받았다. 그리고 2달 뒤, 새 프로젝트 런칭을 위해 CTO님과 팀장님은 카카오에서 분사하기로 했고, 우리 팀원들도 함께 따라 나갈 것인지 남을지 선택을 해야 했다. 대기업에 들어온 지 얼마나 되었다고 퇴사라니..! 하지만 난 우리 팀이 좋았기에, 그리고 우리 팀 개발자들은 1명을 제외하고 모두 함께 나가기로 결정했기에 나에게 선택권은 없..
디프만은요! 이번 10기부터 옥토퍼스 로켓분들과 함께 디프만을 진행하고 있습니다. 옥토퍼스 로켓분들로부터 팀을 애자일스럽게 운영하는 법을 배우고 매주 돌아오는 팀 회의에서 배웠던 방법을 적용하며 팀을 이끌고 있습니다. 그 중에서 회고란 무엇이고, 회고를 왜 해야하는지, 어떻게 진행하는게 좋은 방식인지 배웠는데, 오늘은 그 내용을 공유해볼까 합니다. 회고란? 사람들이 프로젝트를 하는데에 굉장히 중요한 요소 구성원이 다르기 때문에 각 팀마다 잘할 수 있는 방법은 다르다! 그러므로 각 팀이 잘하는 방법을 찾아가야한다! 애자일 방식 → 너희들만의 방법은 다르니 교과서적인 방법을 따르는 것이 아니라 점점 너희에게 맞는 방식을 찾아가랏! 1. Check in 체크인이란? 먼저 정서적으로 가까워지면서 각자의 방어기재..
1. Middleware란 1) 미들웨어란? 미들웨어란 특정 path에 따른 모든 요청/응답을 처리하기 전에 수행할 함수이다. 앱에 오는 요청을 받고, 작업을 수행하거나 필요한 코드를 수행함 어플리케이션에는 나머지 부분에서 처리할 요청을 전달함 어플리케이션에서 생성한 응답을 가져와, 작업을 수행하거나 필요한 코드를 실행하고 응답을 반환함 미들웨어 예시 import time from fastapi import FastAPI, Request app = FastAPI() @app.middleware("http") async def add_process_time_header(request: Request, call_next): start_time = time.time() response = await call_..
1. 의존성 주입이란? 코드가 작동하고 사용하는데 필요한 종속성을 선언하는 방법이 있음 → 종속성을 코드에 넣는데 필요한 모든 작업을 처리할 수 있음 공통의 코드(중복 코드) 존재 시 데이터베이스 연결 보안, 인증, 등등 [ 간단한 예시 ] from fastapi import Depends, FastAPI app = FastAPI() async def common_parameters(q: Optional[str] = None, skip: int = 0, limit: int = 100): return {"q": q, "skip": skip, "limit": limit} @app.get("/items/") async def read_items(commons: dict = Depends(common_param..
1.Model Dict 1) wrapping/unwrapping @app.post("/user/", response_model=UserOut) async def create_user(user_in: UserIn): user_saved = fake_save_user(user_in) return user_saved user_in 객체는 Pydantic models 임 Pydantic models은 .dict()라는 함수가 있으며, model data를 dict로 리턴함 user_dict = user_in.dict() { 'username': 'john', 'password': 'secret', 'email': 'john.doe@example.com', 'full_name': None, } dict를 unwr..
1. Response Model 1) Response Model Basic 아래와 같은 함수의 response_model 옵션으로 원하는 모델을 설정하면 된다 @app.get() @app.post() @app.put() @app.delete() etc. 출력 데이터를 해당 객체로 변환 데이터 벨리데이션 수행 오픈 API 경로 작업에서 응답에 대한 JSON 스키마 추가 자동 문서화 시스템에 사용됨 출력 데이터를 모델의 데이터로 제한 2) Model In/Out password 같이 리턴되지 말아야하는 값은 UserOut이라는 클래스를 명시적으로 작성하여, 리턴될 때 해당 객체에 정의된 필드만 리턴되도록 구현할 수 있다. class UserIn(BaseModel): username: str password:..
1. Path Parameters 1) 순서 문제 from fastapi import FastAPI app = FastAPI() @app.get("/users/me") async def get_my_info(): return {"user_id": "the current user"} @app.get("/users/{user_id}") async def get_user(user_id: int): return {"user_id": user_id} 위 함수를 정의하는 순서가 중요함 get_user 와 get_my_info 의 순서가 변경되면, user_id의 값을 "me" 라고 생각해 /users/me도 user_id에 연결됨 2) 사전 정의 값 from enum import Enum from fastapi i..
FastAPI는 Python 기반으로 Flask와 같은 개발 편의성에 NodeJS, Go와 같은 성능과 안정성을 갖춘 Web Framework이다. 공식 페이지에서 언급하는 Key Feature는 다음과 같다. Fast / Fast to code / Fewer bugs / Intuitive / Easy / Short / Robust / Standards-based 특징은 다음과 같다. Starlette 프레임워크를 기반으로 한 비동기 API 서버 지원 Pydantic을 사용한 Data validation 지원 API Swagger, ReDoc 등을 사용한 API document 자동 생성 지원 NodeJS, Go와 대등할 정도로 매우 높은 성능 Python3.6+ Type Hinting 지원 Fast A..