Python/Python 뜯어보기

    [Python 뜯어보기] 5. 파이썬 가상머신(PVM) 과 컴파일방식

    [Python 뜯어보기] 5. 파이썬 가상머신(PVM) 과 컴파일방식

    java bytecode 찾아보다가 파이썬도 바이트코드를 확인할 수 있다는 것을 우연히 발견하게 되었다. 아니 그렇다는 것은,, 자바와 마찬가지로 파이썬도 컴파일 된 후에 인터프리터를 하는 하이브리드 방식이라는 얘기인가?!?! 하고 찾아봤다. python VM 이 코드를 interpret 하는 과정 https://caiocozza-art.medium.com/a-quick-overview-of-the-python-virtual-machine-pt-1-315e74c036f4 A quick overview of the Python Virtual Machine — Pt. 1 This is the part one of a series covering aspects of Virtual Machines and how..

    [Python 뜯어보기] 4. WSGI 와 Python

    [Python 뜯어보기] 4. WSGI 와 Python

    1. WSGI 란? "웹 서버 게이트웨이 인터페이스"라는 의미로, WS 와 WAS 사이의 인터페이스를 제공한다. (1) WS 를 변경해야할 일이 있거나 추가해야 할 때, (2) 또는 반대로 다른종류의 WAS 를 추가해야하거나 변경해야할 때 등의 경우에 ws 와 was 사이의 추가적인 설정을 하지 않아도 손쉽게 갈아낄울 수 있도록 돕는듯하다. (추상화 수준이 높은 것을 의존한다는 제어의 역전 개념과 비슷한듯) (제어의 역전 개념은 이전 포스팅(https://letsmakemyselfprogrammer.tistory.com/63) 참고) 2. UWSGI - wsgi 의 수많은 종류 중 하나. (gunicorn, Bjoern, CherryPy 등). - 다양한 언어 지원 - unix 소켓을 지원 3. WSGI..

    [Python 뜯어보기] 3. 파이썬 Thread 와 GIL

    [Python 뜯어보기] 3. 파이썬 Thread 와 GIL

    자료 출처: http://www.dabeaz.com/python/UnderstandingGIL.pdf 1. Thread Execution Model (with GIL) - 파이썬을 실행시키면 => 하나의 프로세스, 하나의 인터프리터 - 파이썬 쓰레드는 real system(os) thread 이다.(unix 계열 posix thread, window 계열 window thread.) 완전히 os 가 관리한다. - GIL(global interpreter lock): 한 프로세스에는 여러 스레드가 존재할 수 있는데, 한 스레드가 인터프리터를 사용할 때 다른 쓰레드는 인터프리터를 사용할 수 없다. (인터프리터를 사용한다는 말은 파이썬 코드를 해석->실행시킨다는 말) - 즉 한 스레드가 cpu bound jo..

    [Python 뜯어보기] 2.극한의 '객체'충 파이썬

    [Python 뜯어보기] 2.극한의 '객체'충 파이썬

    이번 공부를 하면서 얻은 교훈! C 와 Python 의 가장 큰 차이점이 무엇인지 느껴졌다!! C는 함수 호출 시 스택 메모리에 로드하고, 빠져나올 때 의미를 잃어버린다. Python은 함수를 네임스페이스 라는 공간에 정의를 한다. 함수까지도 객체화 해버렸다. 여기서 많은 차이가 발생하는 것 같다. 마치 레고? 로봇? 같은 느낌이다. 우리가 쓰는 모든 변수는 잘 만들어진 로봇의 부품들을 하나하나 가리키는 용도일 뿐이다. C는 주물작업으로 직접 레고 부품을 하나하나 만들고, 만들어진 부품을 내 손으로 직접 쌓는 느낌 Python은 절대 내 손으로는 그 부품을 만질 수 없다. 내가 타워 크레인이 된 것처럼 이미 잘 만들어진 것들을 이리저리 옮겨서 쌓는 느낌이다. C는 장인의 손길이 느껴지는 반면, Pytho..

    [Python 뜯어보기] 1. 파이썬은 어떻게 문장을 인식할까?

    [Python 뜯어보기] 1. 파이썬은 어떻게 문장을 인식할까?

    이 글은 문서를 참고했습니다. 처음 프로그래밍을 배울 때가 기억난다. Visual Studio 를 이용해서 C/C++ 을 배울 때였는데, 내가 선언한 변수들이 알록달록 예쁜 색으로 변하고, 논리적인 문장, 문단을 실시간으로 구분하는 프로그램이 너무 신기했다. 파이썬이 C 기반으로 만들어진 언어라는 점을 인식하면서 공부하다보니, 이런 기억들이 새록새록 떠오르면서, 프로그램이 문자,문장을 구분하고 인식하는 방법에 대해 궁금해졌다. 레퍼런스에는 아래와 같이 기술되어 있다. - BNF 문법 표기법?? : 배커스-나우르 표기법(Backus–Naur form) 이라고 불리며, 문맥 무관 문법을 나타내기 위해 만들어진 표기법이다. 컴퓨터가 글을 이해할 수 있도록 하는 기초적인 모델,, 같은 느낌이다. 검색해서 간단하..

    [Python 뜯어보기] 0. 파이썬을 공부하기로 결심한 이유

    [Python 뜯어보기] 0. 파이썬을 공부하기로 결심한 이유

    근래 일주일 동안 많은 고민들이 있었다. 하루종일 컴퓨터 앞에 앉아 공부만 하다보니, 방향성 없이 무턱대고 공부만 하는듯한 불안감이 생겼다. 어떤 방향으로 진로를 구체화 시켜야할까. 내가 정말 좋아하고, 즐겁게 오래 공부할 수 있는 분야가 무엇일까. 실제 현장에서 어떤 기술들이 요구되는지 학부생의 입장에서는 감이 오지 않았다. 그래서 취업 사이트에 올라와 있는 구인 글을 많이 보면서 정리해보려고 했다. 임베디드, 시스템 프로그래밍, 암호학 등 기계 느낌 나는 분야 웹 기반 소프트웨어처럼 사람에게 더 가까운 분야 빅데이터 처리 기법 / 알고리즘 개발 등의 연구분야 크게 이렇게 세가지로 나누어 보았다. ① 기계 느낌 나는 분야. - 리눅스 커널 같은 시스템 프로그래밍 같은 곳 - 직접적으로 메모리를 다루어야..