본문 바로가기

Study/신입 자라기

[Study] 신입 자라기 - 52

신입 자라기 52일 차, 금요일

Task Logging

시간 Task
6 : 50 기상
7 : 20 ~ 8 : 15 출근 시간
8 : 15 ~ 9 : 10 헬스
9 : 10 ~ 9 : 30 샤워
9 : 30 ~ 9  50 출근
9 : 50 ~ 10 : 00 1. 짐정리
2. 간식
10 : 00 ~ 11 : 30 1. 에러 원인 파악
11 : 30 ~ 12 : 30 점심 시간
12 : 30 ~18 : 00 1. 에러 원인 발견 (이틀 걸림 ㅜㅜ)
2. 코드 개선(convention, 복잡도 등등에 기반)
18 : 00 ~ 23 : 00 1. 칼퇴근
2. 휴식
23 : 00 ~ 24 : 00 1. 블로그 포스팅

협업을 위한 파이썬 라이브러리

typing

  • 타이핑 모듈로 타입 표시
  • 파이썬 3.5 버전에서 추가
  • 타입 힌트(type hint)를 언어 차원에서 지원
List, Dict, Tuple, Set 자료 구조 annotation
from typing import List, Dict, Tuple,Set

# List
numbers: List[int] = [1,2]

# Dict
names: Dict[str, int] = {"steve" : 1 , "maria" : 2}

# Tuple
person : Tuple[int, str, bool] = (1, 'steve', True)

# Set
set_: Set[str] = {'a', 'b', 'c'}
그 외 자주 쓸만한 것

Union

  • 여러 개의 타입이 허용될 수 있는 상황에서 사용
  • 순서 상관없음
# arg 가 int형 일 수도, str형 일 수도 있음
from typing import Union
def foo(arg: Union[int, str] = None) -> None:

Optional

  • None이 허용되는 매개변수 사용 시 사용
  • Union [int, None]과 Optional [int]는 동일함
  • 하지만 위 같은 경우 Union보다 Optional사용 할 것
# arg가 None일 수도, int형 일 수도 있음
def foo(arg: Optional[int] = None) -> None:

출근길에 보는 CS

강대명님의 발표자료, '신입 사원을 위한 웹서비스 확장 전략'을 나눠서 읽을 예정입니다.

https://www.slideshare.net/charsyam2/webservice-scaling-for-newbie

 

webservice scaling for newbie

elastic, resiliency, sharding, service discovery

www.slideshare.net

Sung Yun Byeon님의 정리를 참고했습니다.

https://zzsza.github.io/development/2018/07/28/webservice-scaling/

 

신입사원을 위한 웹서비스 확장 전략

강대명님의 신입사원을 위한 웹서비스 확장 전략 발표 자료를 보며 정리 및 모르는 내용을 작성한 글입니다

zzsza.github.io

Stateless protocol
  • 무상태 프로토콜
  • 서버에 세션 상태가 없는 것
  • 어떠한 이전 요청과도 무관한 각각의 요청을 독립적인 트랜잭션으로 취급하는 통신 프로토콜
  • 독립적인 쌍의 요청과 응답을 이룸. 즉, 항상 클라이언트로부터 독립적인 요청(request)에 의해 서비스 제공
  • 확장성이 높아서 대량의 트래픽 발생 시에도 대처가 수월하지만, 리소스를 그만큼 소비해야 함
  • 추가 삭제가 간단함
  • 상태를 저장하지 않는다는 점이 틀린 상태 정보를 사용할 가능성을 제거하기 때문에 서버가 안정적으로 동작
Statful protocol
  • 상태 프로토콜
  • 서버에 세션 상태가 있음, 이 상태를 가지고 유용하게 사용함
  • 과거의 데이터 송수신 및 처리 결과로 인한 서버의 현재 상태에 따라서 클라이언트로부터 요구가 달라짐
  • 기능상 강력하고 편리