-
-
이것이 C#이다 - 처음부터 끝까지 입문자를 배려한 C# 입문서 (C#7.2 버전 반영)
박상현 지음 / 한빛미디어 / 2018년 7월
평점 :
구판절판
새해가 들어서 함수형 프로그래밍 언어(functional programming)인 F# 을 배워야겠다는 생각을 했는데, 그러기 위해서는. NET 프레임워크를 알아야만 했고, 그것을 다시 거슬러 올라가다 보니 객체지향 패러다임인 C#을 먼저 배워야만 했다. 내가 대학교 다닐 때 배웠던 C++ 및 MFC 프로그래밍 방식 등은 이제 거의 사장된 것 같다. 요즘은 윈도우즈 프로그래밍에서 C#이 대세라고 하긴 하던데, 뭔가 잘 모르는 미지의 분야를 접하는 게 어렵게만 느껴졌었다. 그래서! 책을 찾기로 했다.
한빛미디어의 "이것이 C#이다"는 프로그래밍을 처음 시작하는 독자를 위해 쓰여졌다. 저자인 박상현님은 "뇌를 자극하는 알고리즘"을 집필하시기도 하셨는데, 학부 재학당시 자료구조론 수업 과제를 하며 이 책을 많이 참고하였던 기억이 난다. 당시 싸이월드 블로그에 서평을 남기기도 했었는데, 놀랍게도 저자분이 직접 응원의 댓글을 달아주시기도 하셨던 기억이 난다. 그분을 다시 이 책으로 뵙게되어 기뻤다.
이 책을 읽으며 느낀 점은, 그동안 막연히 C# 은 어려울 것 같다는 생각이 전혀 근거 없는 두려움이었다는 것이다. 하지만 의외로 C#은 여타 다른 프로그래밍 언어에 비해 진입장벽이 훨씬 낮았기에 오히려 첫발을 떼기가 쉬웠던 것이다.
C#은 이름에서 풍기는 냄새와는 달리, C언어 또는 C++ 과 전혀 다른 별개의 언어이다. 이는 마이크로소프트의. NET(닷넷) 프레임워크와 완벽히 호환될 수 있는 최적 프로그래밍 언어를 만들기 위한 프로젝트이다. 이를 원활하게 사용할 수 있는 IDE는 당연히 Microsoft의 Visual Studio이다. 하지만 나는 졸업 이후 주로 리눅스 환경 개발만을 했기 때문에 당연히 리눅스에서도 되겠지~? 하며 Visual Studio Code 로 구축해보았고,.NET Core 덕분에 원활히 책의 내용을 따라할 수 있었다. 책의 설명에 따르면 Java가 크로스 플랫폼을 지원할 수 있는 비결이 JVM에 있듯이, C# 역시 윈도우 뿐만 아니라 리눅스 및 macOS에서의 작동을 지원하기 위해 일종의 가상환경을 이용하는 것이고 그것이 바로 .NET Framework이다. 조금 더 엄밀히 말하자면 닷넷프레임워크는 윈도우 전용을 지칭하고, .NET Core라는 이름으로 윈도우 뿐만 아니라 리눅스 및 맥을 모두 지원하는 크로스플랫폼 환경을 오픈소스 프로젝트로 진행하고 있다.
C#의 가장 최고의 장점은 윈도우즈 환경에서 구동할 수 있는 GUI 기반 프로그래밍이 가능하다는 것이다. 예전에는 MFC 기반의 C++을 사용했었는데 최근에는 C# 쪽으로 넘어가는 것 같다.. ('최근'이 아닐지도 모른다. 내가 이쪽 개발자가 아니어서..;)
마지막으로 내가 C#을 배우려던 이유는 궁극적으로 함수형 프로그래밍 패러다임으로 넘어가기 위해 F#을 배우기 위함이었다. F# 관련 라이브러리를 가져다 쓰려면 C# 다큐먼트를 참조해야 하는 경우도 많다고 들었는데, 실제로 fsharpc로 컴파일한 exe가 C# 바이너리와 같이 .NET 환경에서만 작동한다는 것을 알게되었고 덕분에 dotnet core 로 개발환경을 구축하고 활용하는 것에 익숙해질 수 있었다. 국내에는 아직 F#관련 서적이 전무한데 "이것이 F#이다" 라는 책이 머지않아 나올날을 기대해본다.