Skip to content

4주차 학습정리 ‐ 유동근

유동근 edited this page Jul 19, 2024 · 11 revisions

jdbc 드라이버 구현체

Driver

DriverAction

DriverAction 인터페이스는 Java Database Connectivity (JDBC) API에서 도입된 인터페이스로, JDBC 드라이버의 종료 작업을 커스터마이즈하는 데 사용됩니다. 이 인터페이스는 Java 9에서 추가되었으며, 주로 DriverManager 클래스와 함께 사용됩니다.

DriverAction 인터페이스는 단 하나의 메서드를 정의합니다:

주요 메서드 void deregister(): 이 메서드는 JDBC 드라이버가 DriverManager에서 제거될 때 호출됩니다. 드라이버가 더 이상 사용되지 않을 때 리소스를 정리하거나 드라이버 관련 작업을 마무리하는 데 유용합니다.

CallableStatement

CallableStatement는 Java Database Connectivity (JDBC) API에서 사용되는 인터페이스로, 데이터베이스에서 저장 프로시저와 저장 함수를 호출하는 데 사용됩니다. CallableStatement는 JDBC API에서 PreparedStatement의 하위 인터페이스로 제공되며, SQL의 실행과 결과 처리에 필요한 메서드를 추가로 제공합니다.

DatabaseMetaData

DatabaseMetaData는 Java Database Connectivity (JDBC) API에서 사용되는 인터페이스로, 데이터베이스의 구조에 대한 다양한 정보를 제공하는 데 사용됩니다. 이를 통해 애플리케이션은 데이터베이스의 메타데이터, 즉 데이터베이스 자체에 대한 정보를 쿼리할 수 있습니다.

주요 기능 DatabaseMetaData 인터페이스는 데이터베이스, 테이블, 열, 인덱스, 사용자 권한 등에 대한 정보를 제공하는 다양한 메서드를 정의하고 있습니다. 이러한 메서드를 사용하여 데이터베이스의 스키마 구조와 기능을 동적으로 탐색할 수 있습니다.

SRV record

SRV 레코드는 다른 DNS 레코드들이 ip 주소나 호스트 주소만을 제공하는 것과 다르게 다양한 정보를 포함하고 있습니다.

이를 통해서 부하분사, fail over와 같은 기능을 구현할 수 있습니다.

SRV 레코드에는 서비스, 프로토콜, 우선순위, 가중치, 포트, 타켓 정보를 지니고 있습니다.

  • sample
; _service._proto.name.  TTL   class SRV priority weight port target.
_sip._tcp.example.com.   86400 IN    SRV 10       60     5060 bigbox.example.com.
_sip._tcp.example.com.   86400 IN    SRV 10       20     5060 smallbox1.example.com.
_sip._tcp.example.com.   86400 IN    SRV 10       20     5060 smallbox2.example.com.
_sip._tcp.example.com.   86400 IN    SRV 20       0      5060 backupbox.example.com.

우선순위 vs 가중치

SRV 레코드는 나열하는 다양한 서버의 "우선 순위" 및 "가중치"를 나타냅니다. SRV 레코드의 "우선 순위" 값을 사용하면 관리자가 지정된 서비스를 지원하는 서버의 우선 순위를 다른 서버보다 우선시할 수 있습니다. 우선 순위 값이 낮은 서버는 다른 서버보다 더 많은 트래픽을 수신합니다. 그러나 "가중치" 값은 비슷하므로 가중치가 높은 서버가 우선 순위가 같은 다른 서버보다 더 많은 트래픽을 수신합니다.

이들 서버 사이의 주요 차이점은 우선 순위가 먼저 고려된다는 사실입니다. 서버 A, 서버 B, 서버 C의 세 서버가 있고 각각의 우선 순위가 10, 20, 30인 경우 "가중치"는 중요하지 않습니다. 서비스는 항상 서버 A를 먼저 쿼리합니다.

그러나 서버 A, B, C의 우선 순위가 모두 10이라고 가정하면 서비스는 셋 중 하나를 어떻게 선택할까요? 서버 A의 "가중치" 값이 5이고 서버 B와 C의 "가중치" 값이 3과 2인 경우 서버 A가 가장 많은 트래픽을 수신하고 서버 B가 두 번째로 많은 트래픽을 수신하며 서버 C가 세 번째로 많은 트래픽을 수신합니다.

로드 밸런싱

가중치 값을 통해서 로드 밸런싱을 구현할 수 있습니다. 가중치는 0-65535 범위의 값을 가질 수 있습니다. 동일한 우선순위를 가지는 레코드들에 할당된 우선순위의 값을 통해서 요청을 고르게 분산시킬 수 있습니다.

fail over

우선 순위를 통해서 fail over를 구현할 수 있습니다. 우선순위가 높은 서비스에서 장애가 발생하면 다음 우선 순위를 가지는 서버로 요청을 전송하게 됩니다.

우선 순위 역시 0-65535값을 가지며 낮을 수록 높은 우선 순위를 나타냅니다.

참고

rfc2782 DNS SRV RR

cloudflare - dns srv 레코드란?

wiki srv

TXT Record

  1. SPF (Sender Policy Framework)
  • 역할: 발신 서버의 IP 주소를 검증하여 위조된 발신을 차단.
  • 구성: 도메인에서 메일을 보낼 수 있는 허용된 IP 목록을 명시.
  • 작동 방식: 이메일 수신 서버는 발신 도메인의 SPF 레코드를 확인하여 발신 서버의 IP가 허용 목록에 있는지 검증.
  1. DKIM (DomainKeys Identified Mail)
  • 역할: 이메일 본문과 헤더에 암호화된 서명을 추가하여 메일 무결성을 검증.
  • 구성: 발신 서버에서 메일에 서명한 후, 수신 서버에서 공개 키로 검증.
  • 작동 방식: 공개 키는 도메인의 TXT 레코드에 저장되어 수신 서버가 서명을 확인 가능. image
  1. DMARC (Domain-based Message Authentication, Reporting, and Conformance)
  • 역할: SPF와 DKIM을 기반으로 이메일의 유효성을 평가하고 정책을 정의.
  • 구성: 도메인 소유자가 이메일 처리 방식을 지정 (예: 거부, 격리).
  • 작동 방식: 수신 서버는 DMARC 정책을 참조하여 SPF/DKIM 검증 결과에 따라 이메일 처리. image

DNS record TTL이 왜 필요한가?

DNS에서 TTL은 조회 결과가 유효한 시간을 의미합니다. 때문에 TTL이 짧은 레코드는 DNS 서버로 짧은 주기로 갱신을 요청이 필요하고 길면 긴 주기로 갱신을 요청이 필요합니다.

용어

  • quotechar quotechar는 데이터 처리나 파일 입출력 작업에서 사용되는 용어로, 주로 CSV(Comma-Separated Values) 파일과 관련이 있습니다. quotechar는 필드 값을 감싸는 데 사용되는 문자로, 필드 값 내에 구분자(예: 콤마)나 줄 바꿈 문자가 포함될 때 이를 명확하게 구분하는 데 사용됩니다.

👼 개인 활동을 기록합시다.

개인 활동 페이지

🧑‍🧑‍🧒‍🧒 그룹 활동을 기록합시다.

그룹 활동 페이지

🎤 미니 세미나

미니 세미나

🤔 기술 블로그 활동

기술 블로그 활동

📚 도서를 추천해주세요

추천 도서 목록

🎸 기타

기타 유용한 학습 링크

Clone this wiki locally