전체 글
[Lambda] AWS Lambda Dependency
AWS Lambda Dependency Lambda 함수를 생성하면 해당 작업을 수행하기 위해 "Dependency"들(추가 코드 라이브러리)에 의존하는 경우가 있다. 예를 들어 Lambda가 데이터 처리를 해야 한다면 "pandas" 라이브러리를 dependency로 포함할 수 있다. Dependency 관리가 중요한 이유 1. 배포 패키지 크기 - Lambda 배포 패키지(코드 및 모든 dependency를 포함)의 크기는 함수의 시작 시간에 직접적인 영향을 미친다. - 패키지가 클수록 로드하고 초기화하는 데 시간이 더 오래 걸린다. 특히 콜드 스타트 이후에는 더욱 시간 소요가 된다. 2. Dependency 최적화 - dependency 최소화: 기능에 절대적으로 필요한 라이브러리만 포함시키자. 포..
[Lambda] Lambda 환경의 몇 가지 고유한 특성
1. 콜드 스타트 (따로 작성 예정) - 람다 함수는 사용하지 않으면 일정 시간 동안 유휴 상태였다가 호출이 발생할 때, 다시 함수의 새 인스턴스를 초기화한다. 이 초기화 과정에서 지연 시간이 발생하는데 이를 "콜드스타트"라고 한다. - 이를 완화하기 위해서는 함수를 주기적으로 호출해서(AWS CloudWatch 이벤트 사용)으로 Warm up할 수 있으며, 이로 콜드스타트의 지연시간을 피할 수 있다. 2. Statelessness 람다 함수는 상태를 저장하지 않는다. 다시 말해, 호출이 독립적이기 때문에 Amazon S3 또는 데이터베이스와 같은 외부 스토리지 서비스에 명시적으로 저장해야 한다. (그렇지 않으면 호출 간에 데이터가 보존 되지 않기 때문) 3. 실행 시간 제한 - 람다 함수에는 15min..
[Python] 03. bytes, str, unicode의 차이점을 알자
본 포스팅은 책을 공부하고 정리한 내용입니다. 파이썬의 문자 시퀀스 파이썬의 문자 시퀀스를 나타내는 방시은 유니코드 문자열 방식과 bytes(raw 8bit) 형식 2가지이다. 파이썬 3은 문자는 str, bytes는 bytes 클래스로 표현 파이썬 2는 문자는 Unicode, bytes는 str 클래스로 표현한다. 위와 같기 때문에, 파이썬 2와 파이썬 3을 섞어 쓸 때는 조심해야 한다. bytes ? bytes 인스턴스는 문자열 앞에 b를 붙여서 생성한다. ex : b'\x41' bytes는 ascii상수로 이루어져 있다. 위 예를 디코딩하기 위해 해석해보면 '\x'가 나타내는 것은 이 코드는 hexa의 표현이라는 것이다. 그럼 10진수로 '\x41'은 몇일까? 65이다. 이제 65를 아스키 코드로 ..
[Python] 02. PEP8 스타일 가이드를 따르라
본 포스팅은 책을 공부하고 정리한 내용입니다. PEP란? Python Enhancement Proposal 의 약자이다. 번역하면 파이썬 개선 제안서,,, 무슨 말이냐면 그냥.. 파이썬 코드를 어떻게 구성할지 정해주는 스타일 가이드이다. 코드는 기능적인 것을 구현하기 위해 언어마다 문법만 지킨다면 코딩 스타일은 사실 개발자 마음이다. 근데 개발을 처음부터 혼자하면 상관 없지만, 대다수의 상황상 우리는 같이 협업하여 서비스를 만들어 내야한다. 당연하게도 각자의 스타일대로 짜고 만나서 설명해주는 비효율성보다는 하나의 고정된 표준 스타일이 있다면 좀 더 효율적인 협업이 가능할 것이다. 그래서 파이썬 내에서 제안된 스타일 가이드가 존재하는데 그게 바로 PEP이다. PEP 8은 깔끔한 파이썬 코드를 작성하는 방법..
[Python] 01. 사용중인 파이썬의 버전을 알자
본 포스팅은 책을 공부하고 정리한 내용입니다. 1. 왜 버전을 알아야 하는지? 프로그램 개발자들은 유지 보수를 위해, 프로그램을 버전업한다. 버전 업이 될 때마다 여러 기능이 추가되거나 삭제되기도 한다. 이는 파이썬 버전업에도 동일하게 변화를 겪었다. 특히 파이썬 2에서 3으로 변화할 때 프로그램의 상당 부분이 변경되었다. 파이썬 2는 2020년 1월 1일부로 더 이상 지원되지 않는다.(버그 수정, 보안 패치, 새로운 기능의 역포팅이 이루어지지 않음) 그렇기 때문에 특정 파이썬 2코드는 파이썬 3에서 실행했을 시 에러를 출력하는 경우가 꽤 많다. 파이썬 3을 쓰는 것을 강력히 추천하지만, 2를 써야 하는 경우 2to3이나 six 같은 도구의 도움을 받아 파이썬 3으로 포팅하는 것을 제안한다. 이와 같은 ..
class 상속과 method 오버라이딩
기존 클래스를 상속받고 특정한 method를 수정하고 싶을 때 또는 새로운 method를 추가하고 싶을 때에도 overiding을 사용한다. 오버라이딩이란 "부모 클래스의 메소드를, 자식 클래스에서 재정의 하여 사용하는 것"을 의미한다. class perosn: def __init__(self, name: str) -> None: self.name = name def show(self): print(self.name) 위와 같은 person이라는 객체가 있는데 나는 이를 상속받아 학생이라는 클래스를 만들려고 한다. 학생이라는 클래스에는 name뿐만아니라 grade변수도 갖고 싶다. 그래서 우리는 __init__ 메서드를 오버라이딩하고 show함수 또한 grade 변수를 추가해 오버라이딩해준다. (__in..
[Python] keyword
파이썬에는 키워드 (Keyword)는 이미 예약되어 있는 문자열이 있다. 그렇기 때문에 따로 변수나 함수의 이름 등으로 사용할 수 없다. 만약 변수 이름으로 사용한다면 Syntax Error가 난다. SyntaxError: invalid syntax 파이썬에 존재하는 33개의 키워드는 아래와 같다. False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield 파이썬에서 키워드를 확인하는 방법 i..