개요
Python에서 데이터베이스를 사용하는 프로그램을 개발할 때, argparse 모듈을 사용하여 유연하게 명령줄 인자를 처리하고, 데이터베이스 연결 및 작업을 수행할 수 있습니다. 이 블로그 포스트에서는 argparse와 데이터베이스를 연동하여 간단한 데이터베이스 작업을 수행하는 방법에 대해 알아보겠습니다.
argparse란?
argparse는 Python의 명령줄 인자 파싱을 위한 표준 라이브러리입니다. 이를 사용하면 명령줄에서 입력된 인자들을 쉽게 처리할 수 있습니다. argparse는 사용자에게 몇 가지 필수 및 선택적 인자를 입력하도록 도움을 주며, 올바른 인자를 입력하거나 도움말을 출력할 수도 있습니다.
데이터베이스 연결 설정하기
먼저 데이터베이스에 연결하기 위해 필요한 인자들을 argparse를 사용하여 설정할 수 있습니다. 다음은 데이터베이스 종류, 호스트, 사용자 이름, 비밀번호 등을 인자로 받는 예제입니다.
import argparse
def parse_arguments():
parser = argparse.ArgumentParser(description='Database Settings')
parser.add_argument('--db-type', type=str, help='Database type')
parser.add_argument('--host', type=str, help='Database host')
parser.add_argument('--username', type=str, help='Database username')
parser.add_argument('--password', type=str, help='Database password')
args = parser.parse_args()
return args
위 코드에서는 argparse.ArgumentParser()
를 통해 parser
객체를 생성합니다. add_argument()
메서드를 사용하여 각 인자를 추가하고, type
과 help
인자를 설정합니다. 이렇게 하면 사용자가 인자 없이 프로그램을 실행하거나, 잘못된 인자를 입력한 경우에 도움말이 출력됩니다.
데이터베이스 연결 및 작업 수행하기
argparse를 사용하여 데이터베이스에 연결한 후, 해당 연결을 사용하여 원하는 작업을 수행할 수 있습니다. 아래의 예제는 데이터베이스에 연결하고, 사용자의 정보를 입력받아 특정 테이블에 새로운 데이터를 삽입하는 코드입니다.
import argparse
import psycopg2
def connect_to_database(db_type, host, username, password):
# 데이터베이스에 연결
conn = psycopg2.connect(
database=db_type,
host=host,
user=username,
password=password
)
return conn
def insert_data_to_table(conn, table_name, data):
# 데이터 삽입
cursor = conn.cursor()
# INSERT 문 실행
cursor.execute(f"INSERT INTO {table_name} VALUES (%s, %s, %s)", data)
# 변경사항 커밋
conn.commit()
cursor.close()
def main():
# 명령줄 인자 파싱
args = parse_arguments()
# 데이터베이스 연결
conn = connect_to_database(args.db_type, args.host, args.username, args.password)
# 데이터 입력
data = ('John', 'Doe', 'example@example.com')
insert_data_to_table(conn, 'users', data)
# 연결 종료
conn.close()
if __name__ == '__main__':
main()
위 코드에서는 connect_to_database()
함수로 데이터베이스에 연결하고, insert_data_to_table()
함수로 데이터를 특정 테이블에 삽입합니다. 이 코드는 PostgreSQL을 사용한다고 가정하고 작성되었으며, 필요한 경우 데이터베이스 종류에 따라 코드를 수정해야 합니다.
마무리
argparse를 사용하여 명령줄 인자를 처리하고, 데이터베이스 연결 및 작업을 수행하는 방법에 대해 알아보았습니다. 이를 통해 Python에서 데이터베이스와 상호작용하는 프로그램을 더욱 효율적으로 개발할 수 있습니다. argparse의 다양한 기능과 데이터베이스 모듈들의 API를 적절히 활용하면 보다 복잡한 데이터베이스 작업도 쉽게 처리할 수 있습니다.