왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ComputerVision
  • 의료이미징
  • imageprocessing
  • numpy
  • PYTHON
  • alibidetect
  • UnboundLocalError
  • ckpt_file
  • labelme UnocodeDecodeError
  • 기상탐사
  • 영상처리
  • maskimage
  • pip install labelme
  • OpenCV
  • yolov8
  • 딥러닝
  • 영상기술
  • labelme
  • PIL
  • 비지도학습
  • matplotlib
  • unsupervised
  • TensorFlow
  • 영상처리역사
  • 컴퓨터비전
  • tune()
  • pytorch
  • encoding='utf-8'
  • alibi-detection
  • get_long_description

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

애플리케이션에서 데이터베이스 cursor와 connection 닫는 이유
IT 기술 용어

애플리케이션에서 데이터베이스 cursor와 connection 닫는 이유

2023. 4. 20. 17:36
728x90

 

소개:

데이터베이스로 작업할 때 cursor와 connection을 적절하게 관리하는 것이 중요합니다.

데이터베이스 커서 및 연결을 닫는 것의 중요성과 그렇게 하지 않을 경우에 대한 잠재적인 결과에 대해 설명합니다.

 

 

 

1. 리소스 관리:

 

    데이터 베이스 연결 및 커서를 닫으면 메모리 및 파일 핸들과 같은 시스템 리스소를 효율적으로 관리하는 데 도움이 됩니다.

이는 리소스 누수가 성능 저하 및 심지어 충돌로 이어질 수 있으므로 장기 실행 애플리케이션이나 많은 수의 연결을 처리하는 애플리케이션에 특히 중요합니다.


 

2. 연결 풀링:

    많은 데이터베이스 시스템은 연결 풀링을 사용하여 연결을 재사용하고 각 쿼리에 대한 새 연결을 설정하는 오버헤드를 줄임으로써 성능을 향상시킵니다.

연결을 닫으면 풀로 반환되고 응용 프로그램의 다른 부분에서 사용할 수 있습니다.

연결을 닫지 못하면 사용 가능한 연결 수가 줄어들어 잠재적으로 성능 문제나 교착 상태가 발생할 수 있습니다.


3. 거래 관리:

    연결을 닫으면 데이터베이스 시스템의 구성에 따라 보류 중인 트랜잭션이 커밋되거나 롤백됩니다.

이는 데이터베이스에서 데이터의 일관성과 무결성을 유지하는 데 도움이 됩니다.

보류 중인 트랜잭션이 있는 연결을 열린 상태로 두면 데이터 불일치, 잠금 또는 교착 상태가 발생할 수 있습니다.


 

4. 동시성 제어:

    커서 및 연결을 닫으면 리소스가 적시에 해제되도록 하여 애플리케이션의 동시성을 관리하는 데 도움이 됩니다.

이렇게 하면 애플리케이션의 다른 부분이 데이터베이스에 액세스할 수 있고 공유 리소스에 대한 충돌이나 경합을 방지할 수 있습니다.


결론 : 

 

요약하면, 시스템 리소스를 관리하고, 연결 풀링을 통해 성능을 개선합니다, 또 데이터의 일관성과 무결성을 유지하며 동시성을 효과적으로 관리하기위해서 응용 프로그램에서 데이터베이스 커서와 연결을 닫는 것은 필수적입니다. 이렇게 하면 잠재적인 문제를 방지하고 애플리케이션의 안정성과 신뢰성을 보장할 수 있습니다.

 

이 글을 쓰기 전에는, 그냥 형식적으로 습관적으로 커서와 연결을 닫고 코딩을 진행을 했었는데, 이렇게 내용을 정리하고보니 정말 좋은 습관을 들였었구나 하며 다행으로 생각합니다.

'IT 기술 용어' 카테고리의 다른 글

[DB] 트랜잭션 (Transaction )  (0) 2023.04.19
RDBMS vs NoSQL  (0) 2023.04.18
REST API  (1) 2023.04.17
[백엔드] Django vs Flask vs FastAPI  (0) 2023.04.17
MySQL - 데이터베이스 인덱스(Index) 기본 개념과 설명 / 단점 / Cardinality  (0) 2023.03.31
    'IT 기술 용어' 카테고리의 다른 글
    • [DB] 트랜잭션 (Transaction )
    • RDBMS vs NoSQL
    • REST API
    • [백엔드] Django vs Flask vs FastAPI
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바