vscode에서 black으로 code format 자동화하기 (python)

이번 게시물에선 python의 강력한 code formatter인 black을 vscode에서 사용해보도록 하겠습니다. 기업의 개발팀에서는 큰 규모의 코드를 다루다 보니, 코드 통일 및 재사용을 위해 code convention을 진행하고 code style이나 format를 설정합니다. black은 파이썬 코드 스타일인 pep8에 따라 코드를 자동으로 포맷해줍니다. 따라서 일일이 손으로 형식을 맞춰줄 필요가 없고, 생각보다 직관적으로 코드를 변환해줍니다. 0. vscode에 python Extension 설치하기 이 단계는 vs code를 사용하는 python 개발자라면 필수이기 때문에 생략하겠습니다. 1. 현재 작업 환경에 black 패키지 설치하기 우선 pip를 통해 black을 설치합니다. 호스트..

vscode n번째 글자에 세로선 추가하기 (easy)

보기좋은 코드를 작성하기위해 최대 코드 길이를 지정해놓은 분들이 계실겁니다. 보통 pep8이나 google python 가이드를 따르면서 최대 79자, 80자, 100자, 120자 등 개발자나 팀마다 다르게 다양한 코드 길이를 사용합니다. 오늘은 vscode에서 간단한 세팅으로 원하는 maximum line length에 표시를 해봅시다. (10초만에 설정 가능합니다.) 1. vscode를 켜고 F1을 눌러 settings.json 파일을 엽니다. Preferences: Open Settings (JSON)을 클릭. 환경에 따라 다른 파일도 가능합니다. 2. editor.ruler를 추가합니다. 아래 내용을 settings.json에 삽입합니다. { ... "editor.rulers": [ { "colu..

python joblib으로 병렬 프로그래밍을 해보자

효율적인 프로그래밍을 위해 병렬 프로그래밍을 하곤 합니다. 특히 대용량의 데이터을 처리할 때 필수적이죠. joblib은 파이썬 프로그래밍에서 병렬처리를 가능하게 만들어줍니다. 파이썬에는 병렬 연산을 위한 디폴트 패키지로 multiprocessing이 있습니다. multiprocessing은 pandas의 DataFrame을 다루는 데에 유용하며, joblib은 일반적인 python 코딩에 두루두루 쓰입니다. joblib의 dump, load 메소드는 python 객체를 저장하거나 불러오게끔 할 수 있기에, 머신러닝 프로젝트에서 모델을 저장하기에 유용하게 쓰이지만, 본 게시물에서는 병렬 처리를 도와주는 joblib의 Parallel, delayed에 대한 설명을 하겠습니다. 😁 설치 pip install ..

python *args **kwargs 차이

python 함수에 인자를 넣는 방법에는 단순한 방법도 있지만, *args와 **kwargs를 활용할 수도 있습니다. *args *args는 동시에 여러 입력값을 주고 싶을 때 사용합니다. 사실 * 다음에오는 args가 아니어도, elements, argument, ggggg, ksdfkjasdlfkja 등 원하는 변수를 사용하면 됩니다. **kwargs도 마찬가지입니다. *args를 사용하면 함수 내에서 tuple처럼 사용 가능합니다. 입력값을 굳이 list나 tuple로 주지 않아도 됩니다. **kwargs keyword arguments로 생각하시면 됩니다. *args에서 더 나아가 입력값의 키워드를 함께 줄 때 사용합니다. **kwargs를 이용하면 특정 조건에 따라 다른 동작을 하도록 코드를 짤..

Python Priority Queue(우선순위 큐) 객체 정렬하기

일반적으로 Queue는 FIFO 형식의 자료구조지만, Priority Queue는 들어간 순서에 상관없이 데이터의 크기에 따라 정렬됩니다. 따라서 heap구조와 비슷하다고 볼 수있습니다. 이를 파이썬으로 구현하려면 queue 혹은 heapq를 이용하면 되는데요. import queue q = queue.PriorityQueue() q.put(5) q.put(2) q.put(3) q.put(1) while not q.empty(): print(q.get()) #출력 1 2 3 5 위와같이 순서를 달리해도 정렬되서 출력이 됩니다. 그러나 파이썬 프로그래밍을 할 때에는 단순 숫자가 아닌 객체를 넣기도 하는데요. 아래와 같이 코드를 입력하고 실행하면 에러가 발생합니다. class Data: def __init_..