본문 바로가기

CS/Python35

[python3] Python 에서 유닛테스트 만들기 - 초보자편 2022.04.27 - [CS/Python] - python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 오늘은 제가 매일 사용하고 있는 python unittest module에 대해 정리해 보려 합니다. 이전 글에서도 간단히 작성했던 기억은 있는데 로드맵 리뷰를 하다보니 unit-test 항목이 있어서 다시한번 가볍게 짚고 넘어가겠습니다. unitt.. 2022. 11. 7.
[python3] Lambda (람다) 함수 개념과 활용법, 장단점 - 쉽고빠른파이썬 오늘은 파이썬에서 사용하는 람다 함수에 대해 간단히 알아볼까 합니다. 경우에 따라 자주 쓰는 분들도 있고 아닌 분들도 있을 것입니다만.. 프로그래밍 언어도 나름 언어이다 보니 다양한 표현을 알아두면 최소한 이해하는 데에는 큰 도움이 됩니다. 사설은 이만 줄이고 람다를 어떻게 쓰는지 알아봅시다. 정의 람다 함수는 하나의 임의 함수입니다. 여러 Argument를 받아 수행하지만 하나의 표현으로만 가질 수 있습니다. 장점 함수를 간편하게 작성할 수 있다는 점이 람다 함수의 장점입니다. 다른 함수의 인수로 함수를 넣을 때, 람다를 주로 사용합니다. C++ 에서의 함수 포인터와 비슷할 수 있겠네요. 인수로 넘긴다는 점에서 함수 포인터와 유사할 수는 있지만 차이점은 분명히 있습니다. 단점 굳이.. 단점이 있을까요?.. 2022. 11. 5.
[python3] 파이썬에서 이터레이터 (Iterator) 란? Iterator 우선 이터레이터라는 단어는 디자인 패턴에서 많이 듣는다. Iterator pattern Single Responsible Principle 을 준수하기 위해 데이터의 저장과 방문의 책임을 분리하여 방문의 책임만을 갖게 하는 패턴을 의미한다. 일반적으로 이 의미와 어느정도 유사한 느낌은 있지만 언어적인 측면에서는 여러개의 값들을 가지고 있는 객체를 의미하는 경우가 대부분이다. 단순하게 생각해서, 모든 값들을 순회(Traverse)할 수 있는 객체를 Iterator로 이해하면 되겠다. Python에서의 Iterator는 __iter__(), __next__() 메서드를 포함하는 객체를 의미한다. Iterable objects Python 에서 iterable한 자료형인 List, tuple,.. 2022. 11. 3.
Python3 print 함수 출력 글자 색 바꿔서 출력하는 방법 안녕하세요 warehouse입니다. 오늘은 파이썬으로 인터페이스를 만들면서 사용한 간단한 팁을 공유하고자 합니다. git 우선 일반적인(?) 프로그래머들이 많이 사용하는 git을 먼저 보고 가려고합니다. 파이썬 색상 얘기하다가 갑자기 왠 git? 하시겠죠? 우리는 git 명령어를 사용하면서 이런 유형의 색상 출력을 보게 될텐데요 그냥 추가된 파일은 초록색이고, 아닌 것들은 빨강이구나.. 그리고 git diff 출력에서도 변경 사항을 빨강 초록으로 표시해 주는구나.. 정도로만 자연스럽게 받아들이고 있을 겁니다. 그런데, 저는 솔직히 말하면 .. 이런 색상은 어떻게 출력해 주는지 고민해 본 적이 없습니다. 최근 까지만 해도요. python print 그런데 어쩌다 보니 업무상 출력 색상을 변경해야 하는 상황.. 2022. 8. 5.
[파이썬 배우기] python 출력 새로고침, 갱신하면서 출력 하는 방법 안녕하세요 warehouse입니다. 오늘은 파이썬을 구현하면서 출력할 때, 화면을 새로고침 하면서 출력을 업데이트 하는 방법을 알아보려고 합니다. 사실 이 부분은 엄청날 스킬은 아니고 개발하면서 한번 쯤 검색해 볼만 한 팁 인것 같아요. 저도 파이썬을 이용한 사용자 인터페이스 구현을 하다가 출력이 갱신되었으면 하는 마음에 찾아보고 정리해 둔 내용이니 저와 같은 처지(?) 에 놓이신 분들도 참고 하셨으면 좋겠습니다. 언제 필요한가? 제가 필요한 경우는 아래와 같은 상황이었어요. 1. 사용자에게 지금까지 대기 한 시간을 표현해야 한다. 2. 줄줄이 소세지로 터미널 스크롤이 생기지 않았으면 좋겠다. 일단 1. 을 먼저 구현해 보면 아래 예시처럼 만들어질거에요. 10초를 대기했다고 생각하면.. 10번 수준의 루.. 2022. 8. 1.
[파이썬 개발자 로드맵] Functions - 함수 만들어서 사용하는 방법 2022.04.27 - [CS/Python] - python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 파이썬에서 함수를 만들어 쓰는 것은 너무나 단순하기에 가볍게 예제 코드만 작성하고 넘어가 보려고 한다. 클래스 안에 선언되는지, 모듈에서 바로 사용되는지 위치에 따라 조금씩의 차이는 있겠지만, 기본적인 function의 선언과 사용은 큰 틀을 벗어나.. 2022. 7. 4.
[파이썬 개발자 로드맵] Exceptions - Python 에서 예외(Exception)를 일으키고 처리하는 방법 , try ... except ... else 의 의미 파이썬 개발자 로드맵에 따라 문법들을 정리하고 있습니다. 2022.04.27 - [CS/Python] - python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 오늘은 예외 처리에 대해 간단하게 정리하고 넘어가 보겠습니다. Handling exceptions 다른 언어들과 마찬가지로 파이썬 에서는 선택 된 예외들을 처리할 수 있습니다. 다음과 같이 t.. 2022. 7. 2.
python 함수 리턴 밑줄 변수 "_ " 의 의미 파이썬 코드를 보다보면 underscore(밑줄, _ ) 값 을 리턴하는 경우가 있다. 다음 코드의 예시를 보자 def demo_func( mul ): return 1*mul, 2*mul, 3*mul if __name__ == "__main__": a, b, c = demo_func(1) print ( a, b, c ) a1, b1, _ = demo_func(2) print ( a1, b1, _ ) a2, _, c2 = demo_func(3) print ( a2, _, c2 ) 이렇게 작성 된 코드의 출력은 어떻게 될까? 결과는 다음과 같다. % python3 return_.py 1 2 3 2 4 6 3 6 9 _ 에 할당 한 값을 print 함수는 정상적으로 출력 해 준다. 그런데 밑줄변수 _ 는 왜 .. 2022. 6. 16.
Python print 함수를 stdout, stderr 로 출력하는 방법 - python 개발자가 stderr를 써야하는 이유 python 에서는 print 함수를 정말로 많이 사용한다. 나는 표준출력을 목적으로 사용하기도 하지만 간단하게 Debugging 할 때에도 쓰는 것 같다. 대부분 개발자가 비슷하지 않을까 생각 해 본다. 그런데 실제 production 은 함부로 쓰기가 좀 조심 스러운게 사실이다. 조심스러운 표준 출력, stdout 일반적으로 python 에서 print 함수를 쓰면 stdout으로 출력이 된다. https://docs.python.org/ko/3/library/functions.html#print 내장 함수 — Python 3.10.5 문서 내장 함수 파이썬 인터프리터에는 항상 사용할 수 있는 많은 함수와 형이 내장되어 있습니다. 여기에서 알파벳 순으로 나열합니다. abs(x) 숫자의 절댓값을 돌려줍.. 2022. 6. 15.
[파이썬 개발자 로드맵] Type casting - python 변수 형변환 하는 방법 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 로드맵 따라서 내용을 좀 더 상세하게 가져가고 싶었는데 또다시 겉핥기를 하는 것 같다.. 어느정도 흐름만 스켈레톤을 만들어 두고 세부 내용들은 생각나는대로 업데이트를 하는게 좋을 것 같다. 첫 술에 배 부를 수는 없는 법이다. 내가 python 을 사용하면서 주로 사용하는 Casting은 다음과 같다. int to str str to int Bool to str list to set .. 2022. 6. 4.
[파이썬 개발자 로드맵] Python 변수 와 데이터 타입에 대해 2022.04.27 - [CS/Python] - python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 로드맵의 첫 시작. 변수에 대한 이해이다. 근데 진짜 언어라는게 깊게 파기 시작하면 한도끝도 없다. 내 개인적인 추천방식은 온라인에서 가볍게 한번 훑고나서 일단 개발이 가능한 수준 정도의 실력을 쌓은 뒤 디테일하게 정리 된 책을 구매해서 Deep d.. 2022. 5. 5.
Global Interpreter Lock (GIL) - 파이썬의 길(?) 이란? GIL 에 대해서는 Python 코딩의 기술 이라는 책에서 처음 접했던 것 같다. 상호배제잠금 이라는 단어로 설명을 했었는데, 최근 회사에서 대화를 하다가 기억이 제대로 안나서 정리 차원에서 포스팅을 해보려고 한다. GIL (Global Interpreter Lock) 해석을 하면... 전역... 통역가.. 락? 책에서 설명하는 GIL의 역할은 CPython이 선점형 멀티스레딩의 영향을 받지 않게 막아준다 이다. 선점형 멀티스레딩의 경우 한 스레드가 다른 스레드를 인터럽트해서 프로그램을 제어하게 되는데, 이 인터럽트가 예상과 다르게 일어나면 인터프리터 상태가 망가진다. 이러한 인터럽트를 Lock을 통해서 막아주는 것이 GIL이 되겠다. 그런데 이게 문제가 되기도 하는데 그것은 바로 스레드의 병렬성 저하 .. 2022. 5. 2.
python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 것 같아서 Python developer roadmap 을 한번 확인해 봤다. Developer Roadmaps Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve. roadmap.sh Pyt.. 2022. 4. 27.
[CS/python] Python variables 유형 - 파이썬 자료형은 어떤 종류가 있을까? 안녕하세요 warehouse 입니다. Python 이 필요한 프로젝트를 하다보니 부랴부랴 배워서 근본이 조금 없다는 것을 느끼고 있습니다. 뭐랄까.. 유투브를 보고 배운 아마추어 스포츠 동호회 같다 랄까요? 제대로 배우기 위해서는 책 한권을 떼는게 가장 정석일 지도 모르겠습니다만, 제가 알고있는 선에서 차근차근 정리를 하고 설명해 나가면서 저도 스스로 학습을 해 보려고 합니다. 모든 글은 어느정도 레퍼런스 체크를 할 예정이니 같이 차근차근 알아가 보았으면 좋겠습니다. Python에서 사용하는 자료형 Python 도 script 기반의 언어이기는 하지만 프로그래밍 언어이므로 변수라는 개념을 지원합니다. 그리고 변수는 너무나 자연스럽게 자료형을 갖게 되는데요, Python에서 사용하는 표준 자료형을 알아보도.. 2022. 3. 14.
[CS/Python] Python 3.10.0 final release - 릴리즈 노트 읽기 뒷북이기는 하지만 python 3.10 릴리즈 노트를 한번 읽어봤습니다. Release data 2021-10-04 원문 / 출처 릴리즈 노트의 원문은 아래에서 확인 가능합니다. https://docs.python.org/release/3.10.0/whatsnew/changelog.html#python-3-10-0-final Changelog — Python 3.10.0 documentation bpo-39372: Clean header files of interfaces defined but with no implementation. The public API symbols being removed are: _PyBytes_InsertThousandsGroupingLocale, _PyBytes_Inse.. 2022. 3. 10.