반응형

C++ 책 추천 15

온라인 무료 공개 [디딤돌 C++]

온라인 무료 공개 [디딤돌 C++]책 소개 이 책은 C언어를 학습한 이들을 이가 C++언어를 학습하기 위해 작성하였습니다. C++언어는 C언어와 변수나 연산, 함수 등의 기본 문법은 비슷하지만 클래스와 템플릿 문법을 있습니다. 특히 C++ 언어에서 클래스는 OOP(Object Oriented Programming, 개체(혹은 객체) 지향 프로그래밍) 방식으로 프로그래밍할 수 있게 새롭게 추가한 문법이죠. 이러한 특징으로 인해 C언어와 C++은 접근 방식에서 많은 차이를 갖고 있습니다. 이 책은 C++입문자를 위한 책이지만 단순히 C++문법을 다루고 있는 책은 아니예요. 오히려 C++에 새롭게 추가한 문법을 OOP에 어떻게 활용하는지에 관한 부분이 많습니다. 이를 위해 문법 외에도 OOP의 특징과 OOP ..

[C++] 87. 최종 실습 - 소스 코드

[C++] 87. 최종 실습 - 소스 코드 68. 최종 실습 - 개발 공정 및 시나리오69. 최종 실습 - 요구 분석 및 정의70. 최종 실습 - 설계1(클래스 다이어그램)71. 최종 실습 - EHNARA 뼈대72. 최종 실습 - 프로토 타이핑73. 최종 실습 - 확장 가능한 순차 배열74. 최종 실습 - 클래스 추가하기75. 최종 실습 - 초기화 및 해제화76. 최종 실습 - 학생 생성77. 최종 실습 - 학생 이동78. 최종 실습 - 전체 보기79. 최종 실습 - 학생 복귀80. 최종 실습 - 강의 시작81. 최종 실습 - 도서관 가기82. 최종 실습 - 소등83. 최종 실습 - 거실로 가기84. 최종 실습 - 파티85. 최종 실습 - 노래방 가기86. 최종 실습 - 다이어그램 //ehglobal.h..

[C++] 85. 최종 실습 - 노래방 가기

[C++] 85. 최종 실습 - 노래방 가기 이번에는 노래방 가기 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 노래방 가기에서는 학생을 선택하여 학생의 Sing을 수행합니다. 각 장소에서는 해당 장소에서 명령할 수 있는 기능만 보이게 한정하였기 때문에 IPlay 인터페이스 형식으로 학생 개체에 접근해야 합니다. 그리고 선택한 학생이 운동 학생이면 Dance 기능을 수행합니다. 물론 학생을 선택하기 위해서는 사용자에게 주민번호를 입력받아 컬렉션 내에 유닛과 비교하는 부분이 있어야 합니다. 이 부분은 이미 기반 클래스 Place에 구현하였기 때문에 이를 활용합니다.IPlay 인터페이스에 Sing 메서드를 순수 가상 메서드로 약속하세요.interface IPlay{ virtu..

[C++] 72. 최종 실습 - 프로토 타이핑

[C++] 72. 최종 실습 - 프로토 타이핑 이번에는 앞에서 작성한 EhNara 뼈대에 요구 분석 및 정의에서 작성한 유즈케이스 다이어그램을 보며 프로토 타이핑을 작성합시다. GUI(Graphic User Interface) 프로그램에서는 이해관계자의 요구 사항을 제대로 파악한 것인지 확인하기 위해 프로토 타이핑을 작성하곤 합니다. 이해관계자의 요구 사항은 고정적인 것이 아니라 시시 때때로 변할 수 있는데 자주 변하는 부분이 대부분 User Interface에 관한 것이 많습니다. 즉 내부적인 것 보다 외형적인 부분에서 요구 사항이 자주 바뀔 수 있습니다. 이러한 것을 개발 앞 단계에 배치하여 이해관계자의 요구 사항을 반영하기 위해 프로토 타이핑을 합니다. EhNara 프로그램은 GUI 프로그램이 아니..

[C++] 71. 최종 실습 - EHNARA 뼈대

[C++] 71. 최종 실습 - EHNARA 뼈대 이번 실습에서는 유즈케이스 별로 시퀀스 다이어그램 설계하고 구현하는 것을 반복할 것입니다. 먼저 이제까지 작업한 것을 구현하고 유즈케이스 별로 시퀀스 다이어그램 작성 맟 구현으로 들어갈게요. EhNara의 뼈대를 만들고 난 후에 기본적인 사용자와 상호 작용의 프로토 타이핑을 할게요. 프로젝트에 Program.cpp 파일과 EhNara 클래스를 추가하세요. EhNara 형식 개체는 프로그램에 유일하며 대부분의 콘솔 응용 프로그램은 프로그램 초기화, 사용자와 상호 작용, 해제화 순으로 진행합니다. class EhNara { 단일체를 표현하기 위해 생성자와 소멸자의 접근 지정은 private으로 설정합니다. 대신 유일한 단일개체를 정적 멤버로 선언할게요. st..

[C++] 69. 최종 실습 - 요구 분석 및 정의

[C++] 69. 최종 실습 - 요구 분석 및 정의 요구 분석 및 정의 단계에서는 이해관계자를 파악하고 이해관계자 별로 프로젝트에 요구하는 사항을 조사하는 것에서 출발합니다. 이번 실습에서의 이해관계자는 프로그램 사용자와 프로그램 개발자 정도로 생각할 수 있습니다. 시나리오를 제외한 특별한 요구 사항은 없으니 시나리오를 바탕으로 유즈케이스 다이어그램을 작성하는 것부터 시작합시다. 유즈케이스 다이어그램을 작성할 때는 액터를 조사하고 액터 별로 유즈케이스를 정의한 후에 관계를 정의합니다. 액터는 개발하는 시스템 주변의 모든 것을 말합니다. 시스템을 사용하는 사용자 뿐만 아니라 시스템을 사용하는 프로그램이나 시스템이 사용하는 외부 시스템도 액터입니다. 이 에이치 프로그램은 최종 사용자 외에 다른 액터가 존재하..

[C++] 68. 최종 실습 - 개발 공정 및 시나리오

[C++] 68. 최종 실습 - 개발 공정 및 시나리오 전산 기술은 하루가 다르게 발전하고 새로운 기술이 나오고 있습니다. 그리고 프로젝트의 규모가 점점 늘어나고 있으며 다른 산업 분야와 접목하는 형태로 발전하고 있습니다. 프로그램의 규모가 커지고 많은 인력이 필요한 형태로 변하면서 효과적인 개발 공정과 많은 이해 관계자에게 프로그램의 구조를 설명하고 개발자 사이에 의사 소통할 수 있는 방법들이 생기고 있습니다. 여기에서는 여러 가지 개발 방법론 중에 많은 이들이 사용하는 CBD 개발 방법론을 적용해서 마지막 실습을 진행할게요. 일반적인 CBD 개발 방법론에서는 요구 분석 및 정의 단계, 아키텍쳐 단계, 설계 단계, 구현 단계, 배포 단계로 나누고 있습니다. 이 중에 아키텍쳐 단계는 프로그램을 컴포넌트 ..

[C++] 66. 의존(DEPENDENCY) 관계

[C++] 66. 의존(DEPENDENCY) 관계 의존 관계는 다른 개체의 변화가 발생했을 때 자신에 영향을 받는 개체 사이의 관계입니다. 그리고 특정 개체의 생성을 담당할 때도 의존 관계로 표현합니다. GUI(Graphic User Interface) 프로그램에서 특정 데이터의 정보를 화면에 표시하는 컨트롤과 데이터 사이에는 의존 관계로 표현할 수 있습니다. UI 컨트롤을 통해 사용자가 개체의 속성을 입력하면 의존 관계에 있는 개체의 속성을 변경해야겠죠. 혹은 개체의 속성이 변하면 UI 컨트롤을 통해 변경한 정보를 사용자에 알려주어야 할 것입니다. 이 책에서는 GUI를 다루고 있지 않아 이와 같은 의존 관계는 표현하지 않을 거예요. 소프트웨어 설계에 관한 많은 레퍼런스에서는 UI 컨트롤과 개체 사이의 ..

[C++] 65. 연관(ASSOCIATION) 관계

[C++] 65. 연관(ASSOCIATION) 관계 연관 관계는 명령 개체와 피 명령 개체가 명확하지 않은 관계입니다. 프로그램에서는 연관 관계로 표현하지 말고 직접 연관 관계로 표현하는 것이 안전합니다. 연관 관계는 약사와 의사처럼 "약사와 의사는 환자 치료에 연관이 있다."와 같이 수평적인 관계입니다. 의사는 환자 치료를 위해 어떠한 약을 처방받아 먹고 있는지 알 수 있어야 합니다. 또한 약사는 약을 조재하기 위해서는 의사의 처방이 필요합니다. 그런데 이와 같은 관계에서 프로그램을 잘못 작성하여 버그가 날 위험이 많습니다. 예를 들어 의사의 “치료하다” 기능에서 약사의 “조재하다”를 호출하게 구현하고 약사의 “조재하다” 기능에서 의사의 “치료하다”를 호출한다면 스택 오버 플로우가 발생할 것입니다. 물..

[C++] 63. 구성(COMPOSITION) 관계

[C++] 63. 구성(COMPOSITION) 관계 구성 관계는 소유 개체와 피 소유 개체 사이의 관계입니다. 이러한 관계는 집합 관계도 마찬가지입니다. 두 가지 관계 모두 “가지다.”로 표현할 수 있으며 영어로 “Has a”로 표현할 수 있어서 “Has a”관계라고 말합니다. 집합 관계는 소유 개체와 피 소유 개체의 생성과 소멸은 독립적으로 진행합니다. 필통과 연필의 관계처럼 개체의 생성과 소멸은 독립적인 특징을 갖습니다. 구성 관계는 소유 개체를 생성할 때 피 소유 개체를 생성하고 소유 개체를 소멸할 때 피 소유 개체를 함께 소멸합니다. 사람과 눈의 관계처럼 소유 개체를 생성할 때 피 소유 개체도 함께 생성하고 소유 개체를 소멸할 때 피 소유 개체도 함께 소멸합니다. CPP에서 구성 관계를 구현하는 ..

반응형