2019년 4월 2일 Microsoft는 Visual Studio 2019를 발표했다. 코딩을 빨리 시작할 수 있는 새로운 시작 창, 검색기능 및 성능향상과 더불어 Visual Studio IntelliCode AI를 지원한다. 개발자의 코딩 스타일을 개발 툴이 머신러닝한 후 최적화하여 보여준다. 윈도의 경우 .NET Core 3으로 WinForm, WPF를 개발할 수 있는데 초기 버전에서 통합된 모습은 보여주지 않았지만 5월에 있을 Microsoft의 연례 Build 개발자 콘퍼런스에서는 자세한 로드맵이 나올 것으로 보인다. Microsoft는 올 하반기에 .NET Core 3 정식 버전을 발표할 예정이다. 개인적으로는 Blazor에 관심이 많은데 Angular(JS), React(JS)를 C#언어 차원에서 코딩할 수 있기 때문이다. 물론 Blazor가 모든 프론트엔드를 대체할 수 없을 것이다. 아래의 동영상 강좌는 Blazor의 Hello World를 경험할 수 있게 해준다.
한 row에 어떠한 column 집합을 연속적으로 연결해서 보여주고 싶을 때가 있다. 특히 데이터를 연결해서 보여줄 때 comma separated list, delimiter를 사용한다. MySQL은 GROUP_CONCAT, Oracle은 LISTAGG, SQL Server는 STRING_AGG를 사용한다. 그러나 string_agg 함수는 sql server 2017부터 지원하는 함수이다. 이전에는 stuff, for xml, path를 사용하여 구현하였다. 대용량이 아닐 경우는 아래와 같이 sqlclr을 사용하면 group concat을 쉽게 구현할 수 있다.
-- dbo.GROUP_CONCAT(VALUE)
-- dbo.GROUP_CONCAT_D(VALUE, DELIMITER)
-- dbo.GROUP_CONCAT_DS(VALUE, DELIMITER, SORT_ORDER)
-- dbo.GROUP_CONCAT_S(VALUE, SORT_ORDER) -- 1:asc, 2:desc
SELECT some_id,
dbo.GROUP_CONCAT(some_column) as delimited_list
FROM dbo.some_table
GROUP BY some_id;
업무용 프로그래밍 개발은 대부분이 Database 설계와 구축 그리고 집합개념으로써 SQL의 이해가 모든 것을 좌우한다고 봐도 무방하다. 그러나 현실은 현업 개발자 중 100에 1명 정도 꼴로 이러한 중요성을 인지하고 있다. 프로그래밍 언어 방식의 사고에서 집합개념의 SQL로 사고의 전환은 매우 어렵다. 아래의 추천 서적은 업무용 개발자가 필수로 이해해야 만 하는 Database 서적이다. 기본 서적 정도의 개념이 없는 사람은 이 분야 개발에서 악의 축이므로 피하시길 간곡히 호소하는 바이다.
# 기본
1. 조시형, 친절한 SQL 튜닝, DBian, 2018
2. 정재우, SQL Server 튜닝 원리와 해법, 비투엔컨설팅, 2010
3. 김상래, 프로젝트 성패를 결정짓는 데이터 모델링 이야기, 한빛미디어, 2015
4. 이춘식, 아는 만큼 보이는 데이터베이스 설계와 구축, 한빛미디어, 2008
5. 유동오, 핵심 데이터 모델링, DBian, 2020
# 고급
1. 조시형, 오라클 성능 고도화 원리와 해법 I, 비투엔컨설팅, 2009
2. 조시형, 오라클 성능 고도화 원리와 해법 II, 비투엔컨설팅, 2010
3. 이춘식, 데이터베이스 설계와 구축(개정판), 한빛미디어, 2011