1. 모델링의 중요성 - 사용자 업무를 표현하는 수단이며, 개발자와 사용자 사이의 의사소통을 위해 사용 - 현실세계를 규칙적으로 나타낼 수 있어 공통적인 이해가 가능하게 함 시스템 개발은 어느 단계에서든지 오류가 발생할 가능성은 다분히 존재한다. 분석가는 의뢰인의 요구를 잘못 이해할 수 있으며, 의뢰인이 이해할 수 없는 문서를 만들어낼 수도 있다. 프로그래머가 분석 결과를 명쾌하게 이해하지 못하고 사용하기 어려운 프로그램을 만들어 냄으로써, 의뢰인의 문제를 제대로 해결해 주지 못할 수도 있다. 이를 해결하기 위해, 시스템 개발에 참여하는 분석가, 의뢰인, 프로그래머, 그 외의 모든 이들이 이해하고 동의할 수 있는 방법으로 설계 과정을 조직화해야한다. 모델은 바로 조직화 수단을 제공하기 위한 것이다. 모델..
리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. [ 리팩토링 시리즈 ] [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스 [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅 [C++] 누구나 쉽게, 리팩토링(클린코드)-④ 상속 (개념과 특징) 이번시간에는 리팩토링을 진행하면서 Null 객체를 도입에 대해 살펴..
★Object Oriented Programming★ ㅁ 객체지향 언어 추상화, 캡슐화, 상속, 다형성을 사용하여 유연성과 모듈성, 명료함 재사용성을 제공하는 부가된 특징을 가지고 있는 강력한 절차형 언어 - 모든 객체의 속성과 행동을 결합시킴으로써 실제 세계를 반영하는 방법으로 프로그램 구성 - 객체의 관점에서 생각하고, 프로그램은 상호작용하는 객체들의 모임으로 볼 수 있음 ㅁ 객체 명확히 확인이 가능한 실제 세계에서의 존재물을 대표하는 것. 책상, 원, 대여 등 - 객체는 자신만의 특성과 상태, 행동을 갖는다. * 상태(정적) : 현재 값을 가지고 있는 데이터 필드(= 속성)에 의해 표현됨 → 변수 * 행동(동적) : 일련의 함수에 의해 정의된다. 객체에 대한 함수를 호출하는 것은 객체에게 어떤 일을..
리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. [ 리팩토링 시리즈 ] [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스 [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅 이번시간에는 리팩토링을 진행하면서 상속개념에 대해 살펴보겠습니다. 4. 상속 스타크래프트의 마린과 고스트를 예로 설명하겠습니다. clas..
리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. [ 리팩토링 시리즈 ] [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스 [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅(이번글) 이번시간에는 리팩토링을 진행하면서 캐스팅 개념에 대해 살펴보겠습니다. 3. 캐스팅 캐스팅이란 형변환을 뜻합니다. 잘못된 형변환은..
리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. 리팩토링 시리즈 [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스(이번글) [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅(static·reinterpret·const·dynamic_cast)/타입체크 기능 이번시간에는 리팩토링을 진행하면서 인터페이스까지 함..
함수 하나의 작은 목적을 수행하기 위해 여러 문장을 모아 놓은 것 // 함수 헤더 returnValueType functionName(list of parameters) { // 함수 몸체 : 할 일 정의 } // 함수 호출 : 함수 사용 functionName(actual parameter); * 함수 헤더 : 함수의 반환값 유형(returnValueType), 함수 이름(functionName), 매개변수로 구성 ** 매개변수 : 함수 헤더에 작성된 변수. 함수가 호출될 때 값이 전달되어 저장되는 변수 ** 실매개변수(인수) : 호출하는 쪽의 매개변수 함수의 특징 5 int max(int num1, int num2) 6 { 7 int result; 8 9 if(num1 > num2) 10 result..
시리즈 글 보기 [소프트웨어공학] 애자일 소프트웨어 개발 방법론: Crystal 완벽 정리 B. Boehm, “A survey of agile development methodologies.” Laurie Williams, 2007. 보헴의 A Survey of Agile Development Methodologies 내용 중 스크럼 방법론에 관하여 정리한 내용입니다. 1. 스크럼 방법론 개요 - 스크럼 철학은 팀, 태스크를 가능한 가장 작은 절차를 주기적으로 반복 진행하는 것 - 스크럼 팀은 근거리에서 일하며, 자기 주도적(Self-directed)이며 자기 조직화(Self-organizing)적인 특징을 가짐 - 팀은 정의된 목표를 반복해서 수행하며, 목표를 가장 잘 충족하는 최선의 방법을 결정하는 ..
명령어 파이프라이닝 한 명령어의 수행이 끝나기 전에 다른 명령어의 수행을 시작하는 방법 - 컴퓨터의 처리율을 높이기 위한 방법 * Execution 한다고 쉬고 있는 것이 아니라 Fetch를 수행, 쉬지 않고 계속 구동 명령어 세트 연산코드(Operation Code) + 피연산자(Pperand) 연산코드 종류에 따른 명령어 세트 - 데이터 전송 명령어 : LDA, STA 등 - 데이터 처리 명령어 : ADD, AND 등 - 프로그램 제어 명령어 : BUN 등 피연산자 개수에 따른 명령어 세트 - 0 주소 명령어 : PUSH, POP - 1 주소 명령어 : ADD A, BUN A - 2 주소 명령어 : ADD A,B - 3 주소 명령어 : ADD A, B, C