모던 C# - 타입 시스템 마스터하기
스티브 러브 지음, 김모세 옮김 / 영진.com(영진닷컴) / 2025년 4월
평점 :
장바구니담기


* 출판사에서 보내준 책을 읽고 서평을 썼습니다.


IT 에 관심이 있어서 일할때 조금씩 필요한 프로그램들을 만들어보고 있는데 확실이 효율이 높아지네요. 최근에는 ChatGPT 같은 생성형 AI 들의 개발 능력이 무척 뛰어나서 원하는 기능을 말하면 코드를 만들어 줍니다. 거의 대부분 문제 없이 실행되기 때문에 프로그래밍을 전문적으로 배우지 않아도 빠르게 시작할 수 있네요. 아무리 AI 모델이 프로그래밍을 학습했다고 하지만 어떻게 이렇게 잘 만들어주는지 신기합니다.


C# 이 나오면서부터 윈도우즈에서 실행되는 프로그램을 만들기 쉬워졌습니다. '모던 C#' 에서는 C# 의 타입 시스템을 중심으로 어떻게 활용할 수 있을지 설명하고 있습니다.


초기에 나왔던 프로그래밍 언어들은 타입을 정확히 정의해야 했습니다. C 나 C++ 의 역사는 무척 오래 되었는데 변수가 정수형인지 문자형인지 등 미리 선언해야 했고, 변수 타입에 맞지 않는 값을 넣으면 오류가 발생합니다. 하지만 최근 나온 프로그래밍 언어들은 타입을 지정하지 않아도 알아서 자동으로 결정하네요. 편하기는 하지만 타입을 착각할 수 있다보니 예상하지 못한 오류가 발생할 가능성도 있습니다. 책의 앞부분에서는 강제성이 없어도 타입을 명시해 주는게 얼마나 도움이 되는지, 그리고 타입을 추측할 수 있도록 변수 이름을 적절하게 만드는 것도 중요하다는 것을 설명하고 있네요.


프로그래밍을 잘 모를 때에는 그냥 문제없이 실행되면 된다고 생각했습니다. 하지만 이런저런 기능들을 하나씩 추가하다보면 점점 더 구조가 복잡해지면서 나중에는 수정하는것 자체가 부담이 됩니다. 간단한 기능이지만 실제로 수정하려고 보니 함수나 변수를 많이 바꿔야 했던 경험도 있네요. 그래서 프로그래밍 언어의 특징을 살려서 구조적이면서 간결하게 계속 개선해 나가는게 중요한데 참고 매개변수와 값 매개변수를 비교하는 부분도 읽으면서 유용했습니다. 그냥 함수에 변수를 전달해서 값을 계산하는 것으로 볼 수 있지만 참조를 넘기는지 값을 넘기는지에 따라서 나중에는 의도하지 않았던 사이드 이펙트가 발생할 수 있네요. 개념적으로 이해를 하고나니 전에 만들었던 코드에서도 문제들이 보입니다.


요즘은 컴퓨터의 성능이 무척 좋기 때문에 성능에 신경을 쓰지 않아도 원하는 결과를 빠르게 얻을 수 있습니다. 하지만 데이터가 많아진다거나 정해진 시간 내에 반드시 결과를 내는 것이 필요하다면 성능 최적화를 해야합니다. 프로그램의 로직에 대한 부분은 머리로 검증할 수 있지만 실제 컴퓨터가 어떻게 처리하는지는 보조적인 툴들을 사용해야 알 수 있는데 책에서는 성능 벤치마크하는 방법이나 프로파일러를 통해 단계적으로 따라가면서 현재의 시스템 자원을 추적하는 것을 보여주고 있습니다. 어느정도 규모가 되는 프로그램이 되면 이러한 과정이 필수적인데 설명이 상세해서 그대로 해보는데 어렵지 않았습니다.


생성형 AI 의 개발 능력이 워낙 뛰어나다보니 그냥 이런저런 기능을 말하고 개발해 달라고 하는게 편할 수도 있습니다. 하지만 프로그래밍 언어의 개념이나 기초에 대한 부분을 알고 나면 프로그래밍을 더 잘 할 수 있고, 생성형 AI 에도 원하는 것을 정확하게 말할 수 있기 때문에 이렇게 책으로 공부하는 것도 필요한것 같아요. 모던 C# 의 특징들을 이해하는데 도움이 되었습니다.






댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo