일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MicroService
- terraform
- Bitcoin
- 얼리억세스
- 벌집성단
- 천체관측
- Argument
- 혼공파
- 비트코인
- KSP2
- 개발환경
- monolithic
- 가상환경
- 관측일지
- Blockchain
- 패키지 매니저
- virtualenv
- MSA
- 이더리움
- 파이썸
- 블록체인
- CDK
- 커벌스페이스프로그램
- cloudformation
- function
- python
- dunder
- Ethereum
- 파이썬
- package.json
목록Development (8)
ulismoon
개인 프로젝트를 하면서 상속을 참 열심히도 쓰고 있다. 부모자식 간에 도리를 다 하는 것이 어찌나 복잡한지 코딩을 할 때마다 새삼 느낀다. 며칠간 풀리지 않던 문제를 좀 어이없이 풀게 되어서 간만에 기록을 좀 남겨보고자 한다. 상속 관계에서 자식 클래스의 method 를 실행할 때 부모의 함수를 무조건 실행하도록 하는 구조를 만드는데, 이게 이상하게 자식 클래스에서 실행하는데 자꾸 부모 클래스의 추상 함수(python 에는 그런건 없지만 NotImplementedError 를 가지고 비슷하게 할 수 있다)를 실행해서 제대로 처리가 완료되지 않는 문제에 관한 것이다. 어쩌면 이런 구조로 설계하는 게 잘못된 것일 수도 있지만 일단 기록으로 남길 가치는 있다고 생각한다. 요새는 모든 기록을 notion 에 남..
세상에 JS 가 부러울 줄이야... 주로 파이썬을 이용해 웹 개발을 하다 보니 JS 와 함께 사용할 때가 많고, 개발을 하면서 백엔드용 파이썬과 프런트용 JS 의 패키지를 같이 관리하게 된다. 나의 경우 지금까지 python 은 requirements.txt 를, JS는 package.json 과 yarn 을 이용해 package 를 관리해왔다. 개인적으로 JS 를 별로 좋아하지 않기는 하지만, 패키지 관리를 할 때만큼은 정말 JS 가 편하다고 느낀다. 크게 2가지 이유가 있는데, npm이라는 잘 작동하고 활성화된 중앙 패키지 매니징 시스템이 있고, (굳이 yarn 을 쓰지 않아도) package.json 안에 여러 패키지를 목적에 따라 구분할 수 있도록 한 것이나 lock file 을 만들어 의존성을 ..
태초에 Monolith 가 있었다 어떤 서비스건 처음 만들 때는 한 곳에서 모든 걸 처리할 수 있도록 만드는 것이 편하다. 네트워크 구성을 하기도 편하고, 서비스 아키텍처도 단순하고, 개발도 한곳에서 모든걸 보면서 할 수 있다. 그렇기 때문에 관리 포인트도 적고 뭐가 어디 있는지, 이게 어디서 와서 어디에 영향을 주는지도 확인하기가 편하다. 지금도 많은 서비스가 이렇게 만들어져 운영되고 있고, 또 새로이 만들어지고 있을 것이다. 보통 이런 식으로 한곳에서 모든 기능을 다 담당하는 구조를 모노리식(Monolithic) 구조라고 한다. 예를 들어 PoC 를 하기 위해 간단히 만들어볼 서비스라면 굳이 리소스를 분리하지 않고 작은 서버 하나에 DB, 서버 로직, web proxy, cache 까지 모든 것을 다..
어제 회사 슬랙 개발자 채널에 이런게 올라왔다. ??? 저거 뭐지 ??? *b 뒤에 뭐가 더 있다? 그런데 된다고? 해봤다. ??? 뭐지 ??? 이게 왜 되지? 파이썬 함수 인자 전달순서 같은걸 기본으로 생각하니 저런게 된다는건 생각도 못하고 있었다. 심지어 비워도 줍니다(...) 뭐 일단 다른건 모르겠고 또 이상하고 아름다운 파이썬의 매력에 빠져보기 위해 저게 어째서 되는지 찾아보기 시작했다. 1. packing, unpacking 파이썬 공식 문서에 보면 tuple을 설명하면서 packing, unpacking에 관한 내용이 마지막에 짤막하게 나온다. 굳이 tuple 한정이 아니라 sequence 자료구조라면 모두 작동하는 것으로, 아마 알게모르게 많이들 사용하고 있을 것이다. 나같은 경우에는 함수 ..
===== 업데이트: 여러 분들의 도움과 피드백으로 잘못된 부분을 수정했습니다. 감사드립니다. (2017-03-16 14:00) ===== 인터넷을 하다 모 블로그 에서 dict() 안의 key를 찾는 것에 대한 속도 비교 글을 보았다.내가 알고 있던 바와 달라 직접 확인해보고 간만에 글을 하나 써보려 한다.우선, 작성자가 쓴 글과 동일한 조건에서 테스트를 해보자. 해당 글은 2015년 글이라서 일단 파이썬2라고 가정했다.그때와 지금의 컴퓨팅 파워를 생각해(?) iteration을 10만번으로 증가시켰다. 오잉? 작성자 말이 맞잖아??? 엄청나게 차이나잖아???아..앙돼 이건 인정할 수 없어 다시해볼거야 ㅂㄷㅂㄷ 이게 어떻게 된 일이지... 사실 나는 코딩을 이렇게 안해서 몰랐었다테스트하면서 이정도의 성..
def func(arg, *args, **kwargs): 파이썬의 함수는 매우 잘 조직되어 있다. 아마도 이는 모든 것을 1급 객체로 만들어놓은 노고로 인한 보상이 아닐까 생각하는데, 덕분에 우리는 함수를 아주 다양하고 직관적으로 사용할 수 있다. 개인적으로 파이썬 함수를 공부하면서 가장 놀라웠던 것은 그 인자의 자유도였다. 함수를 쓰면서 인자값에 그렇게 신경을 안 써도 된다는 것이 개인적으로는 아주 큰 매력이었다. 파이썬의 함수 인자는 종류도 많고 이들이 우선순위를 가지며, 상당히 치밀하게 설계되어 있음에도, 내가 지금까지 본 파이썬 관련 책에서는 이를 깔끔하게 정리해준 것을 아직 발견하지 못했다. 그래서 이번에는 파이썬 함수 인자에 대해 적어보기로 한다. Function Arguments 개요 파이썬..
PATH?이전 글에서 virtualenv 사용법을 알아봤는데, 과연 그래서 무슨 PATH를 어떻게 손본다는걸까? 우리가 쉘에서 그냥 명령어 두들겨서 쓸 수 있는 프로그램들은 각종 bin 디렉터리 안에 들어있다. 터미널에서야 그냥 아무 생각 없이 쓰지만 그게 다 이미 어디있는걸 갖다 쓰라는 설정이 돼있다는 말이다. 파이썬을 예로 들어보자. 터미널에서 그냥 파이썬을 두들기면 파이썬 대화형 인터프리터가 실행된다. 여튼 무슨 프로그램이 실행됐다는 건데... 파이썬 명령어가 어디 있는지 which 명령어로 확인해보니 /usr/bin 안에 있다고 한다. 그럼 저런 것들은 어디에 모여있을까? 답은 여기 있다. $PATH 변수를 찾아보자. $ echo $PATH 오 뭔가 엄청 많은 경로들이 콜론(:)으로 구분돼있다. ..
다양한 프로젝트, 수많은 패키지, 복잡한 의존성...파이썬으로 개발을 하다보면 거의 항상 복수의 패키지를 설치, 사용하게 된다. 그런데 이걸 다 그냥 깔아버리면 해당 패키지는 그 컴퓨터에서 사용하는 모든 파이썬 패키지에 영향을 주게 되고, 이는 많은 문제를 일으킬 수 있다. 예를 들어 프로젝트 A, B가 동일한 X 라는 패키지를 사용한다고 하자. 그런데 A 프로젝트는 모종의 사정으로 X의 1.0 버전을 사용해야 하고, B는 최신버전인 X의 2.0을 사용하게 되었다면, 컴퓨터에는 어떤 버전을 설치해야 할까? 단순히 생각했을 때에는 2.0이 최신이니 2.0을 깔면 될 것이라고 생각하지만, 파이썬2 가 파이썬3 으로 넘어오면서 하위호환을 버린 것을 생각하면 무작정 최신버전을 깔아놓는 것은 패망의 지름길이다. ..