객체지향 프로그램 (OOP) 특징 3가지?
(상추다캡정)
: 상속, 추상화, 다형성, 캡슐화, 정보은닉
객체지향 프로그램 구성 요소 3가지?
: 객체, 클래스, 메시지
UML의 구성요소 3가지?
: 사물, 관계, 다이어그램
개발자-사용자간 소통 위한 객체 지향 모델링 언어?
: UML
V8로 빌드된 이벤트기반 자바스크립트 런타임, 서버에서 실행되는 특징을 가지는 기술명?
: Node.js
소프트웨어 개발 방법론
- 컴포넌트 기반 방법론(CBD) : 컴포넌트를 조립해 하나의 새로운 응용 프로그램 작성
- 애자일 방법론 : 사람이 중심
- 제품 계열 방법론 : 특정 제품에 적용하고 싶은 공통된 기능을 정의해 개발, 임베디드
애자일 방법론 유형
- XP : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질 높이기 위한
- SCRUM : 매일 정해진 시간, 장소에서 짧은 시간의 개발
- LEAN : 낭비 요소 제거
XP 5가지 가치
용기, 단순성, 의사소통, 존중, 피드백
XP 12가지 기본원리
- 짝 프로그래밍
- 지속적 통합 (CI)
- 메타포어 : 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간 의사소통
- 테스트 기반 개발 (TDD) : 만들 프로그램에 대한 테스트 먼저 수행, 이 테스트 통과할 수 있도록 실제 프로그램 코드 작성
- 리팩토링 : 프로그램의 기능은 바꾸지 않고 중복제거, 단순화 등을 위한 시스템 재구성
델파이 기법
전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법
비용 산정 모형 종류
- COCOMO : 보헴이 제안, 프로그램 규모에 따른 비용 산정
- 조직형 : 5만 라인 이하
- 반분리형 : 30만 라인 이하
- 임베디드형 : 30만 라인 이상
- 푸트남 : 개발 주기의 단계별로 요구할 인력의 분포를 가정, Rayleigh-Norden 곡선
- 기능점수 (Function Point)모형 : 요구 기능에 따른 가중치 부여
일정 관리 모델
- 주 공정법 (CPM) : 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정 계싼
- 주 공정 (critical path) : 프로젝트의 시작에서 종료까지 가장 긴 시간이 걸리는 경로
- PERT : 일의 순서를 계획적으로 정리하기 위한 수렴 기법, 비관치, 중간치, 낙관치 이용
- 주 공정 연쇄법 (CCPM) : 자원제약사항을 고려해 일정 작성
소프트웨어 아키텍쳐 4 + 1 뷰
- 유스케이스 뷰 : 다른 뷰를 검증하는데 사용
- 논리 뷰 : 기능적 요구사항 설명
- 프로세스 뷰 : 비기능적 요구사항 설명
- 구현 뷰 : 모듈의 구성, 컴포넌트 구조, 의존성
- 배포 뷰 : 어떻게 배치되는가
유스케이스
시스템의 요구사항이자, 사용자의 입장에서 바라본 시스템의 구성
소프트웨어 아키텍쳐 패턴
소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식
소프트웨어 아키텍쳐 패턴 유형
- 계층화 패턴 : 시스템을 계층으로 구분해 구성
- 클라이언트-서버 패턴 : 하나의 서버와 다수의 클라이언트
- 파이프-필터 패턴 : 데이터 스트림을 생성하고 처리
- 브로커 패턴 : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용
- 모델-뷰-컨트롤러 패턴(MVC)
- 모델 : 핵심 기능과 데이터 보관
- 뷰 : 사용자에게 정보 표시
- 컨트롤러 : 사용자로부터 요청 입력 받아 처리
디자인 패턴
- 생성 패턴
- Singleton : 전역 변수를 사용하지 않고 객체를 하나만 생성 하도록, 생성된 객체를 어디에서든지 참조할 수 있도록 하는
- 구조 패턴
- Bridge : 기능의 클래스 계층과 구현의 클래스 계층을 연결, 구현부에서 추상 계층 분리
- Decorator : 기존에 구현되어 있는 클래스엥서 필요한 기능 추가해 나감
- 행위패턴
- State : 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경
미들웨어
분산 컴퓨터 환경에서 응용 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 잇도로 ㄱ제어
기능적 요구 사항
시스템이 제공하는 기능, 서비스에 대한 요구사항 (기능성, 완전성, 일관성)
정형 기술 검토
- 동료 검토
- 워크 스루 : 회의 전 검토 자료 배포
- 인스펙션 : 전문가