[ C# / CUBRID ] 프로젝트 정리 3 - cmd로 큐브리드 서버 실행 및 테이블 생성
https://choittolbok.tistory.com/348 [ C# + CUBRID ] 프로젝트 정리 2 - 큐브리드 설치 후 프로젝트 내 참조 추가이번 프로젝트에서 사용하는 DB는 CUBRID이다. 실제 프로그램을 돌리는 PC는 접속이 불가한 상황
120ne.xyz
테이블도 만들었으니 프로젝트와 로컬 DB를 연동해보자. 처음부터 해보면 좋겠지만 이 일지가 다음주 사용해야 할 프로그램을 기준으로 작성되는 거라 미리 만들어 둔 프로젝트를 이용할 예정이다.
- CUBRID 연결 방법
private static string ConnectionString = "Server=localhost;Port=33000;Database=mydb;User=dba;Password=;charset=utf-8";
- Server: CUBRID가 설치된 주소 (로컬은 localhost)
- Port: 기본 포트는 33000
- Database: 로컬에서 생성한 DB 이름
- User, Password: 기본 관리자 계정은 dba, 비밀번호 없음
public class CubeDBcon : IDisposable
{
private static string ConnectionString = "..."; // 연결 문자열
private CUBRIDConnection _conn;
private System.Timers.Timer keepAliveTimer;
public CubeDBcon(MainForm form)
{
_conn = new CUBRIDConnection(ConnectionString);
_conn.Open();
form.SetTextRichText(_conn.State.ToString());
// 5분마다 연결 유지 쿼리 실행
keepAliveTimer = new System.Timers.Timer(300000); // 5분
keepAliveTimer.Elapsed += KeepAlive;
keepAliveTimer.Start();
}
private void KeepAlive(object sender, ElapsedEventArgs e)
{
try
{
using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT 1", _conn))
{
cmd.ExecuteNonQuery(); // 연결 유지용 쿼리
}
}
catch { }
}
public void Dispose()
{
_conn?.Close();
keepAliveTimer?.Stop();
}
}
위와 같이 CUBRID DB 연결 및 연결을 안전하게 유지할 수 있다.
private CUBRIDConnection _conn;
지난 글에서 참조 했던 CUBRID.Data.dll을 이용해 DB 연결을 도와주는 클래스이다. 클래스 선언을 할 때 위에서 작성한 문자열을 아래와 같이 넣어주고, open하면 끝
_conn = new CUBRIDConnection(ConnectionString);
private System.Timers.Timer keepAliveTimer;
타이머의 경우 일정 시간마다 DB가 살아있는지 체크를 해주고, 타이머가 울릴 때마다 KeepAlive() 와 같은 메소드를 실행해서 DB 연결을 유지해준다.
public void Dispose()
연결 하는 것만큼 중요한 리소스를 정리하고, 메모리를 해제하는 메서드이다. DB 연결을 안전하게 닫아 메모리 누수와 다중 연결, 프로그램 느려지는 현상을 방지한다.
'개발일지 > C#' 카테고리의 다른 글
[C# / VisualStudio2022] 프로젝트 정리 5 - 프로그램 수정 (0) | 2025.06.07 |
---|---|
[ C# / CUBRID ] 프로젝트 정리 3 - cmd로 큐브리드 서버 실행 및 테이블 생성 (2) | 2025.06.06 |
[ C# / CUBRID ] 프로젝트 정리 2 - 큐브리드 설치 후 프로젝트 내 참조 추가 (0) | 2025.06.06 |
[ VS2022 / C# / Git ] 프로젝트 정리 1 - 깃 설치 후 Visual Studio 2022 깃 연결 (3) | 2025.06.06 |
[C#] Random.Next()로 1/5 확률 선택하기 – 퍼센트(%) 조건 제어 (0) | 2025.05.28 |