본문 바로가기

기술사168

MSA(Micro Service Architecture) 무중단 배포, API Gateway I. 독립적 배치 가능한 서비스를 작은 단위로 분해, MSA의 개요 가. MSA(Micro Service Architecture)의 정의 - 무중단 배포를 위해 독립적으로 배치될 수 있는 작은 단위(모듈)로 기능을 분해하여 서비스하는 아키텍처 나. MSA의 등장배경 - 기술환경변화, 웹 서비스 레거시화, 서비스 공유의 일반화 다. MSA의 특징 - 서비스 단위의 컴포넌트화, 비즈니스 기능 중심구성, 프로젝트가 아닌 제품, 스마트 엔드포인트와 간단한 파이프, 개발의 분권화, 데이터 관리의 분권화, 인프라 자동화, 장애를 전제로 한 설계, 변화에 대응하는 설계 II. MSA의 구성도 및 구성요소 가. MSA의 구성도 - API G/W는 API 통신 중계, 공통 기능 추상화.. 2021. 1. 31.
콜백함수 이벤트 핸들러, 함수 정의 I. 이벤트 사용자가 함수 제어권 획득, 콜백함수의 개요 가. 콜백함수의 정의 - 다른 함수의 매개 변수로 호출될 함수를 전달하고 특정 이벤트가 발생하고 나서 매개변수로 호출될 함수가 다시 호출될 수 있도록 제공하는 함수 - 프로그램에서 함수를 제어하는 것이 아닌 이벤트를 발생시키는 사용자가 함수의 제어권을 가짐(IoC) 나. 콜백함수와 일반적인 함수의 비교 구분 콜백함수 일반함수 코드 예시 방식 - 피호출자가 호출자가 되어 다른 피호출자를 호출 - 함수로써 다름 함수에 전달되며, 이는 외부 함수 내에서 동작을 완성하기 위해 호출 - 호출자가 피호출자를 호출 - 파라미터를 받아 함수 내부로 진입이하고 결과값을 돌려줄 때는 return 키워드를 사용해 호출자에게 값을 전달하는 구.. 2021. 1. 31.
IoC (Inversion of Control) DL, DI, Setter Injection, Constructor Injection, Method Injection I. 프레임워크에 제어권 부여, IoC의 개요 가. IoC (Inversion of Control)의 정의 - 프레임워크에 제어의 권한을 넘겨 개발자가 작성해야 하는 코드상의 제어를 줄이는 전략 나. IoC의 특징 특징 설명 객체지향설계 IoC, AOP 이용 인터페이스 기반 객체지향 설계 재사용성 클래스, 객체 단위로 컴포넌트 재 사용성 증가 의존성 관리 XML기반 환경설정 파일 이용 객체간의 의존성 관리 용이 - 객체지향설계5원칙 중 DIP는 IoC의 기반 개념을 가진 원칙 II. IoC의 컨테이너 분류 및 종류 가. IoC 컨테이너 분류 Setter Injection: 클래스 사이의 .. 2021. 1. 31.
전자정부 프레임워크 스프링 프레임워크, 공공사업 표준 I. 스프링 프레임워크 기반 공공사업 표준 프레임워크, 전자정부 프레임워크의 개요 가. 전자정부 프레임워크의 정의 - 전자정부 서비스의 품질향상 및 정보화 투자 효율성 향상을 위해 공공사업 정보시스템의 표준 정립으로 표준화, 품질 및 재사용성을 향상 시킨 개발 프레임워크 나. 전자정부 프레임워크의 특징 특징 내용 개방형 표준 준수 오픈소스 기반의 범용화된 공개 기술의 활용, 특정 사업자 종속성 배제 상용 솔루션 연계 상용 솔루션과 연계가 가능한 표준을 제시하여 상호 운용성 보장 국가적 표준화 지향 민.관.학계로 구성 된 자문협의회를 통해 국가적 차원의 표준화 수행 변화 유연성 서비스 모듈화로 교체 용이, 인터페이스 기반 연동, 모듈간 영향 최소화 편리하고 다양한 환경 제.. 2021. 1. 31.
스프링 프레임워크(Spring Framework) IoC, AOP, ORM, MVC I. 전자정부 프레임워크의 핵심 근간, 스프링 프레임워크의 개요 가. 스프링 프레임워크(Spring Framework)의 정의 - EJB 기반의 복잡함과 무거움을 극복하기 위해 개발생산성 향상과 고품질의 시스템 개발을 위한 자바 플랫폼 상의 경량화된 오픈 소스 웹 어플리케이션 프레임워크 나. 스프링 프레임워크의 특성 구분 설명 비고 객체관리 컨테이너에서 직접 객체 관리 (생성/소멸) 관리 부담 감소 제어반전(IoC) 컨트롤의 제어권이 프레임워크에 존재 스프링에서 사용자 코드 호출 의존성주입(DI) 서비스들 간에 의존성이 존재할 경우 상호 연결 XML 파일 이용 환경설정 관점지향 프로그래밍(AOP) 여러 모듈에서 공통적으로 사용하는 기능의 분리 지원 추상화된 트랜잭션 관리.. 2021. 1. 31.
ATAM, CBAM ATAM, CBAM I. 품질 목표 간의 트레이드 오프 파악이 가능한 평가방법, ATAM의 개요 가. ATAM(Architecture Trade off Analysis Method)의 정의 - 아키텍처가 목표로 하는 품질 만족도, 각 품질 간의 연관성 나. ATAM의 특징 - Trade Off : 아키텍처가 품질속성에 만족하는지 여부 및 품질 속성들간 상호작용 - 적용시스템 : 레거시(Legacy) 시스템 분석에도 적용 - 아키텍처 스타일, 품질속성분석 등에 영향을 받음 - 참여자 : 평가팀, 프로젝트 결정권자, 아키텍처 이해관계자 등 다. ATAM의 개념도 - 비즈니스 드라이버 : 사업에 상당한 ㅇ영향을 주는 물리적, 비물리적 행위 II. 경제적 의사결정에 대한 요구 충족이 가능한 평가방법, CBAM의.. 2021. 1. 31.
소프트웨어 아키텍처 품질 평가 ATAM, CBAM, SAAM, ARID I. 소프트웨어 아키텍처 품질 평가 절차, 소프트웨어 평가의 개요 가. 소프트웨어 아키텍처 품질 평가의 정의 - 최적의 아키텍처 구현 및 선택을 위해 아키텍처 접근법이 품질 속성에 미치는 영향을 측정하여 아키텍처를 평가하는 표준 절차 나. 소프트웨어 평가의 필요성 - 소프트웨어 품질보증, 위험 관리, 영향도 평가, 프로젝트 성공요소 다. 소프트웨어 평가의 방법론 방법론 내용 Scenario Based 품질 요소를 위해 미리 정의된 Profile에 의존하여 평가 시나리오 기반평가 결과도 정밀, ATAM, SAAM, CBAM 등 Simulation Based BMT(Bench Mark Test) 시뮬레이션 기반 평가 Mathematical model Based 기준 .. 2021. 1. 31.
소프트웨어 아키텍처 문서화(Software Architecture Document) 결정근거(Rationale), Repository, 4+1 View I. 이해관계자들의 관심사 파악 및 관점 정의, SW아키텍처 문서화의 개요 가. 소프트웨어 아키텍처 문서화(Software Architecture Document)의 정의 - 이해관계자들의 관심사 파악 및 관점들을 정의하고 다양한 View로 SW 아키텍처를 기술한 문서 나. 소프트웨어 아키텍처 문서화의 특징 - 이해관계자들의 시스템 이해 및 관심사 해결, 의사소통 기준 및 의사결정 수단 활용 - 아키텍처 구축의 결정 근거(Rationale)를 제시, 불필요한 논쟁 방지 - SAD의 Repository 축적을 통해 SA프레임워크 및 참조모델 개발 가능, SA재사용 촉진 가능 - SDLC 단계 중 상위설계(개략설계) 단계에서 작성 II. 소.. 2021. 1. 31.
소프트웨어 아키텍처 스타일(Software Architecture Style) MVC (Model, View, Control), 저장소, 클라이언트-서버, 데이터플로우, 계층형 I. 시스템 품질 향상을 위한 패턴, 소프트웨어 아키텍처 스타일의 개요 가. 소프트웨어 아키텍처 스타일(Software Architecture Style)의 정의 - 아키텍처 설계에서 반복해서 나타나는 문제를 해결하고 아키텍처가 만족 시켜야하는 시스템 품질 속성을 달성할 수 있는 방법을 정리한 문서 나. 소프트웨어 아키텍처 스타일의 특징 - 견고하고 안정적이며 고품질의 시스템 구축가능 - 이미 검증된 아키텍처를 선택하여 시스템 구축 시 발생하는 문제를 초기단계에서 해결 - 작은 코드 수준의 재사용 보다는 전체 시스템의 구조, 설계 모형을 재사용하기 위한 재사용 규약 II. 소프트웨어 아키텍처 스타일 유형 (.. 2021. 1. 31.
소프트웨어 품질속성(Software Architecture Quality Attribute) ISO/IEC 25010(ISO 9126) I. 이해당사자 요구 만족도 측정, 테스트 소프트웨어 품질속성의 개요 가. 소프트웨어 품질속성(Software Architecture Quality Attribute)의 정의 - 시스템이 이해당사자의 요구를 얼마나 잘 만족시키는지를 나타내는 측정 가능하고 테스트가 가능한 특성 나. ISO/IEC 9126에서 ISO/IEC 25010으로 개정 요약 주특성 - 기존 : 기능성, 신뢰성, 사용성, 유지보수성, 이식성, 효율성 - 개정 : 기능적합성, 실행효율성, 호환성, 사용성, 신뢰성, 보안성, 유지보수성, 이식성 부특성 - 27개의 부속성에서 31개로 증가 - 일부 항목 삭제 - 각 주특성의 준수성(Compliance) 항목은 전체 삭제 II. 소프트웨어 품질속성.. 2021. 1. 31.
반응형