본문 바로가기

추천 검색어

실시간 인기 검색어

모던 C#: 타입 시스템 마스터하기

스티브 러브 저자(글) · 김모세 번역
영진닷컴 · 2025년 04월 15일
0.0
10점 중 0점
(0개의 리뷰)
평가된 감성태그가
없습니다
  • 모던 C#: 타입 시스템 마스터하기 대표 이미지
    모던 C#: 타입 시스템 마스터하기 대표 이미지
  • 모던 C#: 타입 시스템 마스터하기 부가 이미지1
    모던 C#: 타입 시스템 마스터하기 부가 이미지1
  • 모던 C#: 타입 시스템 마스터하기 부가 이미지2
    모던 C#: 타입 시스템 마스터하기 부가 이미지2
  • A4
    사이즈 비교
    210x297
    모던 C#: 타입 시스템 마스터하기 사이즈 비교 187x256
    단위 : mm
01 / 04
무료배송 소득공제
10% 27,000 30,000
적립/혜택
1,500P

기본적립

5% 적립 1,500P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,500P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서 포함 15,000원 이상 구매 시 무료배송
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)

15,000원 미만 시 2,500원 배송비 부과

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

20,000원 미만 시 2,500원 배송비 부과

해외주문 서양도서/해외주문 일본도서(교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품(전집, GIFT, 음반/DVD 등)
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
당일배송 오늘(4/22,화) 도착
기본배송지 기준
배송일자 기준 안내
로그인 : 회원정보에 등록된 기본배송지
로그아웃 : '서울시 종로구 종로1' 주소 기준
로그인정확한 배송 안내를 받아보세요!

이달의 꽃과 함께 책을 받아보세요!

1권 구매 시 결제 단계에서 적용 가능합니다.

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

모던 C#: 타입 시스템 마스터하기 상세 이미지

책 소개

이 책이 속한 분야

타입 시스템에 대한 진짜 이해, 어디까지 해봤나요?

C#은 단순하고 현대적인 언어처럼 보일 수 있지만, 그 내부에는 깊이 있는 개념들이 숨어 있습니다. 그중에서도 '타입 시스템'은 모든 C# 프로그램의 기반이자, 좋은 설계를 위한 핵심 도구입니다. 《모던 C# - 타입 시스템 마스터하기》는 값 타입과 참조 타입의 차이를 단순한 문법 설명에 그치지 않고, 코드 설계와 성능, 의미 전달까지 연결해 설명하는 해설서입니다.

이 책은 특히 ‘왜 값을 값 타입으로 만들어야 하는가’라는 질문에 명확한 답을 제시합니다. 값 타입은 단순히 성능 향상을 위한 수단이 아니라, 코드에 의도를 명확히 담아내는 방법입니다. 예를 들어 int 대신 Meter, Temperature와 같은 도메인에 특화된 타입을 사용함으로써, 해당 값이 어떤 용도로 쓰이는지를 코드 레벨에서 바로 이해할 수 있게 만듭니다. 이는 곧 코드의 안전성과 가독성을 높이고, 협업과 유지보수의 효율성까지 향상시키는 결과로 이어집니다.

《모던 C#》은 복사와 참조의 작동 방식, 값 타입의 설계 기준, 메모리 구조와 성능 측정, 도메인 모델링에서의 타입 활용 등, 타입 시스템의 본질을 다양한 각도에서 조망합니다. C#의 최신 문법을 나열하는 대신, 앞으로도 변하지 않을 '핵심'을 중심에 두고 설명하며, 실무에서 적용 가능한 통찰을 제공합니다.

이 책의 시리즈 (1)

작가정보

저자(글) 스티브 러브

C#을 사용해 20여년 이상 개발을 계속한 전문 개발자이다.
물류, 공공 서비스, 회계 부문 등 다양한 업계에서 C#을 사용했다.
C Vu, the members’ journal of the ACCU(https://accu.org)의 편집자인 동시에 다양한 콘퍼런스에서 연사로 활동하고 있다.

목차

  • 감사의 말
    들어가며

    1장 타입 시스템 활용하기
    좋은 이름의 가치
    타입을 이용해 명확하게 하기
    이름 있는 인수
    커스텀 타입
    캡슐화
    불변성
    값 검증
    테스팅
    리팩터링
    매직 넘버를 이름 있는 상수로 대체하기
    속성과 값을 단순화하기
    산술 연산자 오버로딩
    새로운 타입에 대한 필요를 결정하기
    단위 인코딩하기
    열거형을 사용해 단위를 아이템화하기
    정적 생성 메서드
    설계의 대칭성
    단위를 명시적으로 만들기
    가장 자연스러운 사용 방법 선택하기
    단위의 의미를 사용해 타입 반환하기
    완전한 형태의 캡슐화된 값
    타입 추상화 위치 결정하기
    정리

    2장 값 타입과 참조 타입
    사용자 정의 타입
    구조체와 클래스
    레코드와 레코드 구조체
    상속
    타입 인스턴스의 수명
    변수
    변수 vs 값
    결정적 할당
    인스턴스와 스토리지
    내장된 값
    박스된 값
    시맨틱과 타입
    공통 타입 시스템
    복사 시맨틱
    레코드, 구조체, 값 시맨틱
    생성과 초기화
    기본 초기화
    인스턴스 생성자
    필드 초기자
    객체 초기자
    비파괴 변형
    null 값과 기본값
    제네릭과 null
    제네릭과 기본값
    nullable 값 타입
    nullable 참조 타입
    null-forgiving 연산자
    정리

    3장 참조 매개변수와 값 매개변수
    메서드 매개변수와 인수
    참조 타입 vs 참조로 전달되는 매개변수
    값 타입과 매개변수
    참조의 값
    참조 변수와 앨리어싱
    변경할 수 있는 참조로 전달하는 매개변수
    참조로 참조 전달하기
    참조로 값 전달하기
    출력 매개변수 다루기
    참조 전달 매개변수의 한계
    속성값
    참조 전달 매개변수에 대한 오버로딩
    필드 사용하기
    확장 메서드
    사이드 이펙트와 다이렉트 이펙트
    변경 vs 생성
    선언적 코드와 성능
    읽기 전용 참조 및 참조로 반환하기
    참조로 값 반환하기
    데이터 수정 방지하기
    범위 안에서 참조 전달 변수 유지하기
    성능 vs 단순함 고려하기
    변경할 수 있는 참조 전달 매개변수 정리
    정리

    4장 암묵적 복사하기와 명시적 복사하기
    단순한 할당으로 복사하기
    값 복사 동작
    읽기 전용 속성 vs 불변 타입
    새 객체 만들기
    값 덮어쓰기
    값 타입 생성하기
    레코드를 값 타입처럼 복사하기
    불필요한 박스하기 식별하기
    인터페이스로 박스하기
    메서드 호출 안
    메서드 매개변수와 인수
    값으로 전달하기와 반환하기
    속성에 접근하기
    연산자와 함께 표현식 사용하기
    반환 타입 인스턴스 수정하기
    참조 타입 속성
    인스턴스 메서드와 가변성
    읽기 전용 매개변수를 위한 인수로서의 속성
    방어적 복사본
    변경할 수 있는 값 타입과 in 매개변수
    자동 속성 vs 비자동 속성
    읽기 전용 참조 변수
    읽기 전용 필드
    변경 방어하기
    읽기 전용 접근자와 메서드
    읽기 전용 타입
    정리

    5장 등치 타입
    내장 등치
    정수
    부동소수점값
    참조 등치
    문자열 등치 및 값 등치
    클래스에 대한 커스텀 등치
    등치 연산자 정의하기
    null과의 비교 다루기
    타입 안전한 비교 만들기
    해시 코드 다루기
    구조체와 등치
    구조체에 대한 Equals 오버라이드하기
    값 박스하기 및 신원 비교하기
    제네릭 변수 비교하기
    제네릭 코드와 Equals 메서드
    IEquatable〈T〉 인터페이스
    컴파일러에 의해 생성된 등치
    레코드 및 레코드 구조체
    nullable 값에 대한 등치
    값 튜플과 등치
    정리

    6장 값의 특성
    값 vs 참조 시맨틱
    복사 및 등치 비교 동작
    가변성
    기계적 문법(메커니즘) vs 의미적 문법(시맨틱)
    객체 관계
    객체의 종류
    객체 특성
    객체 역할 모델링을 위한 설계 개선
    추상과 용어
    중복 제거하기
    클래스 불변량 구축하기
    대칭성을 사용해 명확하게 만들기
    캡슐화와 public 인터페이스
    인터페이스 확장하기
    내부 인터페이스 줄이기
    추상화 조합하기
    값 시맨틱과 참조 시맨틱 선택하기
    기본 변수의 함정 회피하기
    커스텀 동작 vs 생성된 동작 구현하기
    생성된 메서드 오버라이드하기
    순서 비교
    동등 vs 등치
    비교를 위한 계약
    다른 유형의 순서
    균일성과 일관성의 위험성
    산술 타입과 비산술 타입
    비표준적 연산자의 동작
    정리

    7장 값 타입과 다형성
    값 타입이 봉인돼 있는 이유
    구현 상속
    클래스에 대한 값 기반 등치
    파생된 클래스에서의 등치 동작
    등치 비교와 타입 대체
    포함 다형성과 서브타이핑
    가상 메서드의 Input과 Output 타입 다루기
    타입의 계약 유지하기
    레코드 타입 상속하기
    구현 상속 피하기
    타입을 상속하지 않고 포함하기
    제네릭을 사용한 매개변수를 갖는 다형성
    제네릭 제약 사항과 프로토콜 인터페이스
    제네릭 메서드 매개변수와 타입 추론
    매개변수화 된 타입
    오버로딩을 통한 애드혹 다형성
    오버로드된 연산자를 갖는 심볼릭 다형성
    다형성을 위한 제네릭 델리게이트
    변환을 사용한 다형성 강제
    확대 변환 vs 축소 변환
    표현에 대해
    목적에 대해
    정리

    8장 성능과 효율
    성능 측정하기 및 최적화하기
    JIT 컴파일러
    성능 벤치마크
    프로파일러
    Equals를 사용해 기본 성능 측정하기
    단순함에 숨겨진 비용
    ValueType.Equals 메서드
    ValueType.GetHashCode 메서드
    HashCode.Combine 메서드
    등치 최적화하기
    IEquatable의 영향
    속성 접근
    등치 연산자
    타입이 성능에 미치는 영향
    복사 비용 측정하기
    큰 인스턴스 복사하기
    객체 생성 비용 측정하기
    컴파일러가 생성한 Equals 메서드 측정하기
    공통적인 이디엄과 프랙티스가 성능에 미치는 영향
    루핑과 이터레이션
    패턴 매칭과 셀렉션
    정리

    마치며
    부록: 더 읽어보기

출판사 서평

1장. 타입 시스템 활용하기
의미 있는 사용자 정의 값 타입을 설계하고, 코드의 가독성과 명확성을 높이는 방법을 다룹니다.

2장. 값 타입과 참조 타입
이 둘의 동작 방식 차이와 메모리 구조, 복사/등치 비교 시의 영향 등을 정리합니다.

3장. 참조 매개변수와 값 매개변수
메서드 호출 시 어떤 방식으로 인자가 전달되는지, 성능과 안전성에 어떤 영향을 미치는지 설명합니다.

4장. 암묵적 복사와 명시적 복사
값 복사에 따른 예기치 않은 결과를 방지하기 위한 전략을 살펴봅니다.

5장. 등치 타입
값의 비교 방식, 안전한 동등성 구현 방법, 컴파일러 기능 활용 팁 등을 다룹니다.

6장. 값의 특성
값 타입이 단순한 저장소를 넘어 의미를 가지는 설계 단위로 기능할 수 있는 조건들을 설명합니다.

7장. 값 타입과 다형성
값 타입에서 상속과 다형성이 어떻게 제한되는지, 그 대안을 중심으로 설명합니다.

8장. 성능과 효율
타입 설계가 애플리케이션 성능에 끼치는 영향과, GC(가비지 컬렉션)를 고려한 최적화 전략을 제시합니다.


역자의 말

프로그래밍에 사용하는 대부분의 개발 언어에서는 “값 타입”(Value type)과 “참조
타입”(Reference type)을 제공합니다. 일반적으로 우리가 알고 있는 값 타입과 참
조 타입의 차이는 다음과 같이 비교할 수 있습니다.

값 타입과 참조 타입의 대략적인 차이는 알고 있지만, 다음 질문에 대답하기는 다
소 어려울 수 있습니다.

● 값 타입과 참조 타입은 왜 구분해야 할까?
● 값 타입과 참조 타입은 문법적 혹은 의미적으로 어떤 차이를 가질까?
● 값 타입 대신 참조 타입, 혹은 참조 타입 대신 값 타입을 사용하면 절대로 안 될까?
● 프로그래밍 언어의 기반 도구(컴파일러 등)들이 타입 문제를 잘 처리해 주는데 굳이
이런 차이를 알아야 할까?

이 책은 C#이 제공하는 값 타입의 문법적, 의미적 특성을 깊게 설명하고 그 사용 방법과 예제를 통해 값 타입과 참조 타입 사이의 막연한 안개를 걷어 내고 싶은 분들에게 명확한 나침반과 지도의 역할을 해줄 것입니다. C#에 국한된 내용을 설명하지만 이 책에서 설명한 개념들을 다른 프로그래밍 언어에도 적용해 본다면 재미있고 의미있는 통찰을 얻는데 도움이 될 것입니다. 여러분이 보다 효율적이고 안정적이며 뛰어난 성능의 프로그램을 작성하는 데 이 책이 도움이 되길 바랍니다.
번역을 통해 좋은 지식을 전할 수 있게 해주신 하나님께 감사드립니다. 그리고 멋진 책을 번역하는 데 참여할 수 있도록 기회를 주신 영진닷컴 관계자 여러분께 감사합니다. 언제나 분주한 가장을 위해 든든한 기도와 지원을 아끼지 않는 아내와 세 딸에게도 감사를 전합니다.

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수을(를) 나타낸 표입니다.
ISBN 9788931479386
발행(출시)일자 2025년 04월 15일
쪽수 384쪽
크기
187 * 256 * 29 mm / 1106 g
총권수 1권

Klover 리뷰 (0)

구매 후 리뷰 작성 시, e교환권 200원 적립

Klover리뷰를 작성해 보세요.

문장수집 (0)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요.

교환/반품/품절 안내

  • 반품/교환방법

    마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환 신청, [1:1 상담 > 반품/교환/환불] 또는 고객센터 (1544-1900)
    * 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900)
  • 반품/교환가능 기간

    변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
  • 반품/교환비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 반품/교환 불가 사유

    1) 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
    2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
    3) 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
    6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
    9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등
  • 상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
  • 소비자 피해보상 환불 지연에 따른 배상

    1) 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

용선생 추론독해 초등 국어 3단계
이벤트
  • 사카모토 데이즈 20권
  • 팬텀 버스터즈 출간 기념!
01 / 02
TOP