본문 바로가기

IT기술노트/소프트웨어공학134

TDD(Test-Driven Development) XP, 리팩토링, Red, Green I. 테스트 기반 개발 방법론, TDD의 개요 가. TDD(Test-Driven Development)의 정의 - 실제 코딩 전 테스트 코드(테스트 케이스)를 작성하고, 해당 테스트를 반복하여 오류가 나는 부분에 대한 코딩을 진행하는 방법론 나. TDD 의 특징 - 빠른 피드백, 상향식 접근방법, 빠른 개발 및 높은 신뢰성 확보, Simple Code - 애자일의 XP 에서 사용 II. TDD 의 절차 테스트 작성 오퍼레이션 요구 기능에 대한 인터페이스 개발 Add a Test 코드 작성 테스트에 대해 실행 가능한 코드를 신속하게 작성 Make it pass 리팩토링 중복코드/임시코드의 제거, 모듈화, 디자인패턴 Make it right 체크인 모든 테스트가 작동하는.. 2021. 2. 1.
웹 접근성(Web Accessibility) I. 웹 사이트 접근성 보장 환경, 웹 접근성의 개요 가. 웹 접근성(Web Accessibility)의 정의 - 어떠한 사용자가 어떤 기술 환경에서도 전문적인 능력 없이 웹 사이트에서 제공하는 모든 정보에 접근할 수 있도록 보장하는 환경 나. 웹 접근성의 필요성 - 이용자 확대, 이용상황 확대, 비용절감, 홍보효과, 균등기회 보장 II. 웹 접근성의 가이드라인 및 조건 가. 웹 접근성의 가이드라인 가이드라인 내용 WCAG 신체적으로 불편한 사람도 이용할 수 있도록 웹 컨텐츠 제작 방법 가이드라인 ATAG 저작도구 개발자 및 접근성 준수 제작 인터페이스를 만드는 개발자를 위한 가이드라인 UAAG 웹 브라우저 등 사용자 도구들도 신체적 불편이 있는 사람을 배려하도록 한 가이드라인 나. 접근성 있는 웹 컨텐.. 2021. 2. 1.
UX (User eXperience) UI, UX, 디자인 I. 사용자 경험 디자인, UX의 개요 가. UX (User eXperience)의 정의 - 사용자가 제품, 서비스 혹은 시스템을 사용하거나 체험하는데 있어 지각하는 것이 가능한 조직적 상호 교감적인 모델을 창조하고 개발하는 디자인 나. UX의 특징 - 주관성, 동적 정황성, 총체성 다. UX의 속성 - 사용성, 편의성, 정보 적응성, 신뢰성, 디자인 II. UX 의 관계도 및 지원요소 가. UX의 관계도 나. UX의 지원요소 구분 지원요소 설명 SW 분야 RIA 빠른 응답속도, 간결한 UI 제공 Search 2.0 서비스로의 사용자 경험 기반 지원 Human Computer Interaction 멀티모달 사용자 오감을 통한 실감형 정보 제공 햅틱 인터페이스 질감형, 역감형, 사용자.. 2021. 2. 1.
클래스 재사용 화이트박스, 블랙박스, 위임 I. 개발기간 단축을 위한 클래스 재사용의 개요 가. 클래스 재사용의 정의 - 개발시간을 단축하기 위해 기존 클래스를 이용하여 신규 클래스를 만드는 방법으로 재사용성, 응집도를 높이고 결합도를 최소화하도록 모듈화 관점에서 구현 나. 클래스 재사용 방법 재사용 방법 설명 화이트박스 재사용 일반화/상세화의 관계나 상속 구조를 통해 클래스의 구현사항을 재사용 블랙박스 재사용 객체의 내부는 공개하지 않고 인터페이스를 통해서 재사용 위임(화이트+블랙) 합성을 상속만큼 강력하게 만드는 방법으로 객체간 결합도를 낮추는데 사용 매개변수화 타입 타입을 정의할 때 타입이 사용하는 모든 타입을 다 지정하지 않은 채 정의 II. 화이트박스/블랙박스 재사용 가. 화이트박스 재사용(클래스 상속)의 정.. 2021. 1. 31.
디자인패턴(Design Pattern) 생성패턴, 구조패턴, 행동패턴 I. 유용한 공통의 설계 구조 목록, 디자인패턴의 개요 가. 디자인패턴(Design Pattern)의 정의 - 재사용이 가능한 객체지향 설계를 선택하게 하기 위해 유용한 공통의 설계 구조로부터 중요 요소들을 식별하여 추상화한 설계 템플릿 나. 디자인패턴의 목적 RAD 재사용을 통한 올바른 설계를 빨리 수행하는 것이 목적 노하우전수 전문가들의 노하우를 통해 좋은 SW를 설계하기 위한 목적 II. 디자인패턴의 요소 및 원칙 가. 디자인 패턴의 4가지 요소 - 패턴이름, 문제, 해법, 결과 나. 디자인 패턴의 원칙 - 캡슐화, 위임, 인터페이스, Loosely Coupled, 개방 및 폐쇄, 의존관계 III. 디자인패턴의 분류 (생구행) 분류 디자인 패턴 설명 생성패턴 (Crea.. 2021. 1. 31.
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.
반응형