일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- python
- 코로나백신
- springboot
- opensouce
- GlobalInterprintLock
- pyenv
- 오큘러스퀘스트2
- restfulapi
- 조엘온소프트웨어
- Golang
- vscode
- codewar
- goalng
- loadimpact
- 규칙없음
- codewars
- httppretty
- Algorithm
- 글쓰기가필요하지않은인생은없다
- printer_helper
- 유닉스의탄생
- typevar
- flake8
- Lint
- pep8
- organizeImports
- conf
- 독후감
- maxlinelength
- ProxyServer
- Today
- Total
목록프로그래밍/PYTHON (10)
일상적 이야기들.
Sort Algorithm Python의 Sort는 어떤 알고리즘을 사용하는가? Timsort is a hybrid stable sorting algorithm, derived from merge sort and insertion sort, designed to perform well on many kinds of real-world data. It uses techniques from Peter McIlroy’s “Optimistic Sorting and Information Theoretic Complexity”, in Proceedings of the Fourth Annual ACM-SIAM Symposium on Discrete Algorithms, pp 467–474, January 1993. ..
https://wiki.python.org/moin/GlobalInterpreterLock GIL 은 무엇인가 CPython에서 존재하는 개념으로, Jython, IronPython인 경우에는 GIL 이 존재하지 않습니다. GIL 은 Global Interprint Lock의 약어입니다. In CPython, the global interpreter lock, or GIL, is a mutex that protects access to Python objects, preventing multiple threads from executing Python bytecodes at once. This lock is necessary mainly because CPython's memory manageme..
(venv) [~/Public/leetcode]$ flake8 97_Interleaving\ String.py 97_Interleaving String.py:7:58: E203 whitespace before ':' 97_Interleaving String.py:10:62: E203 whitespace before ':' 97_Interleaving String.py:45:80: E501 line too long (111 > 79 characters) 97_Interleaving String.py:46:80: E501 line too long (111 > 79 characters) 97_Interleaving String.py:47:80: E501 line too long (211 > 79 charact..
{ "window.zoomLevel": 1, "workbench.colorTheme": "One Dark Pro", "workbench.editorAssociations": [ { "viewType": "jupyter.notebook.ipynb", "filenamePattern": "*.ipynb" } ], "workbench.iconTheme": "vscode-icons", "editor.renderWhitespace": "all", "files.trimTrailingWhitespace": true, "python.linting.flake8Enabled": true, "python.formatting.provider": "yapf", "editor.renderIndentGuides": true, "wi..
이번에 m1 노트북을 구매를 하였고, m1에는 기본적으로 bigsur가 깔려져있는 상황이었다. 자연스럽게 환경 셋팅 중에, pyenv 를 설치하고 python 버전을 설치하려는데 장애를 겪었다. 처음에는 m1 문제인것으로 인식하였었는데, 알고보니 bigsur 에서의 문제였었다. 가장 먼저 확인을 해야하는 부분은 xcode의 command line의 문제인지였다. xcode - preferences - locations 탭의 설정값 확인 Command Line Tools 의 값이 제대로 먹혀있지 않을 경우에, pyenv 로 설치가 불가능하다는 이야기를 접했다. 다른 설정값 문제 나는 xcode 문제인지 알고, 몇번이나 지웠다 깔았는지 모른다. 하지만 저거말고도 별도의 설정이 필요했었다. export LDF..
TestCode 지금 있는 속한 팀에 있기 전, 바로 직전에는 QA팀에서 Tool을 만들었다. 그때도 동일하게 테스트코드를 작성을 하였지만, 이 글에서 이야기하는 테스트코드와는 결이 달랐다. 개발자가 자신이 작성한 코드에 대한 최소한의 보증수표를 붙혀주는 것이 TestCase 작성인 것 같다. 하지만 개발자가 작성하는 TestCase에는 함정이 있을 수도 있다. 왜냐하면 자신이 작성한 코드이기때문에 방어적으로 코드를 작성하게 되는 것 같다. 실 사용자들은 기상천외한 값들을 넣을 수 있기때문에 따로 QA팀이 있고, 해당 팀에서 매뉴얼로든 프로그램이든 여러가지 케이스를 테스트하게 된다. 그 중에 나는 End-User 입장에서 테스트코드를 작성을 하였기에, PyTest로 작성하는 코드와는 달랐다. Pytest..
organizeImports 해당 옵션을 사용하면 import 영역 내의 중복된 이름들을 제거해주고, 알파벳순으로 정렬하는 기능도 가지고 있습니다. 그리고, 해당 기능을 통해서 import 내에서, pep8의 규칙에 따라 한 line의 길이가 80글자가 이상이면 multiline으로 분리하여 정렬을 해주고 있습니다. 왜 80글자인가 PEP8의 규칙에 의하면, Python 내에서 한 line의 길이는 80글자를 넘어가지 않을 것을 권고하고 있습니다. 이는 옛날에 개발 환경이 열악한 시절 한 창에서 표기하는 글자의 수가 80글자였기때문에 이를 규칙으로 삼고 있습니다. 하지만 현재에 와서는 한 라인에 80글자를 담아내기에는 너무 적은 표기법이라고 생각이 됩니다. 그렇기에, 팀내에서는 120글자를 제한으로 하고..
Lambda Lambda는 AWS에서 자주보던 용어였고, 일부 언어에서 Lambda식을 지원하는 것으로 알고 있다. python 또한 Lambda식을 지원하고 있으며, 이를 활용하면 함수형 프로그래밍 방식에 맞춰서 개발할 것이 가능하리라고 보여진다. Python에서 Lambda의 정의를 보면 다음과 같이 기재가 되어있다. ( w3school정의 ) A lambda function is a small anonymous function. A lambda function can take any number of arguments, but can only have one expression. 작은 익명의 함수라고 정의가 되어있으며, Parameter(arguments)는 여러개가 될 수 있지만, 하나의 표현식만..
Python을 이용하는 많은 이들이 intelliJ나 pycharm을 많이 쓰고 있다. 그러나 IDE에 굳이 종속적으로 작업을 진행해야하나 싶기도 하고 비싼 돈을 주고 라이센스를 이용하기도 싫고, 사용하지 않는 기능들이 덕지덕지 붙어있는 것들이 싫어서 vscode를 사용하고 있다. 다른 언어를 사용할 때에도, 굳이 또 IDE를 설치할 필요없는 간편한 vscode ! 그러나 홀로 vscode를 사용하다 보니, 팀원들과의 코드 인벤션이 맞지 않아 많은 고생을 하였다. 기본적으로 PEP8을 따르고 있는데, vscode의 기본인 pylint는 먼가 어설프게 pep8을 지켜주고 있었다. 그렇기에 대안으로 삼은 것이 다음과 같다. Pycodestyle pycodestyle은 vscode에서 pep8이라고 적혀있듯이..
CLI 환경에서 프로그래밍을 하다보면, 실행 시에 전달을 해줘야하는 값들이 많이 존재하게 된다. 예를 들어서, 현재는 별로 사용되고 있지 않지만 windows 에서 종료를 위해서 예전에 많이 치던 showdown 명령어로 보자. shutdown -f -s -t 3600 알파벳 앞에, - 기호가 붙은 것들이 option 이며 각각은 다음의 뜻을 가지고 있습니다. f : 사용자에게 미리 경고하지 않음. s : 컴퓨터가 종료 됨. t : 종료될 시간을 지정. 이렇듯, 사용자에게 입력을 받아야하는 값들을 언제나 실행 후 입력을 받기에는 번거로움이 많다. 그렇기에 명령행 옵션을 사용할 수 있으며 python 에서는 argparse 라는 lib 으로 제공을 해주고 있다. import argparse parser =..