728x90

이 포스팅은 주관적으로 중요하다고 생각한 키워드를 정리한 글입니다.

스크럼 개발 프로세스

스프린트 계획 회의 -> 스프린트 -> 일일 스크럼 회의 -> 스프린트 검토 회의 -> 스프린트 회고

XP 핵심 가치

의사소통, 단순성, 용기, 존중, 피드백

요구사항 개발 프로세스

도출 -> 분석 -> 명세 -> 확인

UML

  • 사물 : 구조, 행동, 그룹, 주해

  • 관계 : 집합(◇ㅡ), 포함(◆ㅡ), 의존(<·······), 일반화(◁ㅡ), 실체화(◁---)

  • 다이어그램

    • 정적 모델링 -> 구조적 다이어그램 : 클래스, 객체, **컴포넌트, 배치(구현단계)**, 복합체, 패키지

    • 동적 모델링 -> 행위 다이어그램 : 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용, 타이밍

UI

  • 와이어프레임 : 뼈대

  • 목업 : 정적형태

  • 스토리보드 : 와이어프레임 + 이동 흐름, 설명

  • 프로토 타입 : 인터랙션, 테스트

품질 요구사항

  • 기능성(적합성, 정밀성, 상호운용성, 보안성, 호환성)

  • 신뢰성(성숙성, 고장 허용성, 회복성)

  • 사용성(이해성, 학습성, 운용성, 친밀성)

  • 효율성(시간 / 자원 효율성)

  • 유지보수성(분석성, 변경성, 안정성, 시험성)

  • 이식성(적용성, 설치성, 대체성, 공존성)

소프트웨어 아키텍쳐

  • 모듈화 : 모듈의 개수와 크기는 반비례, 개수와 비용은 비례

  • 추상화 : 세분화하여 구체화

    • 과정 추상화 : 전반적인 흐름

    • 데이터 추상화 : 데이터의 세부사항 정의 x

    • 제어 추상화 : 이벤트의 발생의 세부사항 정의 x

아키텍쳐 패턴

  • 레이어 패턴

    • 계층식 마주보는 두 계층사이 상호작용

    • 상위 : 서비스 제공자 / 하위 : 클라이언트

  • 클라이언트 서버

    • 하나의 서버 다수의 클라이언트

    • 요청을 위한 동기화를 제외하곤 독립적

  • 파이프 필터

    • 데이터 스트름 절차의 각 단계를 캡슐화하여 파이프를 통해 전송

    • 데이터 변환, 버퍼링, 동기화

  • MVC(모델 뷰 컨트롤러) 패턴

    • 모델 : 서브시스템의 핵심 기능과 데이터 보관

    • 뷰 : 사용자에게 정보 표시

    • 컨트롤러 : 사용자로부터 받은 입력 처리

    • 대화형 애플리케이션

  • 마스터-슬레이브 : 작업 분할 후 다시 돌려받음

  • 브로커 패턴 : 브로커 컴포넌트가 요청에 맞는 컴포넌트 연결

  • 피어투피어 패턴 : 피어가 서버도 되고 클라이언트도 됨

  • 이벤트 버스 : 구독한 리스너에게 메시지 받아 이벤트 처리

  • 블랙보드 : 검색을 통해 블랙보드에서 데이터 찾음

모듈

  • 결합도는 약하게 응집도는 강하게

  • 결합도 : 모듈 간의 관계

    • 내용 : 내부 기능, 내부 자로 참조

    • 공통 : 공통 데이터 영역

    • 외부 : 외부의 다른 모듈에서 참조

    • 제어 : 제어 신호 이용하여 통신하거나 요소를 전달

    • 스탬프 : 자료구조가 전달됨

    • 자료 : 매개변수 데이터 넘겨줌

  • 응집도 : 모듈 내부 요소가 관련된 정도

    • 기능적 : 단일 문제와 연관

    • 순차적 : 모듈에서 나온 데이터가 다음 모듈의 입력

    • 통신적 : 동일한 입력과 출력하여 서로 다른 기능

    • 절차적 : 다수 기능 시 기능을 순차적으로 수행

    • 시간적 : 특정 시간

    • 논리적 : 유사한 성격 혹은 특정 형태

    • 우연적 : 관련 없는 요소들로 구성

디자인 패턴

  • 생성 패턴

    • 추상 팩토리 : 구체적인 클래스에 의존하지 않고 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현

    • 빌더 : 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체 생성

    • 팩토리 메소드 : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴

    • 프로토타입 : 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴

    • 싱글톤 : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만 여러 프로세스가 동시에 참조할 수는 없음

  • 구조 패턴 : 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴

    • 어댑터 : 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴

    • 브리지 : 구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성한 패턴

    • 컴포지트 : 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴

    • 데코레이터 : 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴

    • 퍼싸드 : 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구상함으로써 서브 클래스의 기능을 간편하게 사용할 수 있도록 하는 패턴

    • 플라이웨이트 : 인스턴스가 필요할 때마다 생성하는 것이 아닌 공유해서 사용함으로써 메모리를 절약하는 패턴

    • 프록시 : 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴

  • 행위 패턴 :클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의한 패턴

    • 책임 연쇄 : 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴

    • 커맨드 : 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴

    • 인터프리터 : 언어에 문법 표현을 정의하는 패턴

    • 반복자 : 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴

    • 중재자 : 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴

    • 메멘토 : 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴

    • 옵서버 : 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴

    • 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴

    • 전략 : 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴

    • 템플릿 메소드 : 상위 클래스에서 골격을 정의하고 하위 클래스에서 처리를 구체화하는 구조의 패턴

    • 방문자 : 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴

요구사항 검증 방법

  • 동료 검토 : 직접 설명하는걸 동료들이 들으면서 결함 발견

  • 워크 스루 : 미리 배포하여 사전 검토 후 짧은 회의를 통해 발견

  • 인스펙션 : 검토 전문가들이 발견

  • CASE : 일관성 분석을 통해 표준 준수 여부 확인

시스템 연계 기술

  • DB Link, API/Open API, EAI(송수신 처리 현황 모니터링, 통제), Socket, Web Service

미들웨어

  • RPC : 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출

  • MOM : 메시지 기반의 비동기형 메시지 전달

  • TP-Monitor : 트랜잭션 처리 및 감시

  • ORB : 객체 지향 미들웨어

  • WAS : 동적인 콘텐츠 처리

728x90

+ Recent posts