BeautifulSoup 데이터를 추출하는데 필요한 기능이 들어 있는 파싱(parsing)라이브러리 웹 스크래핑에 활용할 수 있습니다. 파싱 : 받아온 데이터에서 필요한 내용만 추출하는 것 스크래핑(scraping) : 컴퓨터 프로그램이 다른 프로그램으로부터 들어오는 인간이 읽을 수 있는 출력으로부터 데이터를 추출하는 기법 예제를 통해 이해하는 것이 빠를 것 같습니다. Ex import requests from bs4 import BeautifulSoup # url을 정의하고 requests library를 이용하여 get 요청 > html 값을 text로 받아옵니다. url = "https://finance.naver.com/sise/" response = requests.get(url).text # ..
[Django] Test driven development, TDD 테스트 주도 개발은 무언가를 개발할 때 바로 개발부터 하는 것이 아니라 개발하려는 항목에 대한 점검 사항을 테스트코드로 만들고 그 테스트를 통과시키는 방식으로 개발을 진행하는 방법입니다. 프로그램이 복잡해 질수록 추가한 기능 사이에 상호 연관성이 점점 늘어납니다. 나중에는 개발한 내용을 확인하는 과정을 건너뛰는 지경에 이를 수도 있죠. 그렇게 쌓이다 보면 문제가 발생했을 때 어디서부터 찾아야할지 막막해질 수 있습니다. 개발을 한 단계씩 진행할 때마다 테스트를 하면 이런 상황을 막을 수 있습니다. 테스트 주도 개발은 개발한 코드가 테스트를 만족하는지 자동으로 확인하면서 개발할 수 있도록 하는 방법입니다. 테스트 코드 작성 : 만들고 싶은 ..
[Python] 객체지향프로그래밍 - OOP (Object Orientated Programming) Object Orientated Programming in Python https://www.youtube.com/watch?v=JeznW_7DlB0 를 참고하여 작성하였습니다. 모든 Python의 구현은 Class의 Instance인 Object로 이루어집니다. 오버로딩 / 오버라이딩 오버로딩 : 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개 변수의 개수나 타입이 다르면 다르게 정의되는 것을 의미합니다. 오버라이딩 : 상속관계에 있는 부모클래스에서 이미 정의된 메소드를 자식클래스에서 같은 시그니쳐를 갖는 메소드로 재정의하는 것을 의미합니다. 특수한 메서드 파이썬에는 내..
[Python] exe 파일 만들기 (PyInstaller) Python 코드를 실행 가능한 exe 파일로 만드는 방법입니다. (Python 이 설치되어있는 상태에서 가능합니다.) PyInstaller 설치 명령프롬프트 (ex. bash) 에서 pip로 설치합니다. $ pip install pyinstaller exe 파일 만들기 Python 코드가 있는 directory 로 이동한 뒤, pyinstaller 명령어로 exe 파일로 만듭니다. 콘솔창 출력되지 않도록 만들기 실행했을 때 콘솔창이 출력되지 않도록 하려면 명령어에 -w / --windowed 를 추가하면 됩니다. 실행파일 하나만 생성하도록 만들기 명령어에 -F / -onefile 을 추가하면 됩니다. # pyinstaller codefile...
GIL, Global Interpreter Lock 멀티스레드 환경에서는 여러스레드에서 동시에 객체에 접근하려 하는 동기화 문제(Race Condition)가 발생할 수 있습니다. 이를 해결하기 위해 스레드가 객체에 접근하는 것을 막기 위한 Mutex/Semaphore 가 필요합니다. C에서 Thread를 사용할 때, 멀티스레드 환경에서 Race Condition이 일어나지 않도록 하는 것을 개발자에게 맡깁니다. 반면, Python은 GIL를 통해 인터프리터가 한 스레드만 하나의 바이트코드를 실행시키도록 Lock을 겁니다. Python 메모리 관리 Python이 할당된 메모리를 관리하는 기본적인 방식 두 가지가 있습니다. Garbage Collection Reference Counting 이 중 Refe..

2nd List Rotate Python의 내장함수 (unpack , zip ) 를 이용해서 2차원 list를 회전시킬 수 있습니다. pack / unpack Python은 * 혹은 ** 를 이용하여 container type data를 pack / unpack 할 수 있습니다. tuple, list의 경우 * 를, dict의 경우 ** 를 사용합니다. packing 은 여러개의 객체를 하나의 객체로 합쳐줍니다. * 를 붙인 매개변수에 하나 혹은 여러개의 객체가 들어올 경우 해당 객체들은 packing 되어 저장됩니다. def testFunc(*num): print(num) testFunc(5, 6, 7) # 결과 : (5, 6, 7) unpacking 은 여러개의 객체를 포함하고 있는 하나의 객체를 풀..
[Django] admin 계정 관리(생성, P/W 찾기) terminal 에서 admin 계정 만들기 $ python mange.py createsuperuser Django Framework Admin 계정의 P/W 찾기 기능을 미리 만들어두지 않았다면, 비밀번호를 잊어버렸을 때 난감한 상황이 찾아올 수 있습니다. Terminal에서 admin 계정 찾고 비밀번호를 변경할 수 있습니다. (Ver 기준 : django 3.x) terminal 에서 admin 계정을 찾기 Django Project directory로 이동 (manage.py 파일이 있는 directory) django shell python manage.py shell shell에 정상적으로 진입했다면 >>> 표시가 나옵니다. shel..
Python 가상환경 파이썬으로 개발을 진행하면서 목적에 맞게 새로운 패키지와 모듈을 사용하게 됩니다. Django 개발을 위해 환경구축을 할 때, 여러가지 버전 중 특정 버전을 사용하여 개발하기 위해 가상환경을 구축하여 분리해 개발을 진행했습니다. 이처럼 응용프로그램에 특정 버전의 라이브러리가 필요한데, 같은 시스템의 다른 응용 프로그램에서는 다른 버전이 필요한 경우가 생길 수 있습니다. 가상환경을 구축함으로써 환경을 분리하여 이를 가능하게 할 수 있습니다. Virtual environment Python에서 가상환경을 만들고 관리하는데 사용하는 모듈은 venv 입니다. 만약 여러 Python 버전이 있다면 구축한 가상환경에서 사용할 Python 버전을 선택할 수 있습니다. 가상환경이란, 같은 시스템에..
Comment