1장. 타입 시스템 활용하기
의미 있는 사용자 정의 값 타입을 설계하고, 코드의 가독성과 명확성을 높이는 방법을 다룹니다.
2장. 값 타입과 참조 타입
이 둘의 동작 방식 차이와 메모리 구조, 복사/등치 비교 시의 영향 등을 정리합니다.
3장. 참조 매개변수와 값 매개변수
메서드 호출 시 어떤 방식으로 인자가 전달되는지, 성능과 안전성에 어떤 영향을 미치는지 설명합니다.
4장. 암묵적 복사와 명시적 복사
값 복사에 따른 예기치 않은 결과를 방지하기 위한 전략을 살펴봅니다.
5장. 등치 타입
값의 비교 방식, 안전한 동등성 구현 방법, 컴파일러 기능 활용 팁 등을 다룹니다.
6장. 값의 특성
값 타입이 단순한 저장소를 넘어 의미를 가지는 설계 단위로 기능할 수 있는 조건들을 설명합니다.
7장. 값 타입과 다형성
값 타입에서 상속과 다형성이 어떻게 제한되는지, 그 대안을 중심으로 설명합니다.
8장. 성능과 효율
타입 설계가 애플리케이션 성능에 끼치는 영향과, GC(가비지 컬렉션)를 고려한 최적화 전략을 제시합니다.
역자의 말
프로그래밍에 사용하는 대부분의 개발 언어에서는 “값 타입”(Value type)과 “참조
타입”(Reference type)을 제공합니다. 일반적으로 우리가 알고 있는 값 타입과 참
조 타입의 차이는 다음과 같이 비교할 수 있습니다.
값 타입과 참조 타입의 대략적인 차이는 알고 있지만, 다음 질문에 대답하기는 다
소 어려울 수 있습니다.
● 값 타입과 참조 타입은 왜 구분해야 할까?
● 값 타입과 참조 타입은 문법적 혹은 의미적으로 어떤 차이를 가질까?
● 값 타입 대신 참조 타입, 혹은 참조 타입 대신 값 타입을 사용하면 절대로 안 될까?
● 프로그래밍 언어의 기반 도구(컴파일러 등)들이 타입 문제를 잘 처리해 주는데 굳이
이런 차이를 알아야 할까?
이 책은 C#이 제공하는 값 타입의 문법적, 의미적 특성을 깊게 설명하고 그 사용 방법과 예제를 통해 값 타입과 참조 타입 사이의 막연한 안개를 걷어 내고 싶은 분들에게 명확한 나침반과 지도의 역할을 해줄 것입니다. C#에 국한된 내용을 설명하지만 이 책에서 설명한 개념들을 다른 프로그래밍 언어에도 적용해 본다면 재미있고 의미있는 통찰을 얻는데 도움이 될 것입니다. 여러분이 보다 효율적이고 안정적이며 뛰어난 성능의 프로그램을 작성하는 데 이 책이 도움이 되길 바랍니다.
번역을 통해 좋은 지식을 전할 수 있게 해주신 하나님께 감사드립니다. 그리고 멋진 책을 번역하는 데 참여할 수 있도록 기회를 주신 영진닷컴 관계자 여러분께 감사합니다. 언제나 분주한 가장을 위해 든든한 기도와 지원을 아끼지 않는 아내와 세 딸에게도 감사를 전합니다.