잡다한 배똥월드

728x90

 

 

 

7. XP(eXtreme Programming)의 주요 실천 방법

  • Pair Programming : 다른 사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로 나눠 갖는 환경을 조성
  • Collective Ownership : 개발 코드에 대한 권한과 책임을 공동으로 소유
  • Test-Driven Development : 개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하므로 자신이 무엇을 해야할지 정확히 파악
  • Whole Team : 개발에 참여하는 모든 구성원(고객 포함)들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야 함
  • Continuous Integration : 모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합됨
  • Design Improvement 또는 Refactoring : 프로그램 기능의 변경 없이, 단순화, 유연성 강화 등을 통해 시스템을 재구성
  • Small Releases : 릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응할 수 있음

 

 

 

 

8. 비정형 명세 기법

  • 상태/기능/객체 중심
  • 일반 명사, 동사 등의 자연어를 기반으로 서술 또는 다이어그램으로 작성
  • 자연어의 사용으로 인해 요구사항에 대한 결과가 작성자에 따라 다를 수 있어 일관성이 떨어지고, 해석이 달라질 수 있음
  • 내용의 이해가 쉬워 의사소통이 용이함
  • FSM, Decision Table, ER모델링, State Chart(SATD) 등

 

 

 

 

9. HIPO(Hierarchy Input Process Output)

  • 시스템의 분석 및 설계나 문서화할 때 사용되는 기법
  • 가시적 도표(Visual Table of Contents) : 시스템의 전체적인 기능과 흐름을 보여주는 계층(Tree) 구조도
  • 총체적 도표(Overview Diagram) : 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
  • 세부적 도표(Detail Diagram) : 총체적 도표에 표시된 기능을 구성하는 기보 ㄴ요소들을 상세히 기술하는 도표

 

 

 

 

10. UML 다이어그램 - 사물(Things)

  • 모델을 구성하는 가장 중요한 기본 요소
  • 다이어그램 안에서 관계가 형성될 수 있는 대상
  • 구조 사물(Structural Things) : 시스템의 개념적, 물리적 요소를 표현하며 대표적인 것으로 클래스, 유스케이스, 컴포넌트, 노드 등이 있음
  • 행동 사물(Behavioral Things) : 시간과 공간에 따른 요소들의 행위를 표현하며 대표적인 것으로 상호작용, 상태 머신 등이 있음
  • 그룹 사물(Grouping Things) : 요소들을 그룹으로 묶어서 표현하며 대표적인 것으로 패키지가 있음
  • 주해 사물(Annotation Things) : 부가적인 설명이나 제약조건 등을 표현하며 대표적인 것으로 노트가 있음

 

 

 

 

11. 소프트웨어 아키텍쳐 설계의 기본 원리 - 추상화(Abstraction)

  • 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시켜 나가는 것
  • 인간이 복잡한 문제를 다룰 때 가장 기본적으로 사용하는 방법
  • 완전한 시스템을 구축하기 전에 그 시스템과 가장 유사한 모델을 만들어서 여러 가지 요인들을 테스트할 수 있음
  • 최소의 비용으로 실제 상황에 대처할 수 있고, 시스템의 구조 및 구성을 대략적으로 파악할 수 있게 해줌
  • 과정 추상화 : 자세한 수행 과정을 정의하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 방법
  • 데이터 추상화 : 데이터의 세부적인 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법
  • 제어 추상화 : 이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표할 수 있는 표현으로 대체하는 방법

 

 

 

 

13. 객체지향(Object-Oriented) - 연관성(Relationship)

  • 두 개 이상의 객체(클래스)들이 상호 참조하는 관계를 말함
종류 의미 특징
is member of  연관화(Association) 2개 이상의 객체가 상호 관련되어 있음을 의미함
is instance of 분류화(Classfication) 동일한 형의 특성을 갖는 객체들을 모아 구성하는 것
is part of 집단화(Aggregation) 관련 있는 객체들을 묶어 하나의 상위 객체를 구성하는 것
is a 일반화(Generalization) 공통적인 성질들로 추성화한 상위 객체를 구성하는 것
특수화/상세화(Specialization) 상위 객체를 구체화하여 하위 객체를 구성하는 것

 

 

 

 

14. Booch 방법

  • 객체지향 분석의 방법론 중 하나
  • 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법
  • 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의함

 

 

 

 

15. GoF의 패턴 분류

  • 생성 패턴(Creational Pattern) : 객체의 생성과 참조 과정을 캡술화 하여 객체가 생성되거나 변경되어도 프로그램의 구조에 영향을 크게 받지 않도록 하여 프로그램에 유연성을 더해줌
  • 구조 패턴(Structual Pattern) : 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴
  • 행위 패턴(Behavioral Pattern) : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

 

 

 

 

26. 포인터 형(Pointer Type)

  • 포인터 : 변수의 주소
  • 포인터 변수 : 변수의 주소를 저장할 때 사용하는 변수
  • 포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에 간접 연산자 *를 붙임
  • 포인터 변수에 주소를 저장하기 위해 변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &를 붙임
  • 실행문에서 포인터 변수에 간접 연산자 *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함
  • 포인터 변수는 필요에 의해 동적으로 할당되는 메모리 영역인 힙 영역에 접근하는 동적 변수임

 

 

 

 

28. 프레임워크 특성

  • 모듈화(Modularity) : 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상시키며, 개발표준에 의한 모듈화로 인해 유지 보수가 용이해짐
  • 재사용성(Reusability) : 재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상, 품질 보증이 가능함
  • 확장성(Extensibility) : 다형성(Polymorphism)을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능함
  • 제어의 역흐름(Inversion of Control) : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴

 

 

 

 

30. Java의 대표적인 표준 라이브러리

  • jang.lang : 자바에 기본적으로 필요한 인터페이스, 자료형, 예외 처리 등에 관련된 기능을 제공하며 import문 없이도 사용할 수 있음
  • java.util : 날짜 처리, 난수 발생, 복잡한 문자열 처리 등에 관련된 기능을 제공
  • java.io : 파일 입 · 출력과 관련된 기능 및 프로토콜을 제공
  • java.net : 네트워크와 관련된 기능을 제공
  • java.awt : 사용자 인터페이스(UI)와 관련된 기능을 제공

 

 

 

 

33. 선언형 프로그래밍 언어

  • HTML, XML, PROLOG 등

 

 

 

 

53. E-R 모델

  • 개념적 데이터 모델의 가장 대표적인 것
  • 1976년 피터 첸(Peter Chen)에 의해 제안되고 기본적인 구성 요소가 정립됨
  • 개체와 개체 간의 관계를 기본 요소로 이용하여 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 펴현하기 위한 방법으로 많이 사용되고 있음
  • 개체 타입과 이들 간의 관계 타입을 이용하여 현실 세계를 개념적으로 표현함
  • 데이터를 개체, 관계, 속성으로 묘사
  • 특정 DBMS를 고려한 것은 아님
  • 개념 세계에서는 현실 세계에 대한 인식을 추상적 개념으로 표현하는데, 이 과정을 정보 모델링이라고 함

 

 

 

 

 

728x90

+ Recent posts