• 메인으로 이동
    AD광고
    New행복을 선택하는 삶의 태도불행에 몰두하지 않는다
    AD광고
    New사랑과 우정으로 빛나는 모험프린세스 캐치 티니핑
    • 소득공제
    • 무료배송

    크로스플랫폼 핵심 모듈 설계의 기술

    • 전상현 저
    • 로드북
    • 2018년 08월 27일
    5%36,10038,000
    적립금
    1,520원 (4% 적립)
    추가 적립
    추가 적립 안내
    • 5만원 이상 결제 시 (*배송비 제외)

      정가제FREE(상품/사은품) 금액이 2,000원 이상이면 2,000원 추가적립

    • 10만원 이상 결제 시 (*배송비 제외)

      정가제FREE(상품/사은품) 금액이 2,000원 이상이면 2,000원 추가적립

      정가제FREE(상품/사은품) 금액이 5,000원 이상이면 5,000원 추가적립

    결제혜택
    무이자 할부
    결제사 혜택
    쿠폰
    회원 가입 즉시 지급되는 적립금 과 등급별 다양한 회원 혜택 보기
    배송비
    무료  (해외배송의 경우 지역에 따라 상이)

    배송안내

    서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
    나우드림 주문만 가능
    택배보다 빠른, 나우드림
    36,100

    [네이버페이]

    상품 규격 정보
    상품상세정보
    ISBN ISBN-13 : 9788997924400
    쪽수796쪽
    크기기타 규격
    제품구성단행본
    이 책이 속한 분야
    • 컴퓨터/IT > 컴퓨터언어
    관련 이벤트
    • 사은품

    이달의 리뷰왕

    2026.01.01 ~ 2026.12.31

    • 사은품

    신규가입시 최대 10,800원

    2025.12.31 ~ 2026.12.31

    • 사은품

    『디그 잇3』 출간기념 포토카드 증정 이벤트

    2026.09.14 ~ 2026.10.02

    • 사은품

    2026 추석 프로모션 - 영롱한 보름달처럼 풍성한 추석 혜택

    2026.09.09 ~ 2026.09.27

    • 사은품

    『유치원 Wars 17』 출간 기념 포토카드 증정!

    2026.09.01 ~ 2026.09.28

    • 사은품

    9월 특별선물 《영풍문고 리유저블백》

    2026.09.01 ~ 2026.09.30

    • 사은품

    이달의 리뷰왕

    2026.01.01 ~ 2026.12.31

    • 사은품

    신규가입시 최대 10,800원

    2025.12.31 ~ 2026.12.31

    • 사은품

    『디그 잇3』 출간기념 포토카드 증정 이벤트

    2026.09.14 ~ 2026.10.02

    • 사은품

    2026 추석 프로모션 - 영롱한 보름달처럼 풍성한 추석 혜택

    2026.09.09 ~ 2026.09.27

    책 소개
    이 책은 지금 당장 유행하는 기술에 관한 책이 아니다. 기술 트렌드에 관계 없이 개발자라면 언젠가 누구나 겪을 법한 내용을 핵심 모듈과 크로스 플랫폼 설계의 관점에서 정리하였다. 변수, 문자열, 예외 처리, 암호화, 디버깅, 테스팅 등 수많은 분야에서 여러분이 알고 있는 지식들을 더욱 더 견고하게 해줄 것이다. 지금 당장은 아니더라도 앞으로 닥칠 위기에 크게 도움을 줄 수도 있다. 차근차근 처음부터 읽어볼 수도 있고 관심 분야를 선택해서 읽어볼 수 있게 구성하였다.
    목차
    지은이의 말 이 책을 읽는 방법 1장 크로스 플랫폼으로 개발하라 1.1 왜 C++인가? 1.2 핵심 모듈은 무엇인가? 1.2.1 핵심 모듈의 첫 번째 특성 : 목적 1.2.2 핵심 모듈의 두 번째 특성 : 생명력 1.2.3 핵심 모듈의 세 번째 특성 : 진입장벽 1.3 아키텍트는 누구인가? 1.4 크로스 플랫폼으로 개발하라 1.4.1 크로스 플랫폼 개발 기법 : 런타임 기법과 컴파일 기법 1.4.2 크로스 플랫폼 개발이 필요한 두 가지 관점: 디바이스와 개발 인력 2장 개발 기법 2.1 개발 기법의 필요성 2.2 컴파일러의 활용 2.2.1 상호 참조 오류 2.2.2 선언과 구현의 분리 2.2.3 선언에 직접 구현하는 경우 2.3 링커 2.3.1 링커의 역할 2.3.2 정적 라이브러리 생성 2.3.3 동적 라이브러리 생성 2.3.4 템플릿의 사용과 링크 에러 2.4 모듈 트리 2.4.1 규모가 큰 모듈의 종속성 문제 2.4.2 모듈의 순환 참조 구조 2.4.3 핵심 모듈의 형태 2.5 공통 헤더 파일(stdafx.h)과 대표 헤더 파일의 활용 68 2.6 테스트 기법 2.6.1 가장 간단한 테스트 코드 2.6.2 테스트 모듈의 일반화 2.6.3 테스트 조건 구성 3장 핵심 모듈 설계 3.1 네임스페이스의 사용 3.2 세부 모듈 정의 3.3 모듈 매트릭스 3.4 크로스 플랫폼 3.5 오픈소스의 적용 3.6 소스코드 구조 3.7 개발 환경 구축 3.7.1 GUI 개발 환경 3.7.2 콘솔 개발 환경 3.8 코드 중복의 제거를 위한 원소스 듀얼 컴파일 4장 변수형 정의 4.1 기본적으로 제공되는 변수형 4.2 long형 변수에 대해서 4.2.1 개발자들 사이에 논란이 있는 각 변수형의 크기 4.2.2 플랫폼에 따라 달라지는 변수의 크기 4.2.3 왜 long형 변수만 차이가 날까? 4.3 개념적 변수형 정의 4.4 포인터 변수형 정의 4.5 const 변수형 정의 4.6 문자 변수형 정의 4.7 리눅스 계열 정의 5장 문자열 함수들 5.1 TCHAR 타입 5.2 char형 함수들과 wchar_t형 함수들 5.3 문자열 함수 구현의 필요성 5.4 중복 코드 회피 기법 [여기서잠깐] 반복적인 코드를 회피하는 방법 5.5 표준 문자열 함수들 [여기서잠깐] static 함수에 대해서 5.6 StringCch, StringCb 함수들 5.7 String..Ex 함수들 5.8 std::string 함수들 5.9 와일드카드가 포함된 문자열 비교 함수 5.10 숫자 변환 함수들 5.10.1 숫자에서 문자열로 변환하는 함수군 5.10.2 자연수 파싱 함수 5.10.3 8진법, 16진법 파싱 함수 5.10.4 정수 파싱 함수 5.10.5 실수 파싱 함수 5.10.6 지수 표기 파싱 함수 5.10.7 문자열에서 변수로 변환하는 함수군 5.10.8 문자열에서 템플릿 변수로 변환하는 함수군 6장 유니코드 6.1 ASCII 코드와 EUCKR, 멀티바이트 스트링 6.2 코드 페이지와 유니코드 문자 집합 [여기서잠깐] EUCKR과 코드페이지 949에 대해서 6.3 유니코드 인코딩 6.4 UTF8, UTF16, UTF32 6.5 유니코드와 char, wchar_t 변수형의 관계 6.6 유니코드 인코딩 변환 함수들 6.7 코드를 작성할 때 필요한 변환 함수들 6.8 BOM에 대해서 6.9 유니코드 변환 함수 구현 6.9.1 유니코드 인코딩 변환 함수 선언 6.9.2 WCS 및 MBS 변환 함수 선언 6.9.3 TCS 및 NTCS 변환 함수 선언 및 구현 6.9.4 WCS 및 MBS 변환 함수 구현 6.9.5 윈도우용 유니코드 문자셋 변환 함수 구현 6.9.6 리눅스용 유니코드 문자셋 변환 함수 구현 6.9.7 유니코드 인코딩 변환 함수 구현 7장 예외처리 7.1 예상치 못한 예외 상황 7.2 try-catch 구문 사용 7.3 무엇을 던지고 무엇을 받을 것인가? 7.4 exception 객체의 생명 주기 7.5 함수 바깥으로 예외 던지기 7.6 실무에서의 예외처리 기법 8장 인코딩, 암호화, 암호식 8.1 용어의 정리 8.2 인코딩의 여러 개념 8.3 해시 함수 구현 8.4 Base64 구현 [여기서잠깐] 메모리 반환 방식에 대해서 8.5 대칭키 암호화 구현 8.5.1 블록 암호화 알고리즘 8.5.2 블록 암호화 키와 함수 8.5.3 블록 암호화 운용 방식 8.5.4 블록 암호화의 설계 8.5.5 인터페이스 코드 작성 [여기서잠깐] 인터페이스를 class가 아닌 struct로 선언하는 이유는? [여기서잠깐] 다이아몬드 상속 구조에 대해서 8.5.6 알고리즘 코드 작성 8.5.7 운용 방식 코드 작성 [여기서잠깐] 인터페이스 소멸자 virtual 선언의 중요성 8.6 비대칭키 암호화 8.6.1. 디피-헬먼 키 교환 8.6.2. RSA 암호식 8.6.3. 엘가말 암호식 8.6.4. ECC 암호식 [여기서잠깐] 타원 곡선 암호화에 대해서 8.6.5. 비대칭키 암호화 함수 정의 8.6.5. 비대칭키 암호화 함수 구현 9장 디버그 로그 함수 구현 9.1 무엇을 남길 것인가? 9.2 모든 로그가 필요한 것인가? 9.3 로그의 1차 분류 : 지역 9.4 로그의 2차 분류 : 타입 9.5 로깅 함수 인터페이스 9.6 로그 메시지의 선택적 상세화 9.7 어디에 로그 메시지를 남길 것인가? 9.8 성능 vs 정확성 9.9 로그 파일 로테이션 [여기서잠깐] 로그 파일 로테이션 버그 경험에 대해서 9.10 로그 인스턴스 관리 9.11 로그 함수들을 핵심 모듈의 어느 위치에 둘 것인가? 9.12 로그 인스턴스 소멸 시점 369 싱글톤이 무엇인가요? 10장 크로스 플랫폼 구축 10.1 크로스 플랫폼 코드의 기초 10.2 에러 코드 처리 10.2.1 반환되는 에러 코드에 따라 로직을 구현해야 하는 경우 10.2.2 직접 개발한 함수에서의 에러 코드 사용 [여기서잠깐] 또 다른 에러 코드 처리 방법에 대해서 10.2.3 에러 코드 타입 정의 10.3 컴파일 기법 10.4 플랫폼 고유의 함수들 10.5 크로스 플랫폼 코드의 최종 형태 10.6 공통 함수 정의 10.6.1 함수명에 대해서 10.6.2 리턴 값 처리 11장 시스템 공통 함수들 11.1 유닉스 시간 변환 함수 11.2 윈도우 시간 변환 함수 11.3 요일 계산 함수 11.4 현재 시스템의 엔디안 판단 함수 11.5 바이트 오더링 변환 함수군 11.6 빅엔디안/리틀엔디안으로부터 복원하는 함수군 12장 윈도우: 시스템 정보 함수군 12.1 에러 코드 조회 및 설정 [여기서잠깐] 스레드에 안전한 스레드 지역 변수에 대해서 12.2 지역 시간과 협정 세계 시간 12.3 타임존 12.4 사용자 및 컴퓨터 이름 조회 [여기서잠깐] 날짜 변경선과 본초자오선에 대해서 [여기서잠깐] GetComputerName 함수 호출할 때의 버퍼 크기 12.5 스레드와 프로세스 ID 및 핸들 조회 12.6 경과 시간 계산 및 유휴 상태 설정 13장 윈도우: 파일 및 디렉토리 관련 함수군 13.1 POSIX 파일 함수 13.2 네이티브 파일 함수 13.3 시스템 디렉토리와 임시 디렉토리 13.4 파일 존재 여부 확인, 복사, 이동, 삭제 13.5 디렉토리 생성, 삭제 13.6 디렉토리 탐색 [여기서잠깐] 클래스 변수가 담겨있는 구조체의 초기화 13.7 현재 실행 경로 확인, 설정 13.8 현재 파일명 얻어오기 14장 윈도우: 멀티 스레드 동시성 제어 함수들 커널 객체란? 14.1 세마포어 14.2 뮤텍스 [여기서잠깐] 뮤텍스를 이용한 프로세스 생성 제한 기법 14.3 크리티컬 섹션 14.4 이벤트 14.5 원자성이 보존되는 함수군 [여기서잠깐] 변수의 volatile 선언에 대해서 15장 윈도우: 프로세스와 스레드, 동적 라이브러리 15.1 스레드 [여기서잠깐] 윈도우의 커널 객체 관리 함수들 15.2 스레드 우선순위 15.3 프로세스 관련 함수군 15.4 동적 라이브러리 호출 15.5 동적 라이브러리 제작 15.6 공유 메모리, 메모리 매핑 파일 16장 리눅스 : 시스템 정보 함수군 16.1 에러 코드 조회 및 설정 16.2 지역 시간과 협정 세계 시간 16.3 타임존 16.5 사용자 및 컴퓨터 이름 조회 16.6 스레드와 프로세스 ID 및 핸들 조회 16.7 경과 시간 계산 및 유휴 상태 설정 17장 리눅스: 파일 및 디렉토리 관련 함수군 17.1 POSIX 파일 시스템 함수 17.1.1 네이티브 파일 함수 17.2 시스템 디렉토리, 임시 디렉토리 [여기서잠깐] 파일 경로 만들 때의 팁 17.4 파일 존재 여부 확인, 복사, 이동, 삭제 17.4.1 파일 존재 여부 확인하기 : access( ) 17.4.2 파일 복사하기 : API가 존재하지 않음 17.4.3 파일 이동하기 : rename( ) 17.4.4 파일 삭제하기 : unlink() 17.5 디렉토리 생성, 삭제 17.6 디렉토리 탐색 17.7 현재 실행 경로 확인, 설정 17.8 현재 파일명 얻어 오기 [여기서잠깐] dladdr로 파일 경로 조회에 실패하는 경우에 대해서 18장 리눅스: 멀티 스레드 동시성 제어 함수들 18.1 세마포어 18.1.1 세마포어 함수군 18.1.2 세마포어 객체 관리 방식 : 윈도우 18.1.3 세마포어 객체 관리 방식 : 리눅스 18.1.4 세마포어 함수군 작성하기 605 SharedPointer에 대해서 18.2 뮤텍스 18.2.1 뮤텍스의 특성 18.2.2 뮤텍스 구현하기 18.3 크리티컬 섹션 18.4 이벤트 18.5 원자성이 보존되는 함수군 19장 리눅스: 프로세스와 스레드, 동적 라이브러리 19.1 스레드 19.1.1 스레드 제어 함수 소개 19.1.2 스레드 함수 구현하기 19.2 스레드 우선순위 19.2.1 스레드 스케줄링 정책과 우선 순위 조정 19.2.2 스레드 우선순위에 따른 실행 결과 확인 19.3 프로세스 관련 함수군 19.4 동적 라이브러리 호출 19.5 동적 라이브러리 제작 19.6 공유 메모리, 메모리 매핑 파일 20장 맥: OS X를 위한 시스템 함수들 구현 20.1 이름 없는 세마포어 20.2 일부 상수들의 이름 변경 20.3 현재 파일명을 얻어오는 GetFileName 함수 20.4 리눅스에만 존재하고 맥에는 존재하지 않는 함수들 21장 자주 쓰이고 유용한 클래스들 21.1 복제 방지 클래스 21.2 크리티컬 섹션, 뮤텍스 클래스 21.3 세마포어 클래스 21.4 텍스트 파일 접근 클래스 21.4.1 텍스트 파일을 읽어오는 클래스 21.4.2 텍스트 파일로 저장하는 클래스 21.5 동기화 큐 클래스 21.6 락프리 큐 클래스 21.7 링형 락프리 큐 클래스 [여기서잠깐] 락프리 큐의 명과 암 21.8 메모리 접근 인터페이스 21.9 메모리 매핑된 파일 클래스 21.10 공유 메모리 클래스 22장 자주 쓰이고 유용한 함수들 22.1 파일을 읽어오는 함수 22.2 파일에 기록하는 함수 22.3 파일 경로를 정규화하는 함수 22.4 파일 경로를 절대 경로로 만들어주는 함수 22.5 파일 경로에서 일부만 추출하는 함수들 22.6 파일 해시 값 생성 함수군 22.7 파일 시스템을 뒤져보는 함수 22.8 파일이나 디렉토리 목록을 읽어오는 함수 22.9 다단계 디렉토리를 생성, 파괴하는 함수 22.10 하위 파일과 디렉토리를 복사하는 함수 22.11 클래스 내부의 스레드 생성 함수 맺음말 찾아보기
    저자 소개
    저자 : 전상현
      전상현
      리팩토링에 능합니다. 항상 구조를 뒤바꾸며 좀더 효율적인 형태를 창안하려 노력합니다. 이 능력은 프로젝트 중장기 시점에 빛을 발합니다. 안정성을 도모하고 지속적으로 변화하는 요구사항을 무리없이 수용하는 가치를 지니고 있으니까요.

      더 큰 가치도 숨어있습니다. 바로 "인생을 압축해서 살게 해주는 기술"이라는 점에서요. 안정적이고 변화에 유연하다는 것은 같은 일을 더 짧은 시간에 적은 노력으로 해결할 수 있다는 것과 같습니다. 남들이 프로젝트 하나를 마칠 기간에 둘 혹은 셋을 마칠 수 있다는 것이죠.

      그것들이 모이면 개발 인생이 압축됩니다. 덕분에 좀더 빠르게 성장한 것 같습니다. 꽤 많은 경험과 풍파를 거치고도 아직은 서른 일곱이라는 나이가 감사할 따름입니다.
      도서리뷰 (0)
      이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.

      등록된 리뷰가 없습니다

      첫번째 리뷰어가 되어주세요

      이 분야에서 요즘 뜨는 책
      에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
      AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
      인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
      비전공자를 위한 이해할 수 있는 파이썬 - 챗GPT 시대에 최적화된 파이썬 공부법최원영 | 티더블유아이지
      엔트리 인공지능 with 햄스터 로봇 - 개정판강윤지,박찬규,강성웅,김원유,심재민,김연구,홍성용,김경상,정인재 | 영진닷컴
      에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
      AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
      인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
      비전공자를 위한 이해할 수 있는 파이썬 - 챗GPT 시대에 최적화된 파이썬 공부법최원영 | 티더블유아이지
      엔트리 인공지능 with 햄스터 로봇 - 개정판강윤지,박찬규,강성웅,김원유,심재민,김연구,홍성용,김경상,정인재 | 영진닷컴
      에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
      AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
      인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
      교환/반품/환불
      반품/교환방법
      • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
      • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
      반품/교환 가능기간
      • 변심반품의 경우 수령 후 7일 이내
      • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
      반품/교환비용
      • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
      • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
      반품/교환 불가 사유
      • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
      • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
        예) 만화, 잡지, 수험서 및 문제집류
      • 복제가 가능한 상품 등의 포장을 훼손한 경우
        예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
      • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
      • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
      • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
      • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
      상품 품절
      • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
      소비자 피해보상
      환불지연에 따른 배상
      • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
      • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함
      공지사항
      • [이벤트 당첨자 발표] 8월 모두의 서가 이벤트 당첨자 판매금액 리워드 안내
      • [이벤트 당첨자 발표] 26년 8월 <리뷰왕을 찾아라> 이벤트 당첨자 안내
      • [이벤트 당첨자 발표] 서울국제정원박람회, 김진명 작가 북토크 당첨자 안내
      • [이벤트 당첨자 발표] 9월 모두의 서가 이벤트 당첨자 안내
      • [공지사항] 스타필드마켓 월계 문구복합매장 그랜드 오픈 🎊 이벤트 안내!
      공지더보기