일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- codecommit
- 토스카드
- DocumentDB
- 실사용
- aws codecommit
- 도커
- S3
- 리워드앱
- 포인트앱
- python3
- Linux
- MongoDB
- AWS
- 재테크
- 앱테크
- 커피머니불리기
- 리뷰
- Python
- 후기
- MongoEngine
- VPC
- mininet
- clone
- Container
- 하나머니
- docker
- network
- docker network
- built-in
- namespace
- Today
- Total
목록Python (21)
ㅍㅍㅋㄷ
Function annotation 은 무엇인가 어떤 언어이든 장점과 단점이 공존하기 마련이다. Python 의 경우 문법의 제약성이 적음으로 인해 유연성이 높은 장점을 취하였지만 반대로 그로 인해 발생되는 불편함도 있다. 변수나 함수 사용시 자료형에 대한 선언이 없고 자유롭게 사용이 가능하기 때문에 작성된 코드를 볼때 명시적으로 해석이 어려운 부분이 있다. annotation 은 이러한 불편한 점을 조금이나마 덜기 위해 나온 기능이다. Function annotation 의 사용 방법 function annotation 은 python3 이상에서 사용 가능하다. 사용 방법은 비교적 간단하다. annotation 문법을 사용해 function 을 정의하는 아래 예제를 보자. # Fuctnion annot..
DocumentDB 의 Replication AWS DocumentDB 를 이용해 개발을 진행하면서, DocumentDB의 Replication 동작 방식을 테스트하며 몇가지 정리해 본다. DocumentDB의 Replication 은 기존 MongoDB의 Replica Set 과 동일한 구조를 갖고 있다. 따라서 기존 MongoDB 와 동일한 방식으로 이용 가능하고, SDK 또한 동일하게 사용 가능하다. 이번 포스팅에서는 AWS DocumentDB 사용시 Python SDK인 MongoEngine 에 대한 설정 방법과 Read preference 설정 방법을 알아보려 한다. Read Preference 란 무엇인가 Read Preference 란 MongoDB의 Replica Set 설정시 Primar..
AWS의 DocumentDB 를 이용해 개발을 하려다 보니, DocumentDB에서 사용되는 MongoDB 에 기본으로 TLS 암호화 통신 되도록 설정되어 있다. 필자의 경우 Python 으로 개발시 MongoDB 를 ORM 형태로 사용 가능한 MongoEngine 이라는 패키지를 주로 이용하는데, 이때 TLS 암호화 통신 설정 관련 일부 내용을 정리한다. TLS 통신을 위한 public key 다운로드 Client와 서버 (documentDB) 간 암호화 통신을 위해서는 서로의 신뢰를 확인하기 위해서 Certificate 를 확인하는 절차가 필요하다. 이때 certificate 에 대한 발급은 서버 관리 권한을 가지고 있는 AWS 측에서 제공해준 Certificate 를 사용하면 된다. 해당 key 는..
f-string 사용 방법과 사용해야 하는 이유 Python 에서 문자열을 다룰 때는 여러가지 방식으로 사용할 수 있다. 대부분은 아마도 기존 python 2에서 지원하던 %-formatting 방식과 Format string syntax 인 str.format() 메서드 방식을 주로 사용할 것이다. 하지만, 이 방식들은 모두 아쉬운 점이 있는데, 가장 큰 문제로 지적되는 것이 바로 가독성 문제이다. 아래 예를 보자. name = 'song' sex = 'male' married = 'married' language = 'python' job = 's/w engineer' 'Hi, I am %s. I am %s and I like to use %s. I am %s and I was %s. Nice to ..
python 3와 python 2의 dictionary 차이 - view object python 3로 가면서 python 2에 비해 여러가지가 변경되었다. 그 중에 python 3에서 새롭게 생긴 dictionary의 view object 에 대해서 알아 보려 한다. Dictionary 메서드 - items() / keys() / values() python에서 dictionary 를 탐색할때 가장 많이 하는 행위 중 하나가 바로 for문을 통해 key와 value 값을 가져오는 것일 것이다. dic = {'a': 100, 'b': 50, 'c': 10, 'd': 500} for k,v in dic.items(): print("key=%s, value=%s" %(k,v)) >>> key=a, value..
python - filter() filter 함수는 built-in 함수로 list 나 dictionary 같은 iterable 한 데이터를 특정 조건에 일치하는 값만 추출해 낼때 사용하는 함수이다. 먼저, python docs 의 filter 에 대한 정의를 보면 아래와 같다. filter(function, iterable) Construct an iterator from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If function is None, the identity func..
python - literal_eval 은 정말 안전한 eval 인 것인가. 지난 포스팅에서 eval() 에 대해 알아 보았는데(eval()함수 사용을 조심해야 하는 이유), 마지막에 literal_eval 에 대해 잠깐 언급하였다. 이번 포스팅에서는 literal_eval 이 어떤 놈인지, eval 과는 어떤 차이가 있는지 알아보려 한다. literal_eval은 eval 과는 다르게 built-in 함수는 아니며, AST(Abstract Syntax Trees) module 에서 제공하는 함수 중 하나이다. AST 모듈은 문법을 구조화 시켜주는 모듈 정도로 이해하고 넘어가자. literal_eval에 대한 Python docs 를 보면 아래와 같이 설명되어 있다. ast.literal_eval(nod..
python eval() 함수 python 의 built-in 함수 중 하나인 eval 함수는 매우 강력하면서도 사용을 자제 하도록 권고하는 양날의 검과 같은 기능이다. 먼저 python docs 의 정의를 보자. eval(expression, globals=None, locals=None) The arguments are a string and optional globals and locals. If provided, globals must be a dictionary. If provided, locals can be any mapping object. The expression argument is parsed and evaluated as a Python expression (technically ..
python lambda - 어렵지 않아요 python docs 의 lambda 에 대한 정의를 보자. Lambdas Lambda expressions (sometimes called lambda forms) are used to create anonymous functions. The expression lambda parameters: expression yields a function object. The unnamed object behaves like a function object defined with: Lambda 는 간단히 얘기하면 이름을 정의하지 않는(anonymous) 함수 표현 방법이다. 즉, 마치 일회용품 처럼 간단히 이용할 목적으로 사용되는 표현 방식 정도로 이해하면 된다. 아래..
python ABC(Abstract Base Class) 추상화 클래스 python 의 ABC 클래스는 Base 클래스를 상속받는 파생 클래스가 반드시 Base 클래스의 메서드를 명시적으로 선언해서 구현하도록 강제하는 추상화 클래스 기능이다. 그렇다면 이러한 기능이 왜 필요한가? 이 기능의 필요성을 이해하려면 먼저 상속과 다형성에 대한 이해가 필요하다. OOP 의 가장 강력한 기능 중 하나인 상속(Inheritance)은 클래스의 재사용성을 높임으로서, 코드의 반복에 따른 유지 보수 비용을 낮추는데 큰 역할을 하였다. 이러한 상속의 개념과 함께 OOP 의 가장 중요한 특징 중 하나가 바로 다형성(Polymorphism) 이다. 여기서는 다형성에 대해서 좀 더 자세히 알아보자. 다형성(Polymorphis..