Coding343 Python Anti Pattern - Not using dict keys when formatting strings Not using dict keys when formatting strings딕셔너리의 값을 문자열로 사용할 때, 명시적으로 모든 값들을 적어줄 필요가 없다.예를 들어 아래와 같은 딕셔너리가 존재한다고 가정한다.person = { 'first': 'Tobin', 'age': 20 } Anti-patternperson = { 'first': 'Tobin', 'age':20 } print('{0} is {1} years old'.format( person['first'], person['age']) ) # Output: Tobin is 20 years old person = { 'first': 'Tobin', 'last': 'Brown', 'age':20 } # Bad: we have to change th.. 2019. 1. 28. Python Anti Pattern - Using type() to compare types Using type() to compare typesisinstance 함수는 상속도 지원하기 때문에 타입을 검사할 때 최적화된 함수이다.따라서 타입 검사가 필요할때는 isinstance()를 사용해야한다. Anti-patternimport types class Rectangle(object): def __init__(self, width, height): self.width = width self.height = height r = Rectangle(3, 4) # bad if type(r) is types.ListType: print("object r is a list")위 예제에서는 if문을 통해 Rectangle 클래스가 ListType 타입인지 검사한다.이러한 스타일은 권장되는 패턴이라고 볼 수 .. 2019. 1. 28. Python Anti Pattern - Asking for permission instead of forgiveness Asking for permission instead of forgiveness파이썬 커뮤니티에서는 EAFP(easier to ask for forgiveness than permission) 코딩 스타일을 사용한다.이 코딩 스타일은 필요한 변수, 파일등이 존재한다고 가정하는 것이다.이외의 문제가 발생한다면 예외를 통해 처리한다.위와 같은 형태로 작업한다면 다수의 try~except문이 포함된 깔끔하고 일관적인 코딩 스타일을 유지할 수 있다. Anti-patternimport os # violates EAFP coding style if os.path.exists("file.txt"): os.unlink("file.txt")위 코드를 먼저 살펴본다.if문에서 파일에 접근하기전에 먼저 파일이 존재하는지 검.. 2019. 1. 28. Python Anti Pattern - Returning more than one variable type from function call Returning more than one variable type from function call만약 함수가 list, tuple, dictionary등의 타입을 리턴한다면 함수를 호출하는 쪽에서는 항상 리턴값의 타입을 검사해야한다.이것은 코드의 복잡성을 증가시키는 일이다.따라서 호출하는 쪽에서 타입을 검사하는 방법보다는 함수에서 값을 리턴할 때 raise를 통해 오류를 발생시켜주는 것이 낫다. Anti-patterndef get_secret_code(password): if password != "bicycle": return None else: return "42" secret_code = get_secret_code("unicycle") if secret_code is None: print("W.. 2019. 1. 28. AWS Lambda + API Gateway로 API 만드는 방법 AWS Lambda란 Amazon Web Service에서 제공하는 서버리스(Serverless) 기능이다.한마디로 서버가 없고 코드만 존재한다는 뜻이다.예를 들어서 크롤링을 진행하여 데이터베이스에 적재하는 코드의 경우 24시간 떠있을 필요가 없이Crontab등을 통해 주기적으로 실행하면 된다.이러한 경우 EC2를 사용하는것은 리소스 낭비이므로 lambda를 사용하는것이 적절하다.또한 100만건의 요청까지는 무료로 제공되므로 EC2보다 비용면에서도 이득이라고 볼 수 있다.먼저 AWS Lambda 콘솔로 - 함수로 들어간다. 새로 작성을 선택하고 이름과 런타임을 지정한다.나는 파이썬으로 작업할 예정이므로 Python 3.6을 선택했다. 또한 역할을 선택할 수 있는데, RDS와 통신해야하므로 RDS에 접근할.. 2019. 1. 21. ECS Multiple Instance구동 및 ALB적용 방법 목적ECS를 사용하여 서비스를 구성할 때 여러개의 인스턴스를 구동하고 해당 인스턴스를 ALB를 통해 로드밸런싱 해주는 방법에 대해 기술한다.전제 조건구현에서 사용할 이미지들은 모두 ECR에 푸시해놓은 상태라고 가정한다.본문에서는 docker-compose를 통해 이미지를 빌드하고 푸시하는 과정에 대해서는 생략한다.사전 지식ALB는 설정해놓은 로드밸런싱 그룹에 인스턴스가 포함되면 자동으로 해당 인스턴스도 라우팅 목록에 포함시킨다.따라서 우리는 ECS 서비스를 생성할 때 미리 생성해놓은 로드밸런서와 로드밸런싱 그룹을 설정해줘야 한다.추가적으로 배포할 때 어떠한 형태로 진행하는지 미리 숙지할 필요가 있다.2가지의 방법이 존재할 것이다. 방법 1기존에 A와 B라는 인스턴스가 돌고 있다고 가정한다.C, D인스턴스.. 2019. 1. 15. 이전 1 ··· 18 19 20 21 22 23 24 ··· 58 다음