고급 연결 설정
SSL/TLS, SSH 터널, 프록시를 사용한 보안 연결과 Connection Properties, Renamer 설정 방법을 안내합니다.
SSL/TLS 연결
데이터베이스와의 통신을 암호화하여 안전하게 연결합니다. 커넥션 설정 화면의 SSL/SSH 탭에서 SSL/TLS 토글을 활성화하면 설정 패널이 표시됩니다.
| 항목 | 설명 |
|---|---|
| 모드 | SSL 연결 수준을 선택합니다. disable, prefer, require, verify-ca, verify-full 중 선택할 수 있습니다. |
| CA 인증서 | 서버의 인증서를 검증하기 위한 CA(인증 기관) 인증서 파일입니다. .pem, .crt, .cer 등의 형식을 지원합니다. |
| 클라이언트 인증서 | 서버가 클라이언트 인증을 요구하는 경우 사용합니다. 업로드 버튼을 클릭하여 파일을 선택합니다. |
| 클라이언트 키 | 클라이언트 인증서에 대응하는 개인 키 파일입니다. |
| 클라이언트 키 비밀번호 | 클라이언트 키 파일이 암호화되어 있는 경우 해당 비밀번호를 입력합니다. |
| 서버 인증서 검증 | 서버가 제시하는 인증서의 유효성을 검증할지 여부입니다. 운영 환경에서는 활성화를 권장합니다. |
| Public Key Retrieval 허용 | MySQL/MariaDB에서 caching_sha2_password 인증 시 서버로부터 공개 키를 자동으로 가져올 수 있도록 허용합니다. |
SSL 모드별 동작
| 모드 | 암호화 | 서버 인증서 검증 | 설명 |
|---|---|---|---|
disable | 안 함 | 안 함 | SSL을 사용하지 않습니다. |
prefer | 가능하면 | 안 함 | 서버가 지원하면 SSL을 사용하고, 아니면 비암호화 연결합니다. |
require | 필수 | 안 함 | 반드시 암호화 연결을 사용하지만, 서버 인증서는 검증하지 않습니다. |
verify-ca | 필수 | CA만 검증 | 서버 인증서가 신뢰할 수 있는 CA에서 발급되었는지 확인합니다. |
verify-full | 필수 | CA + 호스트명 | CA 검증에 더해 인증서의 호스트명이 실제 서버와 일치하는지 확인합니다. |
AWS RDS 등 클라우드 DB 연결 시에는 해당 클라우드 제공사의 CA 인증서를 다운로드하여 CA 인증서 항목에 업로드하세요.
SSH 터널 연결
SSH 터널을 통해 외부에서 직접 접속할 수 없는 데이터베이스에 안전하게 연결합니다. SSH Tunnel 토글을 활성화하면 설정 패널이 표시됩니다.
SSH 서버 정보
| 항목 | 설명 | 기본값 |
|---|---|---|
| 호스트 | SSH 서버(Bastion Host) 주소 | - |
| 포트 | SSH 서비스 포트 | 22 |
| 사용자 | SSH 접속 계정 | - |
인증 방법
두 가지 인증 방식 중 하나를 선택합니다:
- 비밀번호 — SSH 계정의 비밀번호를 직접 입력합니다.
- Public Key — SSH 개인 키 파일(
.pem)을 업로드합니다. 키 파일에 Passphrase가 설정된 경우 함께 입력합니다.
포트 포워딩
SSH 터널을 통한 포트 포워딩 설정입니다. 일반적으로 기본값을 사용하면 됩니다.
| 항목 | 설명 | 기본값 |
|---|---|---|
| 로컬 호스트 | 로컬 바인딩 주소 | 127.0.0.1 |
| 로컬 포트 | 로컬 바인딩 포트 (0이면 자동 할당) | 0 |
| 원격 호스트 | SSH 서버에서 접근할 DB 호스트 (비워두면 커넥션의 호스트 사용) | - |
| 원격 포트 | SSH 서버에서 접근할 DB 포트 (0이면 커넥션의 포트 사용) | 0 |
고급 설정
| 항목 | 설명 | 기본값 |
|---|---|---|
| Keep-Alive (초) | SSH 연결 유지를 위한 패킷 전송 주기 (0이면 비활성) | 0 |
| 타임아웃 (초) | SSH 연결 시도 제한 시간 | 30 |
| 호스트 키 검증 | SSH 서버의 호스트 키를 검증할지 여부 (Strict Host Key Checking) | 비활성 |
AWS RDS 등 클라우드 DB에 접속할 때 Bastion Host를 SSH 터널로 사용하면 보안을 유지하면서 연결할 수 있습니다. 원격 호스트에 RDS 엔드포인트를, 원격 포트에 DB 포트를 입력하세요.
프록시 연결
프록시 서버를 경유하여 데이터베이스에 연결합니다. 프록시 토글을 활성화하면 설정 패널이 표시됩니다.
| 항목 | 설명 | 기본값 |
|---|---|---|
| 유형 | 프록시 프로토콜: SOCKS5, SOCKS4, HTTP | SOCKS5 |
| 호스트 | 프록시 서버 주소 | - |
| 포트 | 프록시 서버 포트 | 1080 |
| 사용자 | 프록시 인증이 필요한 경우 사용자명 | - |
| 비밀번호 | 프록시 인증이 필요한 경우 비밀번호 | - |
Connection Properties
JDBC 연결에 사용할 추가 속성을 key-value 형태로 지정합니다. 커넥션 설정 화면의 Properties 탭에서 설정할 수 있습니다.
입력 필드에 key와 value를 입력한 후 ADD 버튼을 클릭하면 속성이 추가됩니다. 추가된 속성은 하단 목록에 표시되며, 각 항목을 삭제할 수 있습니다.
사용 예시
| key | value | 설명 |
|---|---|---|
connectTimeout | 10000 | 연결 타임아웃 (밀리초) |
useUnicode | true | 유니코드 지원 활성화 |
characterEncoding | utf8mb4 | 문자 인코딩 설정 |
serverTimezone | Asia/Seoul | 서버 타임존 설정 |
참고: 각 DBMS별 기본 연결 속성은 자동으로 적용됩니다. 여기서 지정한 속성은 기본값을 덮어씁니다. 사용 가능한 속성은 각 JDBC 드라이버 문서를 참조하세요.
Renamer
Reverse Engineering(DB → ERD) 시 테이블명과 컬럼명을 자동으로 변환하는 규칙을 설정합니다. 커넥션 설정 화면의 Renamer 탭에서 설정할 수 있습니다.
Table Renamer와 Column Renamer를 각각 독립적으로 설정할 수 있으며, 각 Renamer에 여러 규칙을 추가하면 목록 순서대로 순차 적용됩니다.
Renamer 유형
regexp (정규표현식)
정규표현식을 사용하여 이름의 특정 패턴을 찾아 치환합니다.
| 항목 | 설명 |
|---|---|
| regexp | 찾을 패턴 (JavaScript 정규표현식) |
| replace | 치환할 문자열 (비워두면 매칭된 부분을 제거) |
예시: 테이블명 접두사 제거
- regexp:
/^[^_]*_/, replace: (빈 값) TBL_USER→USER,TB_ORDER_ITEM→ORDER_ITEM
case-format (대소문자 변환)
이름의 대소문자 형식을 변환합니다.
| 형식 | 예시 | 설명 |
|---|---|---|
SNAKE | order_item | 소문자 + 언더스코어 |
SNAKE_UPPER | ORDER_ITEM | 대문자 + 언더스코어 |
CAMEL | orderItem | camelCase (첫 글자 소문자) |
CAMEL_UPPER | OrderItem | PascalCase (첫 글자 대문자) |
활용 예시
DB 테이블명이 TBL_ORDER_ITEM이고, ERD에서는 OrderItem으로 표시하고 싶은 경우:
- Table Renamer에 regexp 규칙 추가: regexp
/^[^_]*_/, replace (빈 값) →ORDER_ITEM - Table Renamer에 case-format 규칙 추가:
CAMEL_UPPER→OrderItem
규칙은 위에서 아래 순서로 적용되며, 목록의 화살표 버튼으로 순서를 변경할 수 있습니다.
참고: Renamer는 Reverse Engineering 시에만 적용됩니다. Forward Engineering(ERD → DB)에서는 ERD에 표시된 이름이 그대로 사용됩니다.
