디자인 패턴은 소프트웨어 디자인 및 아키텍처의 중용한 부분이다. 디자인 패턴이란 ‘Creational Design Patterns’, ‘Structural Design Patterns’, ‘Behavioral Design Patterns’와 같이 3가지 유형으로 나누어 볼 수 있다(C-SharpCorner 2013). 애플리케이션이 시작될 때 어떤 클래스가 최초 한 번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴(JEONG_AMATEUR 2017)인 ‘Singleton Design Pattern’에 대해 간략하게 정리하였다. Singleton과 Static 함수의 차이점은 Singleton인 경우 멤머 변수 등을 가지며 생성자/소멸자에서 뭔가를 해야 할 경우 그리고 Static 함수로 구성하는 경우는 멤버 변수 및 this 포인트를 쓸 필요 없으며 생성자/소멸자에서 뭔가 할 필요가 없을 때(KLDP 2013) 이다.
Singleton 패턴의 장단점에 대해서는 ‘Singleton Design Pattern In C#’ 글을 참고하자.
아래의 소스(콘솔예제)는 기본적인 사용법과 스레드(thread)에 안정적인 사용법을 보여준다.
예전 글 ‘ASP.NET MVC, Delete Multiple Rows With Checkbox’에서 SQL의 ‘where’ 구문의 조건으로 ‘in’ list에 테이블 변수(타입)를 대입해서 한 번에 여러 Row를 처리하는 쿼리를 살펴보았다. 이때 선행조건으로 테이블 타입을 생성해야만 하는데 이번에는 IN list에 콤마로 구분된 스트링이 변수로 입력되었을 때도 동일한 기능을 수행하는 사용자 함수를 만들어 사용해보자. 참고로 SQL Server 2016 버전 이상은 ‘STRING_SPLIT’라는 함수를 이미 제공하고 있다.
-- 사용예 : 함수명(StringSplit)
@SomeStrings = 'abc, 가나다, 123'
delete from SomeTable where ID in (select value from StringSplit(@SomeStrings, ','))
2019년 5월 RAD Studio PM 팀은 Delphi, C++ Builder 그리고 Rad Studio 로드맵을 발표했다(Marco Cantu 2019). 로드맵에 대한 자세한 논평은 ‘May 2019 RAD Studio Roadmap Commentary from Product Management(Sarina DuPont 2019)’에서 볼 수 있다. 이번 포스팅에서는 델파이의 미래에 대하여 개인적인 생각을 정리했다. 델파이 버전 3부터 직접 사용했으니 오랫동안 동고동락한 개발 툴인 셈이다.