내 머리속에서 애자일(Agile)하면 제일 먼저 떠오르는 것은 바로 스크럼(Scrum)이다. 요즘에는 관심이 좀 식었지만 한 때 폭발적인 관심으로 애자일 = 스크럼이 될 정도였었다. 대기업에서는 특히 스크럼을 실행하는 곳이 많았는데 사이트를 가면 스크럼 기반으로 만들어진 팀부터 프로젝트 관리까지 스크럼 투성이었다. 몇년전 당시 다니던 회사의 본부장님은 SW 품질쪽으로는 유명하신 분이라서, 애자일과 스크럼, 칸반에 관련된 문서를 잔뜩 뽑아서 나눠졌던 기억도 있다. 그만큼 SW 품질이나 관리를 하는 사람들에게는 도저히 못들어본 말일 것이다. 우선 스크럼의 탄생은 일본 히토츠바시 대학의 노나카 이쿠지로와 타케우지 히로타카가 1986년 1~2월 Harvard Business Review에 올린 "The New ..
기업 비즈니스 서비스의 IT 의존도가 커지면서 IT 서비스는 단순한 IT 자원 관리의 차원을 초월하여 기업의 비즈니스 차원에서 관리되어야 합니다. 또한, 이러한 ITSM(IT Service Management, IT 서비스 관리)은 ITIL(IT Infrastructure Library)을 기반으로 하는 Best Practice(모범사례)를 참조하여 설계되고, 그 유효성이 검증 되어야 한다. 이러한 ITSM을 검증할 수 있는 효과적인 도구로 ISO 20000 인증이 있다. 1. IT 서비스 프로세스 관리 국제 표준, ISO 20000의 개요 가. ISO 20000의 개념 - ITIL을 기반으로 ITSM의 운영 및 관리 체계를 측정, 평가, 개선하기 위하여 제정한 국제 심사/인증 표준 나. ISO 2000..
객체지향에서 꼭 지켜야 할 원칙이 총 5가지 있는데 이걸 OOP 5대 원칙이라고 한다. 물론 이걸 머리속에 집중하며 5대원칙 중 하나는 뭐... 또 하나는 뭐... 이렇게 외우면서 설계 및 코딩하는 사람들은 없기 때문에 한두번 정도 이해하고, 나머지는 경험에서 우러나오는 개발을 하게 된다. OOP 5대 원칙을 줄여서 SOLID라고도 부른다(앞글자들 모음) 1. OOP 설계의 5대 원칙의 개요 가. OOP 설계의 5대 원칙의 개념 - 객체지향 소프트웨어 설계 도구들의 근본이자 목적이 되는 원칙 나. 객체지향 설계의 필요성품질 향상 : 재사용성, 유지보수 등을 통한 생산 및 품질의 향상모형의 적합성 : 현실 세계에서의 인간 사고와 유사일관성 유지 : 공정 단계간의 전환과 변경이 자연스럽고 신속함 2. OOP..
MDA는 OMG(Object Management Group, 객체 관리 그룹)가 그동안의 시행착오 끝에 만들어낸 독립적인 소프트웨어 자동화 기술이다. 한마디로 코드를 자동으로 찍어낼 수 있게 하기 위한 기술이라는 것인데 이러한 기술을 위해서는 모델을 종속적으로 설계하지 않고, 객관적으로 설계 한 후 플랫폼에 맞춰서 모델에 따른 코드를 생산한다. 환경이 Java라면, 자바코드를 생산하고, 환경이 C++이라면 C++의 코드를 생산한다고 이해를 하면 된다. MDA는 현재 금융같이 대규모로 코드를 생산해야 되는 곳에서 사용하고 있으며, 사실 MDA까지는 아니지만 전자정부 프레임워크같은 경우 개발자의 개발 기간을 확 낮추는 코드를 생성해주는 컴포넌트 기반의 코드 생성도 있다. 미래에는 개발자도 먹고 살기 힘든 시..
단계적 프로세스 모형을 구체적으로 구현한 클린룸 모델은 IBM사에서 만든 모델이다. 시스템의 핵심이 되는 부분을 최초의 프로토타입 모형으로 개발을 하고, 계속 증대해 나가는 나선형 모델 혹은 진화형 모델과 유사한 모델로 볼 수 있다. 클린룸은 오염 제어가 행해지고 있는 한정된 공간으로 공기 속에 포함되어 있는 먼지 뿐 아니라 온도, 습도, 실내 공기압, 가스성분, 정전기, 미진동, 전자파 등 환경조건이 제어되는 실을 의미 하는데 이와같이 철저한 혹은 완전 무결한 공정을 통해서 SW를 개발한다는 의미라고 받아 들이면 될 것이다. cleanroom의 모습1. 완전 무결한 소프트웨어 개발지향, 클린룸 모델 가. 클린룸 모델(Clean Room) 모델의 개념- 수학적(정형명세/검증), 통계적(테스트) 이론에 기..
칸반 방법론은 스크럼과 같이 국내 애자일 방법론계에서 상당히 핫한 방법론이다. 칸반이라는 용어는 간판의 일본어지만, 도요타 생산 시스템(TPS)에 있는 칸반이라는 카드에서 사용한 것을 의미한다. 즉 한자는 같더라도 내용은 다르다는 것... 사실 애자일이 다 그렇듯 별거 없다. 용기와 자신감과 잦은 소통과 짧은 회의 등등 이런것들이 애자일의 핵심인데 칸반도 그 방법론에 크게 벗어나지 않는다 다만 개발자들이 작업을 하는 것을 "간판(카드)"에 적어(혹은 포스트잇)서 시각화를 하는 것이 핵심이다. 우리가 말로서 누군가를 관리하고, 혹은 WBS를 열심히 작성하더라도 업무를 정확하게 파악하기란 힘이 든다(팀원이 많아지면 정말 골치 아프다) 칸반 기법은 이 관리를 상당히 단순화 시켜주고, 입체적으로 알수 있게 해준..
고속 응용 프로그램 개발(Rapid Application Developement, RAD) 또는 고속 응용 프로그램 개발 도구(Rapid Application Development Tool)는 소프트웨어 개발 방식의 하나로, 빠르고 쉽게 응용 프로그램을 만들 수 있는 시각적 도구 혹은 개발 모형이다. 한마디로 툴을 사용해서, 디자인을 하고, Code Generator를 활용하여 프로그램을 빠르게 개발하는 기법으로 쉽게 생각하면 된다. 대표적인 툴로는 파워빌더, Visual C#, Miplatform 같은 플랫폼이 있다. 만능인 것처럼 보이고, 개발자가 아닌 PM이나 기획자 입장에서 매우 매력적으로 보일지 모르겠지만, 전세계가 아직 자바의 시대에서 벗어나지 못한 이유는 언어의 한계도 있지만 툴로서의 기능의..
반복적 모형은 솔루션 업체들이 가장 선호하는 방법일 것이다. 바로 한번에 모든 것을 만들어서 오픈 하는 것이 아닌 핵심을 먼저 만들고, 나머지를 점진적으로 업데이트를 하여 최종 시스템을 완성하는 모델이다 프로토타입과 나선형 모델과 비슷한 느낌을 주지만, 프로토타입은 시제품을 만들어서 가능성 여부를 먼저 점검한 후 개발을 시작하는 것이고, 나선형 모델은 상당히 비슷하지만, Risk가 중심이 된 것이 나선형 모델이다. 반복적 모델은 2가지 방식이 있는데 증분형(Incremental) 모델과 진화형(Evolution) 모델이 존재한다. 증분형은 동시에 여러가지 업무를 진행하여, 나중에 합치는 작업이 들어간다면 진화형은 작업이 순차적으로 진행이 되면서, 프로그램이 계속 수정 작업을 거치며 진화하는 것이다. 1...
나선형 모델은, 위험관리를 강조 모형으로서, 폭포수 모델, 프로토타입 모델과 함께 고전적인 소프트웨어 개발 방법론 중 하나이다. 나선(Spiral)이 반복되는 걸로 보인다고 하여 붙여진 이름이며, Barry W. Boehm(배리 보앰)이라는 사람이 제안하였다. barry w. boehm 나선형 모델은 4가지 단계로 순환하는데 계획 및 정의위험분석개발고객의 평가(Feedback)방식으로 순환한다. 매번 반복하기 때문에 Risk 요인을 찾아내기 쉬우며, 대규모의 위험 요소가 내재되어 있는 프로젝트에 적용하면 적절한 방법론이다. 1. 진화적 프로토타이핑, 나선형 모델의 개요가. 나선형 모델(Spiral Model)의 정의- 개발 주요기능을 사전에 위험분석을 통하여 반복적으로 수행함으로써, 최종 소프트웨어 개발..
프로토타입 모델이란, 어떠한 프로젝트를 수행하기 전에 시제품을 만들어서 위험을 줄이고, 고객과의 의사소통을 원활하게 하기 위해서 만들어진 모델이다. 초기 프로토타입을 선 개발 후 프로젝트를 수행해야 하기 때문에 개발쪽에서 해당 프로젝트가 리스크가 없다라고 판단하고 있다면, 비용의 낭비를 경험할 수 있다. https://www.flickr.com/photos/daniel_ericka/5398643353 예를 들어, 우리쪽에서는 별 문제가 아니고 시제품을 만드는 비용이 꽤 들어간다고 해야 한다면 프로젝트 비용이 몇백에서 몇천만원 이상으로 올라갈 수도 있는 것이기 때문에 사실상 Case by Case 일 가능성이 크다. 대신, 시제품이 만들어진다면 추후 개발자는 시제품을 기준으로 편하게 개발을 할 수 있고, ..
1. 고전적 라이프사이클 SW 패러다임, 폭포수 모델 가. 폭포수모델(Waterfall Model)의 개념 - 분석, 설계, 개발, 유지보수 등의 SW Lifecyle이 정해진 단계로 진행되는 선형 순차적 모델 나. 폭포수모델의 특징 Phase Testing : 단계별 검증, 다음 단계 진행산출물 중심 : 표준화 되어 있는 양식과 문서중심의 프로세스 및 관리Top-Down 방식 : 전단계의 작업이 완료되어야 다음 진행이 가능한 하향식 2. 폭포수 모형의 프로세스 및 주요활동 가. 폭포수 모형의 프로세스 - 폭포수 모델은 해당 프로세스들을 순차적으로 수행 나. 폭포수 모델의 프로세스 주요활동 3. 폭포수 모델의 장단점 및 적용 프로젝트 가. 폭포수 모델의 장단점 1) 장점 : 복잡성 낮음, 관리용이, 사례..
1. 소프트웨어 공학의 패러다임, SDLC의 개요 가. SDLC(Software Development Life Cycle)의 개념 타당성 검토부터 시작하여, 개발, 폐기등 전 과정을 생명주기로 간주하고, 정의하여 단계별 공정을 체계화한 모델 나. SDLC의 등장배경SW의 Crisis에 따라 획기적인 대처 방법이 필요생산성 향상 및 고품질을 위한, 개발 모델 필요 소프트웨어(Software)와 위기(Crisis) 소프트웨어공학(Software Engineering)소프트웨어 위기 참조 2. SDLC의 개념도 및 프로세스 가. SDLC의 개념도 타당성 조사, 요구사항 분석, 설계, 개발, 테스트, 유지보수가 반복이 된 후, 폐기 된다 나. SDLC의 프로세스 3. SDLC의 선택방법 및 발전방향 SDLC는 ..