[Python] Jira API 사용하기 현재 업무에서 협업 도구로 Atlassian의 Jira를 사용하고있다.얼마전 파이썬에서 지라를 불러와 태스크를 자동화하는 업무를 맡아서 진행했었는데. 그 때 사용했던 것이 Jira 라이브러리였다.해당 라이브러리에 대해 이번 포스팅에서 다뤄보고자 한다. JIRA APIJIRA REST API를 사용하면 JIRA의 데이터를 프로그래밍적으로 다룰 수 있다.프로젝트 정보 조회이슈 생성, 업데이트, 삭제사용자 관리댓글, 파일 첨부 등 다양한 작업파이썬에서는 Atlassian이 제공하는 Jira 라이브러리를 사용해 JIRA API에 쉽게 접근이 가능하다. JIRA 라이브러리 설치 및 환경 설정먼저 jira 라이브러리를 설치해준다.pip install jiraJira API는..
[Pandas] 데이터프레임 컬럼 순서 변경하기데이터 프레임을 다루다보면, 데이터 프레임의 컬럼 순서를 변경해야하는 경우가 종종 있다.이번 포스팅에선 데이터프레임의 컬럼 순서를 변경하는 몇 가지 방법에 대해 알아보고자 한다. 샘플 데이터 프레임 생성먼저 다음과 같이 데이터 프레임을 생성해준다.import pandas as pd data = { 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}df = pd.DataFrame(data) reindex`reindex` 메소드를 사용하면 원하는 순서로 컬럼을 재배치 할 수 있다.new_order = ['C', 'A', 'B']df_reordered = df.reindex(columns=new_order) 직접 ..
[Pandas] 결측값 처리얼마전 데이터프레임을 다루면서, 결측치(`NaN`)가 있으면 같은 행의 데이터로 덮어씌우는 방식으로 결측치를 처리한 적이 있었다. Pandas에는 이러한 결측값을 효과적으로 처리할 수 있는 다양한 방법이 있어, 해당 방법을 정리해보고자 한다. 결측값 확인하기데이터 프레임에서 결측값을 확인하는 것은 결측값 처리를 시작하는 첫 단계이다.결측값을 확인 하기 위해 다음과 같은 메서드를 사용할 수 있다.import pandas as pddata = {'A': [1, 2, None], 'B': [None, 3, 4]}df = pd.DataFrame(data)## isnull()# isnull() 메서드는 각 요소가 결측값인지 여부를 Boolean 값으로 반환한다.df.isnull()## ..
[Pandas] SQL 쿼리로 데이터프레임으로 불러오기 (read_sql)`read_sql`은 SQL 쿼리의 결과를 Pandas 데이터 프레임으로 불러오는 방법을 제공한다. 데이터베이스의 데이터를 직접 조작하고 시각화할 때 주로 사용한다. read_sql()일반적으로 SQLAlchemy 엔진 또는 데이터베이스 커넥션 객체(sqlite3)와 함께 사용된다.이 함수는 `SELECT` 쿼리 뿐만 아니라 테이블 전체를 가져오는 기능도 지원한다.import pandas as pddf = pd.read_sql(sql, con) SELECT 쿼리를 실행하여 DataFrame으로 불러오기이 포스팅에선 `SQLAlchemy` 엔진을 생성하여 쿼리를 실행하고 데이터프레임으로 불러온다.먼저 SQLAlchemy 패키지를 설치..
[Python] Tabulate Tabulate란?Python의 tabulate 라이브러리는, 데이터를 표 형식으로 쉽게 출력할 수 있는 유용한 도구다.tabulate를 사용하면 리스트, 딕셔너리, Numpy 배열 등 다양한 데이터 구조를 읽기 쉬운 표로 변환할 수 있다.기본 사용법`tabulate` 라이브러리는 아래 명령어를 통해 설치가 가능하다.pip install tabulate먼저 리스트를 사용해 간단한 표를 만들어보자. from tabulate import tabulatedata = [ ["이름", "나이", "직업"], ["홍길동", 25, "개발자"], ["김철수", 30, "디자이너"], ["이영희", 22, "학생"]]table = tabulate(data, head..
[Python] Asyncioasyncioasyncio는 asycn/await 구문을 사용하여 동시성 코드를 작성하는 라이브러리다.asyncio는 고성능 네트워크 및 웹서버, 데이터베이스 연결 라이브러리, 분산 작업 큐 등을 제공하는 여러 파이썬비동기 프레임워크의 기반으로 사용된다. import asyncioasync def main(): print('Hello ...') await asyncio.sleep(1) print('... World!')asyncio.run(main()) asyncio는 다음과 같은 API를 제공한다.고수준 API코루틴, 네트워크 IO/IPC, Queue, 동기화 저수준 API이벤트 루프, Transport, Future Runnerasyncio.run(coro..
[Python] 동시성 프로그래밍 (2) 코루틴(Coroutine) 동시성 (Concurrency) 과 병렬성 (Parallelism) 동시성(Concurrency)이란, 여러 작업이 겹쳐서 실행될 수 있는 방식을 의미한다.이를테면, 여러 작업이 동시에 실행되는 것처럼 보이지만, 실제로는 CPU가 짧은 시간 단위로 여러 작업을 번갈아가면서 처리하는 방식이다. 병렬성(Parallelism)이란, 여러 작업을 실제로 동시에 처리하는 것을 의미한다. 즉, 여러 CPU코어가 각각 별도의 작업을 동시에 수행하는 방식이다. 병렬성은 실제로 물리적인 여러 프로세서나 CPU 코어가 필요하다. 즉, 동시성은 "논리적"에 가깝고 병렬성은 "물리적"에 가깝다. 코루틴(Coroutine)코루틴은 파이썬을 비롯한 여러 프로그래..
[Python] 동시성 프로그래밍 (1) 프로세스, 스레드동시성 프로그래밍은 여러 작업을 동시에 수행할 수 있도록 하는 프로그래밍 기법이다.이는 여러 프로세스나 스레드를 사용하여, 동시에 실행되는 프로그램을 작성하는 것을 포함한다. 동시성 프로그래밍은 특히 멀티코어 프로세서와 네트환경에서 중요하며, 이 방식은 다음과 같은 두 가지 주요 개념들을 포함한다.병렬성 (Parallelism)여러 작업이 동시에 실행되는 것비동기성 (Asynchrony)작업이 시작된 후, 그 작업이 완료될 때 까지 기다리지 않고 다른 작업을 수행 프로세스(Process) 스레드(Thread)멀티코어 프로세서의 발전으로, CPU의 모든 코어를 활용하여 작업을 병렬로 처리함으로써 처리 시간을 단축할 수 있다. CPU는 프로세스를 실행..
[Python] pip freeze 명령어 사용 시 패키지 버전이 제대로 나오지 않을 때현재 서버의 패키지 버전을 확인하여 패키지의 취약점을 검사를 해야하는 일이 있었는데,pip freeze 명령어로 버전을 확인할 때 버전명이 다음과 같이 명시가 되는 경우가 있다.jsonpatch @ file:///home/conda/...찾아보니 pip 19.1 버전부터 일반 버전 지정자 대신 직접 참조를 사용하도록 허용을 한다고 한다.직접 참조는 위와 같이 지정자 @와 명시적 URL로 구성된다. PEP 440 – Version Identification and Dependency Specification | peps.python.orgThis PEP describes a scheme for identifying ve..
[Python][bs4] BeautifulSoup4에서 텍스트로 파싱하기저번에 파이썬으로 웹 크롤링을 할 수 있는 BeautifulSoup 라이브러리에 대해 간략하게 포스팅을 했었다. 이번에 BS4를 이용하여 HTML 문서를 파싱을 해야하는 일이 있었는데, 해당 문서가 tag만 있고 id값이나 class값이 없어 원하는 값을 파싱하기 매우 곤란한 상황이였다...😥 믿을건 태그값 내의 텍스트 밖에 없어서, 이번 포스팅에서 bs4를 이용해 텍스트 데이터를 파싱하는 방법에 대해 알아보고자 한다. BeautifulSoup4의 기본 사용법은 다음 포스팅을 참고하면 된다. [Python] Beautiful Soup(bs4)[Python] Beautiful Soup(bs4)파이썬(Python)에는 여러 웹 스크래핑..
[Python] globglobglob 모듈은 파일 및 디렉토리 경로를 패턴으로 검색할 수 있도록 도와주는 파이썬의 기본 라이브러리다.이를 활용하면 특정 확장자나 이름을 가진 파일을 쉽게 찾아낼 수 있다. 모듈 사용법1. 기본 사용법먼저 모듈을 import 해준다.import globglob은 파일 경로 패턴을 매칭하여 해당하는 파일들의 리스트를 반환한다.간단한 예제로 현재 디렉토리에서 모든 파일을 검색해보자.files = glob.glob(*)print(files)## result['file1.txt', 'scripts.py', 'image.jpg'] 2. 특정 확장자의 파일 검색특정 확장자의 파일만 검색하고 싶다면, 파일명 뒤에 확장자를 명시하면 된다.예를 들어 .txt 파일만 검색해보자.txt_fi..
[Python] SQLAlchemy 이해하기 SQLAlchemy란?SQLAlchemy는 파이썬을 위한 강력한 SQL 도구이자 객체 관계 매핑(ORM) 라이브러리다.개발자들에게 데이터베이스와 상호 작용할 수 있는 효율적이고 유연한 인터페이스를 제공하며,복잡한 쿼리 실행, 데이터베이스 스키마 조작, 파이썬 객체와의 통합을 쉽게 할 수 있다. SQLAlchemy는 크게 두 가지 주요 구성 요소로 나눌 수 있다.CoreSQL 표현 언어를 사용하여 데이터베이스와 직접 상호 작용하는 레이어SQLAlchemy의 기본 기능으로, 데이터베이스 쿼리를 직접 작성하고 실행할 수 있음ORM (Object-Relational Mapper)SQLAlchemy의 객체 관계 매핑 레이어파이썬 클래스와 데이터베이스 테이블 간의 매핑을..