본문 바로가기
반응형

분류 전체보기104

[객체지향 설계 5원칙] 유지보수와 확장에 용이한 시스템을 위한 원칙 I. 유지보수와 확장에 용이한 시스템을 위한, 객체지향 설계 5원칙의 개요 가. 객체지향(Object-Oriented) 설계원칙의 개념 - 코드 작성시 유지보수, 유연성, 확장성을 용이하게 하기 위해 SRP, OCP, LSP, ISP, DIP로 구성된 설계 원칙 → 시스템에 새로운 요구사항이나 변경이 있을 때 영향도를 최소화하는 설계 나. 객체지향 설계원칙의 필요성 - 잘못 관리된 의존성 때문에 Design Smell 발생하여 유지보수/확장의 어려움 ※ Spaghetti Code → 의존성 관리에 대한 가이드 필요 [참고] Design Smell Rigidity (경직성) 특정 모듈을 수정하면 다른 모듈을 계속 수정해야 함 Fragility (취약성) 특정 모듈의 수정이 다른 모듈에 문제를 일으킴 Imm.. 2021. 1. 6.
[Agile 방법론] 작동하는 SW 중심 I. 작동하는 소프트웨어 중심, 애자일 방법론의 개요 가. 애자일(Agile) 방법론의 정의 - 절차와 산출물 보다는 소프트웨어 중심으로 요구사항 변화에 유연, 신속하게 대응하여 효율적으로 개발할 수 있는 방법론 - 고객과 협업, 실행가능 SW, 환경과 고객 변화 대응의 가치를 강조하는 애자일 방법론 선언문 - (The Manifesto for Agile Software Development) - 전통적인 모델은 산출물 위주의 거대하고 무거운 방법론에 해당한다. 이러한 방법론은 요구 사항의 변화에 유연하게 대처하기 어렵다는 큰 문제점 나. 애자일 방법론의 등장배경 등장배경 설명 S/W 개발환경의 변화 적시성(Time-to-Market)과 적시 배포(Release)의 중요성 증대 기존 개발방법론의 한계 문.. 2021. 1. 6.
나선형 모델(Spiral Model), 위험 최소화를 위한 진화적 프로토타이핑 I. 위험 최소화를 위한 진화적 프로토타이핑, 나선형 모델의 개요 가. 나선형 모델(Spiral Model) 정의 - 시스템 개발 위험을 최소화하기 위해 나선으로 돌면서 계획, 위험분석, 개발, 평가의 단계를 반복하면서 점진적으로 소프트웨어를 완성하는 모델 - 개발된 Prototype을 지속적으로 발전시켜 최종 SW에 이르게 하는 모델 - Waterfall Model 및 Prototyping Model의 장점에 위험 분석을 추가한 모델 나. 나선형 모델의 특징 특 징 설 명 위험 최소화 위험식별 및 대응계획 수립을 통한 위험 최소화 점진적 구체화 반복, 진화적, 프로토타입 개선으로 시스템을 구체화 고수준 품질 고객평가(Feedback)에 따른 진화적 라이프 사이클 - 대규모 시스템 및 위험 부담이 큰 시.. 2020. 12. 30.
PMI협회 유료멤버십 비용 자동갱신 해제 방법(PMP자격증 합격자 및 응시자 주의사항) PMP 자격증을 획득하고 얼마 지나지않아 PMI 유료멤버십 가입한 것을 해지해야 다음에 자동결재가 되지 않는다는 사실을 알게되었습니다!! 그래서 부랴부랴 자동갱신 해제하는 방법을 찾아보니 해제하는 방법은 다행히 간단하더군요. 모른채로 그대로 돈낼 뻔했습니다...ㅠㅠ 찾은 내용 공유합니다 PMI협회에 주관하는 시험을 보기 위해서는 pmi.org에 유효회원($139)으로 가입하는 것이 할인혜택이 있어, 한국의 경우 대부분 PMP자격증 시험 및 기타 시험에 응시하는 분들이라며 Membership에 가입을 한다. PMI협회 유료회원 가입 후 1년이 지나면 본인도 모르게 PMI협회 Membership(유료회원) 갱신과 $129가 결제되었다는 안내메일을 받게된다. 이 부분은 PMP자격증 취득여부와 관계 없이, 유료.. 2020. 12. 29.
OSI 7 Layer OSI 7 Layer I. OSI 7 Layer의 개요 가. OSI 7 Layer의 정의 네트워크 통신 시 발생하는 여러 가지 충돌 문제를 완화하기 위하여, 국제 표준기구(ISO)에서 네트워크 구조를 제시한 네트워크 표준 모델 (ISO 7498) TCP/IP와 비교하여, 교육, 연구 등에 OSI 7 Layer를 표준(de jure)으로 사용하며, 산업 현장에서 일반적으로 TCP/IP를 표준(de facto)으로 사용하여 네트워크 계층 모델을 적용 나. OSI 7 Layer의 특징 포괄적 모델 네트워크 표준을 하나의 모델로 포괄하여 구현 시 참조 모델로 활용 개념적 모델 계층구조(Layered Architecture)의 정의 및 설명 도구 계층화 네트워크 통신기능을 Layer로 나눔으로써 Layer간 영향.. 2020. 12. 26.
해밍 거리란? 해밍 거리 블록 부호 이론에서, 해밍 거리(Hamming距離, : Hamming distance)는 곱집합 위에 정의되는 거리 함수이다. 대략, 같은 길이의 두 문자열에서, 같은 위치에서 서로 다른 기호들이 몇 개인지를 센다. '1011101'과 '1001001'사이의 해밍 거리는 2이다. (1011101, 1001001) '2143896'과 '2233796'사이의 해밍 거리는 3이다. (2143896, 2233796) "toned"와 "roses"사이의 해밍 거리는 3이다. (toned, roses) 2020. 12. 25.
프로토타이핑 모델(Prototyping Model), 고객의 원활한 의사소통을 위한 시제품을 통한 점진적 개발 방법 Ⅰ. 고객과 원활한 의사소통을 위한 시제품을 통한 점진적 개발 방법, 프로토타이핑 모델의 개요 가. 프로토타이핑 모델(Prototyping Model)의 정의 - 사용자의 요구사항을 충분히 분석할 목적으로 시스템의 일부분을 시험적으로 구현하고, 사용자의 피드백을 받아 다시 요구사항에 반영하는 과정을 반복하는 개발 모델(점진적 개발 방법) 나. 프로토타이핑 모델의 특징 특징 내용 점진적 상세화 신속하게 모형을 개발 후 사용자들의 피드백을 통해 시스템 개선/보완 사용자 참여 적극적 사용자 참여를 유도하여 요구 분석의 어려움을 해결 의사소통 도구 요구사항 도출과 이해에 있어 사용자와 의사소통 수단으로 활용 요구사항 도출 고객이 원하는 것이 무엇인지 구체적으로 잘 모르는 경우, 간단한 시제품을 개발하여 보여줌으.. 2020. 12. 22.
[CBD(Component Based Development)], 제품생산성과 품질향상을 위한 방법론 I. 제품생산성과 품질향상 위한 CBD(Component Based Development) 방법론의 개요 가. CBD(Component Based Development) 방법론의 정의 - 객체지향 개발 방법론의 단점인 SW 재사용 한계 개선, 기 개발된 SW 컴포넌트를 조립하여 새로운 시스템 구축하는 방법 나. CBD 방법론의 등장배경 구분 내용 OOP 문제점 해결 필요 OOP는 코드수준의 재사용 - CBD는 실행모듈 단위로 재사용 가능 - 새로운 기능 추가/변경 용이 조직의 변화 (과거) 부서중심 단일업무 - 가상조직, e-Biz., 고객 중심 업무로 변화 (재사용성/상호운용성/생산의 적시성/사용자 위주) - 객체지향 개발 방법론(OOP) 문제점인 개발 생산성, 재사용성, 시스템 유지보수성 등 해결 위.. 2020. 12. 22.
[RAD(Rapid Application Development)], 사용자 참여와 도구를 활용한 개발속도 향상 방법 I. 사용자 참여와 도구를 활용한 개발속도 향상 방법, RAD의 개념 가. RAD(Rapid Application Development)의 정의 - 2~3개월의 짧은 생명주기로 소프트웨어를 개발하는 순차적인 프로세스 모델 - 노력의 최소화, 빠른 개발, 좋은 품질을 위해 SW 개발도구(Visual Tool, Code Generation Tool)사용 나. RAD의 특징 특징 설명 사용자 참여 프로토타이핑 사용 및 사용자가 요구사항정의, 분석, 설계 과정에 적극참여 도구 활용 CASE 도구, RDB, 재사용 Library 등의 도구 적극 활용 단기 적합성 2~3개월 정도의 짧은 기간으로 기술적 위험이 적고 빠른 개발이 요구될 때 적합 II. RAD 개발 모델의 개념도 및 구성요소 가. RAD 개발 모델의 .. 2020. 12. 21.
[SDLC(Software Development Life Cycle)], 소프트웨어 개발 생명주기 I. 소프트웨어 개발 생명주기, SDLC의 개요 가. SDLC(Software Development Life Cycle) 정의 - 소프트웨어가 타당성 조사로부터 계획, 개발, 유지보수, 폐기까지 전과정을 하나의 주기로 보고 전 과정을 단계별로 나눈 생명주기 - 조직 내에서의 장기적인 개발 계획과 개발과정 중심의 관점 - 프로세스 모델 또는 소프트웨어 공학 패러다임이라고 불림 나. SDLC 등장배경 구 분 설 명 규모 측면 소프트웨어 대규모화와 위기로 체계적인 위기 해법 및 SW 개발 필요 엔지니어링 측면 소프트웨어 엔지니어가 수행할 기술적 업무의 순서지침 제공, 활동, 산출물 제시 관리 측면 효과적인 소프트웨어 개발 수행 필요(전체 SW 프로젝트 60%가량 실패) 품질 측면 예산, 자원, 개발환경 등 다.. 2020. 12. 20.
Incremental Development Model(증분형 개발모델) vs Evolutional Development Model(진화형 개발모델) 비교분석 I. 지속적인 프로토타입 반복 개발 모형, 증분형 개발 모델의 개요 가. 증분형 개발 모델(Incremental Development Model)의 정의 - 사용자의 요구사항 또는 제품의 일부분을 점증적으로 병행 개발 후 통합하는 방법 나. 증분형 모델의 특징 특징 설명 폭포수 모델의 변형 - 폭포수 모델의 변형으로 증분을 각각 순차적으로 개발 후 통합 - 프로토타이핑 모델과 같이 반복적이나 각 증분의 S/W 인도에 초점 병행 개발 가능 - 각 증분에 개발자원을 할당하여 병행으로 개발함으로써 일정단축 관리의 복잡성 - 증분 수가 많고, 병행개발이 빈번하게 발생하여 관리가 복잡 - PM은 조율에 많은 노력 필요 II. 증분형 개발 모델의 구성도 및 구성요소 가. 증분형 모델의 구성도 나. 증분형 모델의 구.. 2020. 12. 18.
[데이터 경제(Data Economy)] 데이터 활용을 통한 가치 창출 경제 I. 데이터 활용을 통한 가치 창출 경제, 데이터 경제(Data Economy)의 개요 가. 데이터 경제(Data Economy)의 정의 - 데이터의 활용이 다른 산업발전의 촉매역할을 하고 새로운 제품과 서비스를 창출하는 경제. - 모든 데이터가 활용하기 쉽게 자유롭게 흘러 타 산업발전의 촉매역할을 하면서, 혁신적-비즈니스와 서비스를 창출하는 경제(한국정보화진흥원) 나. 데이터 경제의 중요성 구분 설명 신자본 - 신자본 혁신적 서비스 투입자본 - 국가와 기업 혁신 키워드 데이터 폭증 - 경제 활성화 견인 원동력 - 서비스 창출 투입요소 활용 패러다임 변화 - 다양한 주체의 데이터 생산/활용 - 데이터 경제 가치사슬 형성 II. 가치창출 체계 - 데이터 생태계의 가치사슬(데이터의 수집, 저장, 유통, 활용.. 2020. 12. 17.
반응형