본문 바로가기
IT

Python으로 DB 연결 실습 예제 - SQLAlchemy 활용하기

by 카카오망고 2025. 5. 2.
반응형
SQLAlchemy 활용하기

목차

    👉Python으로 DB 연결 실습 예제 바로가기

    SQLAlchemy 활용하기

    최근 데이터 관리와 처리의 중요성이 점점 더 강조되고 있습니다. 회사에서 SQLAlchemy를 사용하여 Python으로 데이터베이스를 관리하는 경험을 통해, 프로그래밍과 데이터베이스 기술의 융합이 얼마나 중요한지를 깨닫게 되었습니다. 데이터베이스를 다루는 기술은 단순히 데이터를 저장하는 것을 넘어서, 데이터를 어떻게 효율적으로 검색하고 처리할 수 있는가에 대한 기술적 접근이 필요합니다. 특히 SQLAlchemy와 같은 ORM(Object Relational Mapper) 라이브러리는 Python 코드로 데이터베이스를 조작할 수 있도록 도와주며, 이를 통해 개발자는 SQL 문법에 대한 부담을 덜고 데이터베이스 작업을 더 직관적으로 수행할 수 있습니다.

     

    이 블로그에서는 Python으로 데이터베이스에 연결하는 기본적인 실습 예제를 다루어 보겠습니다. SQLAlchemy를 이용하여 데이터베이스에 연결하고, 데이터를 삽입, 조회, 업데이트, 삭제하는 과정까지 알아보는 시간을 가질 것입니다. 초보자부터 중급자까지, 데이터베이스와 Python에 대한 이해를 높일 수 있는 기회가 되길 바랍니다. 또한, 실습을 통해 각 단계별로 발생할 수 있는 오류와 해결 방법도 함께 살펴보겠습니다.

    SQLAlchemy란?

    SQLAlchemy는 Python에서 데이터베이스를 다루도록 설계된 강력한 라이브러리입니다. ORM의 기능을 지원하여 SQL 문법을 직접 사용하지 않고도 데이터베이스 작업을 수행할 수 있습니다. SQLAlchemy는 다양한 데이터베이스 시스템을 지원하며, MySQL, PostgreSQL, SQLite 등 여러 관계형 데이터베이스와 호환됩니다. 이 라이브러리는 두 가지 주요 방식으로 데이터베이스를 다룰 수 있습니다: ORM 방식과 Core 방식으로, 사용자의 필요에 따라 선택할 수 있습니다.

    • ORM 방식: 데이터베이스의 테이블을 Python 클래스와 매핑하여 객체 지향적으로 조작할 수 있게 합니다.
    • Core 방식: SQLAlchemy의 SQL 표현식을 사용하여 직접 SQL 쿼리를 작성하고 실행할 수 있습니다.

    SQLAlchemy는 고성능과 확장성을 제공하여 대규모 프로젝트에서도 안정적으로 사용할 수 있습니다. 이러한 장점 덕분에 많은 개발자들이 SQLAlchemy를 선호하게 되었습니다. 데이터베이스를 처음 접하는 분들이더라도 SQLAlchemy를 통해 데이터베이스의 구조와 동작 방식을 쉽게 이해할 수 있을 것입니다.

    SQLAlchemy 설치하기

    SQLAlchemy를 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 합니다. Python의 패키지 관리자인 pip를 통해 간단히 설치할 수 있습니다. 가상 환경을 활용하여 설치하는 것이 좋습니다. 가상 환경을 설정함으로써 프로젝트마다 필요한 패키지를 독립적으로 관리할 수 있습니다.

    • 가상 환경 생성: python -m venv venv
    • 가상 환경 활성화: venv\Scripts\activate (Windows) / source venv/bin/activate (macOS/Linux)
    • SQLAlchemy와 드라이버 설치: pip install sqlalchemy pymysql

    이 과정을 통해 정상적으로 설치가 완료되면, SQLAlchemy를 사용하여 데이터베이스에 연결할 준비가 완료된 것입니다. 설치가 완료된 후에는 아래와 같은 명령어로 설치 여부를 확인할 수 있습니다.

    명령어 설명
    pip show sqlalchemy SQLAlchemy 설치 여부 확인
    pip list 설치된 패키지 목록 확인

    👉Python으로 DB 연결 실습 예제 바로 보기

    DB 연결하기

    DB 연결을 위해서는 SQLAlchemy의 create_engine 함수를 사용하여 연결 엔진을 생성합니다. 아래 예제는 MariaDB에 연결하는 코드입니다. 데이터베이스의 사용자, 비밀번호, 호스트, 데이터베이스 이름을 입력하여 연결 문자열을 설정합니다.

     

    다음은 MariaDB에 연결하는 기본 코드입니다:

    • 데이터베이스 URL 생성: "mysql+pymysql://username:password@localhost/dbname"
    • SQLAlchemy 엔진 생성: create_engine(DATABASE_URL)
    • 연결 테스트: engine.connect()

    코드를 실행하면 데이터베이스와의 연결 상태를 확인할 수 있습니다. 연결이 성공하면 SELECT 1 쿼리를 실행하여 정상적으로 연결되었는지 확인합니다. 실패할 경우, 잘못된 사용자 정보나 데이터베이스 설정을 점검해야 합니다.

    데이터 추가하기

    데이터베이스에 데이터를 추가하려면 SQLAlchemy의 세션을 사용해야 합니다. 세션을 통해 데이터베이스와 상호작용할 수 있으며, 데이터를 추가하고 커밋하는 방식으로 작업을 수행합니다. 아래는 데이터를 추가하는 기본적인 절차입니다.

    • 세션 생성: Session = sessionmaker(bind=engine)
    • 데이터 추가: session.add(instance)
    • 변경 사항 커밋: session.commit()

    예를 들어, 사용자의 정보를 데이터베이스에 추가하는 코드는 아래와 같습니다. 세션을 사용하여 데이터를 추가한 후에 반드시 커밋을 수행해야 변경 사항이 데이터베이스에 반영됩니다.

    데이터 조회하기

    SQLAlchemy를 통해 데이터베이스에서 데이터를 조회하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 세션을 사용하여 쿼리를 작성하는 것입니다. 아래는 SQLAlchemy의 ORM을 통해 데이터를 조회하는 예제입니다.

    • 모델 정의: class User(Base): ...
    • 데이터 조회: session.query(User). filter(User.age > 21). all()
    • 결과 출력: for user in users: print(user.name)

    위 코드를 통해 age가 21보다 큰 사용자의 정보를 조회할 수 있습니다. ORM을 사용하면 SQL 쿼리를 작성하지 않고도 편리하게 데이터베이스와 상호작용할 수 있습니다.

    데이터 업데이트 및 삭제하기

    데이터베이스에서 기존 데이터를 업데이트하거나 삭제하는 것도 SQLAlchemy로 간단하게 수행할 수 있습니다. 업데이트는 객체의 속성을 수정한 후 세션을 커밋하여 반영하고, 삭제는 session.delete(instance) 메서드를 사용하여 객체를 제거한 후 커밋합니다.

    • 데이터 업데이트: user.age = 30, session.commit()
    • 데이터 삭제: session.delete(user), session.commit()

    이러한 방식으로 데이터를 관리하면 SQLAlchemy의 ORM을 통해 효율적으로 데이터베이스를 유지관리할 수 있습니다.

    FAQ

    Q: SQLAlchemy를 사용할 때 가장 주의해야 할 점은 무엇인가요?

     

    A: SQLAlchemy를 사용할 때는 세션을 적절하게 관리하는 것이 중요합니다. 세션을 계속해서 열어두면 메모리 누수로 이어질 수 있기 때문에 필요할 때만 세션을 열고 작업이 끝난 후에는 항상 세션을 닫는 것이 좋습니다.

     

    Q: SQLAlchemy에서 오류가 발생했을 때 어떻게 해결하나요?

     

    A: SQLAlchemy에서 발생하는 오류는 다양합니다. 오류 메시지를 통해 어떤 문제가 발생했는지 확인하고, 해당 오류에 맞는 해결책을 찾는 것이 중요합니다. 예를 들어, 'No module named' 오류는 라이브러리가 설치되지 않았음을 의미합니다.

    결론

    이번 블로그에서는 Python으로 SQLAlchemy를 사용하여 데이터베이스에 연결하고 데이터를 조작하는 기본적인 방법을 살펴보았습니다. SQLAlchemy는 Python과 데이터베이스의 원활한 상호작용을 가능하게 해주는 강력한 도구로, 프로그래밍 언어를 넘어 데이터베이스 관리에 대한 이해를 높일 수 있는 기회를 제공합니다. 실습을 통해 SQLAlchemy의 다양한 기능을 경험하고, 이를 통해 데이터베이스 운영에 대한 자신감을 가질 수 있기를 바랍니다. 데이터베이스를 다루는 기술은 앞으로도 더욱 중요해질 것이며, 이러한 기술적 이해가 여러분의 경력에 큰 도움이 될 것입니다.

    👉Python으로 DB 연결 실습 예제 알아보기

    반응형