인프런의 '프로그래밍 시작하기:파이썬(Level3)'의 내용을 따라가면서 정리 (1-2)에서는 파이썬의 Shallow copy(얕은 복사)와 deep copy(깊은 복사)에 대해서 다룸 mutable과 immutable 객체 파이썬의 객체는 mutable과 immutable한 것으로 나누어진다 mutable은 list, set, dict immutable은 bool,int,float,tuple,str... 등등이 있음. mutalbe을 외우고 immutable을 나머지라 생각하는게 편함 mutable은 말그대로 변할 수 있는 객체로, 한번 값이 선언된 이후에도 그 값이 변할 수 있다. 따라서 mutable 한 객체는 값이 변화해도 재할당되지 않거나 ID값이 변화되지 않을 수 있음 #list(mutable..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level3)'의 내용을 따라가면서 정리 (1-1)에서는 파이썬의 variable scope와 map,lambda,filter,reduce함수에 관하여 다룸 1. Variable Scope 변수의 범위(Variable scope)에 대해서는 이전에 다룬적이 있음. 링크 : https://wannabehumblebee.tistory.com/24?category=987578 따라서 해당 링크에서 작성한 내용이 외에 한번 더 봤으면 좋겠다 싶은 부분들 추가적으로 알게된 것들에 대해서 기술 클로저 클로저 : 내부함수가 외부함수의 지역변수에 접근할 수 있고, 외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될떄까지 소멸되지 않는 특성 밑의 예제는 클로저임 muta..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (6)에서는 asynico를 활용하여 실습을 진행 멀티 쓰레드 vs 코루틴 쓰레드 : 디버깅, 자원 접근시 경쟁상태 및 데드락 등이 고려되어야 함 코루틴 : 하나의 루틴만 제어권을 통해 실행 > 락관리가 필요X > 쓰레드의 문제점을 고려할 필요가 없음. but 사용하려는 함수가가 비동기로 구현되어 있거나, 직접 다른방법을 통해 비동기로 구현을 해줘야 함 함수가 비동기로 구현되어 있다는 뜻은 blocking IO라는 것임 blockingIO : 호출된 함수가 자신의 작업이 완료될 때까지 제어권을 가지고 있음. 따라서 타..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (5)병행성,병렬성에 관하여 다룸 5-3에서는 futures를 활용한 병렬성에 관하여 다룸 개인적으로 포스팅을 하고 싶지 않은 부분이였음. 스스로도 강의를 들으면서 모르는 내용이 너무 많았기 때문. 지금 내가 듣고있는 강의의 시리즈만해도 병행성이나 병렬성에 관한것만 다루는 강의(파이썬 level4)가 있을 정도로 훨씬 더 넓고 깊은 개념이 필요한데.. 제대로 이해도 못한 것을 포스팅을 하는게 맞나 싶음 하지만 뭐.. 내 공부기록하는 곳이기도하고 끝을 내고싶다는 마음에 내용을 가능한 정리하며 작성함 병렬성 비동기로 작업..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (5)병행성에 관하여 다룸 5-2에서는 코루틴 (Coroutine) 에 관하여 다룸 코루틴(coroutine) 단일(싱글)스레드에서 스택을 기반으로 여러작업을 순차적으로 진행하는 것 루틴 실행 중 중지가 가능함. 그후 그 시점을 기억하여 재시작이 가능. 즉 동시성 프로그래밍임 메인루틴은 코드전체를, 서브루틴은 코루틴 함수를 의미함 코루틴은 제너레이터에 근본을 두고 있는 것임. 제너레이터처럼 yield를 사용하며, yield를 만나면 yield를 처리한 후대기함 yield를 사용하여 메인루틴과 서브루틴 사이의 상호작용을..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리..했으나 메인내용은 밑에 박성환님의 블로그글일 듯 하다 일단 인프런 LEVEL2강의의 (5)병행성, 그중에서도 5-1에서는 iterator / generator에 관하여 다룸 인프런 강의 내용외에, 다음의 내용들을 참고하여 정리하였음 코딩도장 박성환님 블로그 : https://shoark7.github.io/programming/python/iterable-iterator-generator-in-python 나 스스로 공부하면서 정리했다고는 하지만, 박성환님의 블로그에 지려버려서.. 해당 블로그를 뼈대로, 나한테 필요한 정보들을 가볍게 덧붙인 것에 불과한 포스팅이 되지 않을까 함. 내 포스팅의 ABC가 박성환님의 블로그가..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용 + 내용을 추가하여서 정리함 앞의 내용(closure)와 이어짐(https://wannabehumblebee.tistory.com/25) decorator에 대해 다룸 decorator 데코레이터의 정체는 '클로저를 활용한 함수의 연쇄'정도로 생각하면 될 것 같다. 정확하게 얘기하면 암튼 간단하게 얘기하면 '함수의 시작과 끝에 특정한 작업을 더해주는 과정을 좀 더 편리하게' 해주는 기능을 가짐 즉, 데코레이터라고 하지만 함수의 처음과 끝을 꾸며줄 뿐, 함수내부 프로세스를 뒤흔들거나 그러지는 못함. 그래서 개인적르노느 꾸민다는 말이 적합하다고 본다. decorator 의 필요성(유용성) 우선 데코레이터의 필요성 혹은 유용성에 대해서 먼저 이..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'을 기본으로 이런저런 내용을 덧붙여서 정리 closure에 관해 다루며, 바로 앞의 포스팅(https://wannabehumblebee.tistory.com/24)과 연관되는 내용이 많음 Closure를 사용하는 이유 우선 귀찮고 짜증나는 closure를 굳이굳이 배워서 사용하는 이유는 다음과 같다. global변수를 사용하지 않고, nonlocal변수를 사용하기 위하여 global변수는 접근 및 수정이 쉬움. 중요한 변수의 경우 클로저의 내부로 숨겨서, 즉 nonlocal변수로 만들어 값을 접근 및 수정으 쉽게 되지않도록 하는 것 클래스를 사용하기 싫어서 사실 클래스로도 충분히 클로저의 역할을 할 수 있다. 다만 클래스는 요구되는 메모리가 훨씬 ..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (4)에서는 일급함수, scope, 클로저, 데코레이터에 관해 다루었음. 전체적으로 내용이 이어지고, 선행되는 개념을 이해해야함 4-1에서는 일급함수와 scope에 대해 다룸 확실히 어렵다... 다만 개인적으로 이러한 어려움은 내용의 난도가 높다기보다는 생소한 개념이 익숙하지 않아서 느껴지는 어려움이라 생각함 일급함수 시작하기전에, https://shoark7.github.io/programming/python/closure-in-python를 참고하면 좋다. 이해가 안되서 찾아보다가 발견함..일급함수 - SCOPE ..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (3)에서는 시퀀스에 관해 다루었음. 다만 어떤 특정 주제에 집약된 내용이라기보다는 시퀀스 관련해서 조금 더 심화된 내용을 그냥 주제가리지 않고 다 배운 느낌임. 그중 내가 모르는 부분을 정리하였음 확실히 어렵다... 다만 개인적으로 이러한 어려움은 내용의 난도가 높다기보다는 생소한 개념이 익숙하지 않아서 느껴지는 어려움이라 생각함 해시 테이블(hash table) key에 value 를 저장하는 구조 -> 적은 리소스로 많은 데이터를 효율적으로 관리 키값의 연산에 따라 연산결과(벨류)에 직접접근이 가능하다는 점이 정..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (3)에서는 시퀀스에 관해 다루었음. 다만 어떤 특정 주제에 집약된 내용이라기보다는 시퀀스 관련해서 조금 더 심화된 내용을 그냥 주제가리지 않고 다 배운 느낌임. 그중 내가 모르는 부분을 정리하였음 확실히 어렵다... 다만 개인적으로 이러한 어려움은 내용의 난도가 높다기보다는 생소한 개념이 익숙하지 않아서 느껴지는 어려움이라 생각함 파이썬 자료형 파이썬의 자료형을 분류하는 기준은 두가지로, '컨테이너 vs 플랫 '과 '가변vs불변'이 있음 컨테이너는 여러가지 자료형을 담을 수 있음 ex) list, tuple, col..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (2)에서는 매직 메소드에 관해 다루었고 그중 내가 모르는 부분을 정리하였음 확실히 어렵다... 다만 개인적으로 이러한 어려움은 내용의 난도가 높다기보다는 생소한 개념이 익숙하지 않아서 느껴지는 어려움이라 생각함 1.1 매직 메소드(스페셜 메소드) Magic Method 혹은 Special Method 라고 불림 파이썬 내부적으로로 이미 구현되어져 있는(built-in)메소드로, __~__ 형태를 취하고 있음 참고 : https://docs.python.org/3/reference/datamodel.html#speci..
인프런의 '프로그래밍 시작하기:파이썬 중급(Level2)'의 내용을 따라가면서 정리 level2다 보니, 생소한 개념들이 많음. 다시 봤을 때 그냥 빠르게 기억날 수 있을 정도로 정리하였음 (1)에서는 클래스의 좀더 심화된 내용을 다루었고 그중 내가 모르는 부분을 정리하였음 1. str , repr, doc print를 활용하여 출력시, __str__메소드가 인자를 받아 자동적으로 사용됨 __repr__은 __str__에 비해 좀더 공식적이고 엄격한 자리(?)에서 사용된다고 함. but 둘은 대체로 비슷한 기능을 함 print사용시에도 __str__이 없으면 __repr__이 사용됨 doc는 해당 클래스에 대한 추가설명(누가 언제 만들었는지 등)을 호출하는 메소드 class Car(): """ autho..
인프런의 '프로그래밍 시작하기:파이썬 입문 강좌(Level1)'의 내용을 따라가면서 정리 기초를 좀 정리하고자 하는 강의이다보니, 들은 모든 내용을 다 정리하지는 않았고 헷갈리거나 or 정리해두면 필요할때 와서 찾아와서 보면 좋겠다 or 이거 알았으면 유용했겠다 싶은 부분을 주제별로 정리하였음 (9)에서는 이때까지 배운걸 다 써서 자그마한 행맨게임을 만들어봄 사실 진짜 별 내용 없음.. 그냥 올려야 하나 싶은 느낌이긴 한데, 그래도 이번 인강들으면서 배운것들을 한번 정리하면서 가볍게 만들어봤고, 그냥 만든김에 올리는 느낌임 time.sleep()을 이렇게 쓸 수 있다~ 정도는 기억해둘만함. 나중에 스크랩 할때 필요할듯 import time,random,csv,winsound,os #quiz word선정 ..
인프런의 '프로그래밍 시작하기:파이썬 입문 강좌(Level1)'의 내용을 따라가면서 정리 기초를 좀 정리하고자 하는 강의이다보니, 들은 모든 내용을 다 정리하지는 않았고 헷갈리거나 or 정리해두면 필요할때 와서 찾아와서 보면 좋겠다 or 이거 알았으면 유용했겠다 싶은 부분을 주제별로 정리하였음 (8)에서는 파이썬으로 파일을 읽고 쓰는 것에 관해 정리 8.1 읽기 / 쓰기(open함수 활용) open함수를 활용한 파일 읽고 쓰기 파일의 경로를 설정할 때, 특히 상대경로를 사용할 때 반드시 os.getcwd()로 현재 파일이 실행되는 위치를 확인해야함. 이번에도 파일이 있는 곳이 아니라 한칸 상위의 폴더에서 파일이 실행되고 있어서 한참애먹음.. 경로를 읽을 때, rawstring을 사용하는 걸 추천 읽기 가..