Skip to main content
이 문서는 Lakebase 섹션의 일부입니다.

OAuth 인증 패턴

Databricks Apps에서 Lakebase에 접근할 때, 두 가지 인증 패턴을 사용할 수 있습니다.

앱 인증 (Service Principal)

앱 자체가 하나의 서비스 계정으로 인증합니다. 모든 사용자의 요청이 동일한 권한으로 처리됩니다.

사용자 인증 (User Passthrough)

각 사용자의 Databricks 인증을 그대로 Lakebase에 전달합니다. 사용자별로 다른 권한을 적용할 수 있습니다.

커넥션 풀링 설정

프로덕션 앱에서는 커넥션 풀링(Connection Pooling) 이 필수입니다. 매 요청마다 새 연결을 생성하면 성능이 크게 저하됩니다.
💡 커넥션 풀링(Connection Pooling): 데이터베이스 연결을 미리 여러 개 만들어 놓고, 요청이 올 때마다 재사용하는 기법입니다. 연결 생성/종료의 오버헤드를 줄여 응답 속도를 크게 향상시킵니다.

psycopg2 ThreadedConnectionPool

풀 크기 가이드라인

⚠️ maxconn 과다 설정 주의: 커넥션 풀의 최대 크기를 Lakebase 인스턴스의 최대 연결 수보다 크게 설정하면 연결 실패가 발생할 수 있습니다. 여러 앱이 동일한 Lakebase에 접속하는 경우, 전체 연결 수를 고려하여 설정하시기 바랍니다.

트랜잭션 관리

OLTP 앱에서 트랜잭션(Transaction) 관리는 데이터 정합성의 핵심입니다.
💡 ACID 트랜잭션: Lakebase는 PostgreSQL과 동일한 ACID(원자성, 일관성, 격리성, 지속성) 트랜잭션을 지원합니다. commit()이 호출될 때까지 변경사항은 다른 연결에서 보이지 않으며, rollback()으로 모든 변경을 취소할 수 있습니다.

에러 처리 패턴

프로덕션 앱에서는 체계적인 에러 처리가 필수입니다.