데이터베이스를 사용하는 프로그램을 개발하는 경우 대부분은 특정 데이터베이스를 선택하여 사용합니다. C# 닷넷 기반으로 개발하는 경우 해당 데이터베이스 연관 라이브러리를 참조로 추가하여 간편하게 프로그램을 작성하면 됩니다. 닷넷 프레임워크에서 SQL Server DBMS를 사용하는 경우에는 두 제품 모두 마이크로소프트에서 만든 것으로 쉽게 프로그램을 작성할 수 있는 것은 닷넷 환경에서는 어찌 보면 당연한 현실이 아닌가 싶습니다. 그런데, 오라클이나 MySQL과 같은 다른 데이터베이스를 사용한다고 해서 사용법이 크게 달라지는 것은 아닙니다. 다른 데이터베이스를 사용하는 경우에는 이름만 약간 달라질 뿐이지 사용 형태는 SQL Server를 사용하는 경우와 매우 유사합니다. 예를 들어 SQL Server에서 D..
C# 코딩을 하다보면 구조체나 클래스나 뭔 차이가 있나 싶긴 하지만 몇개의 항목을 가진 간단한 데이터를 구조화해서 다룰경우에는 클래스보다는 struct문을 사용하는 구조체가 적절합니다. 예를 들면 RGB색 정보를 가진 구조체, X, Y 위치를 저장하는 구조체 top, bottom, width, depth의 창 정보를 가진 개체를 구조체로 구현할 수 있을 것입니다. public struct SysInfo { public bool dbstat, netstat; public SysInfo(bool db, bool net) { dbstat = db; netstat = net; } } 구조체는 클래스 처럼 new 생성자로 값을 설정하면서 선언할 수도 있고, 일반 변수처럼 그냥 정의하고 개별 변수에 대해서 직접 초..
다중 쓰레드를 사용하는 프로그램에서 특정 자원이나 특정 코드에 대해서 동시 접근을 차단하고 한번에 하나의 쓰레드만 수행하도록 교통 정리할 필요가 있을 때 사용하는 자원이 뮤텍스(Mutex)입니다. 대표적인 IPC(Inter Process Communication) 자원으로 공유메모리, 메시지 큐와 함께 세마포어(Semaphore)가 있는데 뮤텍스는 값이 1인 세마포어라고도 할 수 있습니다. 세마포어는 통상 정수값을 가지고 프로세스가 접근할 수 있는 여유도를 지정한다면 뮤텍스는 값이 1이므로 한번에 단 하나의 프로세스나 쓰레드만 접근할 수 있도록 할 수 있는 것입니다. 뮤텍스는 프로그램 중복 실행 방지 보다는 실행중 자원 관리에 사용하는 것이 핵심 용도이지만 프로그램 중복 실행 방지를 통해서 뮤텍스 맛보기..