반응형

Ⅰ. Agility 강조 SW 개발 방법론, XP의 정의

- 의사소통과 TDD 기반으로 즉각 피드백과 짧은 개발 주기로 SW 품질 향상시키는 애자일 개발 방법론

- XP 등장배경

1) Time to Market 실현, Products 적시 배포

2) 급변하는 환경에 맞춰 개발 주기 단축

 

 

Ⅱ. XP 핵심 가치와 개발 프로세스

가. XP 핵심 가치 5가지

가치 설명
용기(Courage) 고객 요구사항 변화에 능동적 대처
단순성(Simplicity) 불필요 기능 구현 배제
의사소통(Communication) 개발자-고객간 활발한 의사소통
피드백(Feedback) 빠른 피드백 원칙
존중(Respect) 팀원간의 상호 존중

 

나. XP 개발 프로세스

프로세스 설명
사용자 스토리 요구사항 수집, 의사소통 도구
릴리즈 계획 수립 전체 프로젝트 배포 계획, 1~3주 주기
스파이크 어려운 요구사항, 잠재 솔루션 고려 프로그램
승인 검사 릴리즈 전 인수 테스트, 고객이 수행
소규모 릴리즈 소규모 빈번한 배포로 고객 이득 조기 제공

 

 

Ⅲ. XP 실천 방법

구분 실천방법 설명
개발 페어프로그래밍 두명이 한 컴퓨터에서 교대로 프로그래밍
공동 책임 코드는 누구든지 수정 가능
지속적 통합 지속적인 CI/CD
관리 게임 계획 User Story 이용하여 next release 결
작은 릴리즈 짧은 주기 배포 (2주 단위)
메타포 고객, 개발자간 의사소통 언어
구현 단순한 디자인 가능한 단순하게 설계
테스트 주도 개발 테스트 주도적 개발 방법
리팩토링 기능 변화없이 코드 수정
환경 40시간 작업 최대 주 40시간 작업
고객 상주 고객 풀타임 상주
기타 코딩 표준화 의사소통 향상을 위한 코딩 표준화

 

반응형
반응형

Ⅰ. 분할 독립 서비스 MSA, 서비스간 통신 제어관리 Service Mesh 개요

MSA 애플리케이션을 상호 독립적인 최소 구성 요소로 분할하여 구성
Service Mesh 서비스간 통신 제어/관리하는 MSA를 위한 인프라 계층

- MSA에 Service Mesh를 활용하여 트래픽 제어

 

Ⅱ. MSA, Service Mesh 구성도와 구성요소

가. MSA(Micro Service Architecture) 구성도와 구성요소

구분 구성요소 설명
User Interface 모바일, 웹, PC 다양한 환경에서 여러가지 기기를 통해 서비스 접속/이용
Gateway API Gateway Orchestration REST API, 로드 밸런싱, 트래픽 제어
Micro Service Polyglot Program, DB 다양한 언어사용, 다양한 DB

- 마이크로서비스로 시스템 분할하여 유연하고 확장 가능한 구조로 빠른 CI/CD 지원

 

나. Service Mesh 구성도와 구성요소

구분 구성요소 설명
Control Plain Service Mesh Controllor 트래픽 제어 정책, Proxy 관리 컨트롤러
Data Plain Service Discovery 서비스 검색 기능 지
Circuit Breaker 오류 감지 및 차단
Load Balancing 로드 밸런싱 제공
Sidecar Proxy 트래픽 라우팅, 프록시

- API Gateway의 많은 기능이 Service Mesh로 흡수될 것으로 예측

반응형
반응형

Ⅰ. MVC 패턴

개념도
특징 - 컨트롤러가 입력을 받아 모델을 업데이트하고 뷰를 선택
- 컨트롤러는 뷰와 1:n 관계
- 모델과 뷰 사이의 의존성 문제 발생, 앱이 커지면 유지보수 어려움
구성 요소 - model: 데이터 처리 담당
- view: 모델을 화면에 표시, UI
- controller: 사용자 입력 받아 model 업데이트

 

Ⅱ. MVP 패턴

개념도
특징 - 모든 입력은 뷰로 전달, Presenter가 모델 업데이트
- Presenter가 뷰와 모델 사이 매개체 역할
- 뷰와 Presenter 의존성 문제
구성요소 - Model: 데이터 처리 담당
- View: 모델을 화면에 표시, UI
- Presenter: View와 Model의 매개체

 

Ⅲ. MVVM 패턴

개념도
특징 - ViewModel과 데이터 바인딩을 통해 View 업데이트
- 서로 간 의존성이 없음
구성요소 - Model: 데이터 처리 담당
- View: 모델을 화면에 표시, UI
- ViewModel: Model의 데이터를 View와 매핑해 데이터 바인딩

 

Ⅳ. MVI 패턴

개념도
특징 - 서로 간 의존성 없음
- 단방향 데이터 흐름으로 유지보수 용이
구성요소 - Model: 데이터 처리 담당
- View: 모델을 화면에 표시, UI
- Intent: 입력을 받아 Model에 처리 동작(Intended action) 제공
반응형
반응형

Ⅰ. 소프트웨어 재사용성 향상, 객체 지향 프로그래밍의 정의

- 현실세계의 개체(Entity)를 속성(Attribute)과 행위(Method) 결합 객체(Object)로 표현하여 프로그래밍 하는 기법

 

Ⅱ. 객체 지향 프로그래밍 특징

특징 개념도 설명
캡슐화
- 서로 연관있는 속성, 기능을 캡슐로 만들어 외부로부터 보호, 접근지정
- 데이터 보호, 데이터 은닉, 낮은 결합
추상화
- 공통 속성, 행동을 추출 이름 부여
- 공통 속성 추출해 슈퍼 클래스 생성
다형성
- 같은 이름의 메소드나 연산자가 다른 클래스에 대해 다른 동작 수행
- 오버로딩: 같은 이름에 다른 타입 재정의
- 오버라이딩: 상위 Class Method 참조/재정의
정보은닉
- 외부에서 내부정보 알 수 없도록 정보 은닉
- 외부에서 내부 정보 변경할 수 없도록 캡슐화
상속성
- 부모 클래스로부터 새로운 자식 클래스 메소드 정의
- 재사용성 향상, 유지보수성 향

 

Ⅲ. 객체지향 프로그래밍과 절차지향 프로그래밍 비교

구분 절차지향 객체지향
정의 - 순차적 처리 중시, 프로그램 전체가 유기적 연결 - 실제 세계를 모델링해 객체 중신 소프트웨어 설계
장점 - 실행 속도 빠름
- 설계가 상대적으로 쉬움
- 재사용성 용이
- 유지보수 용이
단점 - 유지보수 어려움
- 수정 / 재사용이 어려움
- 실행 속도 느림
- 설계의 어려움
반응형
반응형

Ⅰ. 사람 중심의 개발론, Agile 선언문 개요

정의 경량 개발 지지자들이 모여 효율적인 개발, 제품 중심의 개발 방법론 선언
등장 배경 - SW 환경 변화
- 다양한 요구, 생명주기 단축
- 기존 방법론의 한계

 

 

Ⅱ. Agile 선언문의 4대 가치 및 12대 원칙

가. Agile 선언문의 4대 가치

- 고객 만족, 의사소통 등을 중요한 가치로 선언

 

나. Agile 개발 방법론의 12대 원칙

# 원칙 설명
1 고객 만족 추구 고객 만족이 최우선 과제
2 요구사항 변경 수용 고객의 요구사항 변경 적극 수용
3 짧은 배포 간격 CI/CD 도구 통한 빠른 통합/배포
4 의사소통 중시 효율적 의사소통 추구
5 동기부여 사람 중요 상호존중 문화, 팀원 추구
6 면대면 대화 현업 - 개발자의 대화 중시
7 작동하는 소프트웨어 SW의 기능/비기능 관리
8 지속가능한 개발 지속 가능한 개발 환경 구현
9 좋은 기술, 설계 복잡성 줄이는 아키텍처
10 단순성 추구 일정, 진행 사항 단순화
11 자기 조직적 팀 조직 생산성 증대, 책임감
12 효율성 제고 스프린트 리뷰, 효율성 증대

- Agile 방법론은 절차보다 사람 중심의 가치 중시

 

반응형
반응형

Ⅰ. 양질의 SW를 빠른 시간안에 전달, XP의 정의

- 수시로 발생하는 고객 요구사항에 유연하게 대응위해 의사소통 개선, 즉각적인 피드백에 의해 SW 품질을 향상 방법론

 

Ⅱ. XP의 핵심 가치 및 실천 방법

가. XP(eXtreme Programming)의 핵심 가치

가치 설명
의사소통 관리자, 개발자, 고객 간의 적극적 의사소통
단순함 부가 기능, 불필요 기능 및 구조 배제
용기 고객의 요구사항 변화에 능동적으로 대처
피드백 빠른 피드백으로 문제 해결
존중 구성원 상호간의 상호존중

 

나. XP(eXtreme Programming)의 실천 방법

구분 실천 방법 설명
개발 Pair Programming 다른 사람과 함께 프로그래밍,개발 공동 책임
Collective Ownership 개발 코드 권한과 책임 공동 소유
Whole Team 참여 모든 구성원이 역할에 책임
Continuous Integration 모듈 단위 개발 후 지속적 통합
관리 Planning Game 유저 스토리 이용 다음 릴리즈 결정
Small Releases 릴리즈 기간을 짧게 반복, 요구사항 신속히 대응
구현 Simple Design 코딩을 가능한 간단하게, KISS(keep it small and simple) 원칙
Refactoring 기능 변화없이 코드 수정
Test-Drive Development 테스팅 도구 사용, 테스트 케이스 작성
환경 40시간 작업 최대 40시간 근무
고객 상주 고객이 풀타임 상주
반응형
반응형

Ⅰ. 프로젝트 일정 변경 가능한 자원 평준화 개요

정의  - 특정 자원에 과도한 부하가 걸리는 것을 방지하기 위해 일정을 평준화하여 자원 최적화하는 기법
개념도
적용 사례 - 핵심 인력의 활용 시점이 제한적인 경우
- 스케줄 조정이 가능한 경우

- 일정과 원가의 트레이드 오프 영향을 고려하여 프로젝트 상황에 맞게 적용

 

Ⅱ. 프로젝트 일정 변경 불가한 자원 평활화 개요

정의 일정 지연을 방지하기 위해 자원을 균형있게 투입하여 프로젝트 CP 활동 지연 방지 기
개념도
적용 사례 - 반드시 납기 일정 준수해야하는 경우
- 자원 사용이 고르게 배분되지 않은 경우

- 일반적으로 자원 평준화 이후 자원 평활화 수행

 

Ⅲ. 자원 평준화와 자원 평활화 비교

구분 자원 평준화 자원 평활화
목표 자원 수요/공급 균형 균일한 자원 활용
일정 지연 일정 지연 가능(CP 변경) 일정 지연 없음(CP 변동 없음)
원가 영향 원가 절감 가능 원가 초과 가능
관리 자원 핵심인력 비핵심인력
적용 대상 Total Float이 0 이상인 작업 Total Float과 Free Float 내 조정

 

반응형

+ Recent posts