* 객체지향 설계원칙 SOLID
1. SRP(단일 책임 원칙) : 단 하나의 책임만 가져야 한다.
2. OCP(개방-패쇄 원칙) : 코드 변경하지 않고 기능 추가 가능하다.
3. LSP(리스코프 치환 원칙) : 자식 클래스는 최소한 부모 클래스 기능을 수행해야 한다.
4. ISP(인터페이스 분리 원칙) : 자신이 사용하지 않는 인터페이스와 의존을 맺거나 영향을 받지 않는다.
5. DIP(의존 역전 원칙) : 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙
* 객체지향 분석 방법론
1. Raumbaugh 방법 : 분석을 객체/동적/기능 으로 나누어 수행하는 방법
2. Booch 방법 :미시적/거시적 게발 프로세스를 모두 사용하는 방법
3. Jacobson 방법 : usecase를 강조하여 사용하는 방법
4. Coad와 Yourdon 방법 :E-R다이어그램 사용한 방법
5. Wirfs-Brock 방법 : 고객 명세서를 평가하여 설계 작업까지 연속적으로 수행하는 방법
* 데이터 무결성 검사도구
1. Tripwire 2. AIDE 3. Samhain 4. ClayMore 5. SlipWirve 6. Fcheck
* XP(extreme Programming)
1. XP는 수시로 발생하는 고객의 요구사항을 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상
2. 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 한다.
3. 릴리즈의 기간을 짧게 반복하면서 고객의 요구사항 반영에 대한 가시성을 높인다.
* XP의 핵심가치
1. 의사소통 2. 단순성 3. 용기 4. 존중 5. 피드백
* XP 주요 실천 방법
1. Pair Programming : 책임을 공동으로 나눠 갖는 방식
2. Collective ownership(공동 코드 소유) : 코드에 대한 권한과 책임을 공동으로 소유
3. Test-Driven Revelopment(테스트 주도 개발) : 자신이 무엇을 해야할지 파악하며 지속적 진행을 위해 자동화된 테스트 도구 사용
4. Whole Team : 각자 자신의 역할이 있고 그 역할에 대한 책임을 가진다.
5. Continuous Integration(계속적 통합) : 각각 나눠서 개발된 코드들을 하나의 작업이 마무리 될 때마다 통합하는 방식
6. Small Release : 릴리즈 기간을 짧게 반복함으로 고객의 요구 변화에 신속히 대응할 수 있는 방식
* 디자인 패턴 : 모듈관계 / 인터페이스 설계 시 참조하는 예제를 의미한다.
* 생성 패턴 (Creational Pattern)
1. Abstract Factory : 추상 팩토리는 서로 다른 부품을 그룹(조립)하여 교체하거나 만드는 것이다.
2. Builder : 건축하듯 조립하여 객체를 생성한다.
3. Factory Method : 서브 클래스가 실제 생성하고 처리하는 캡슐 부품부터 완성품까지 통째로 찍어내는 것
4. Prototype : 원본 객체를 복제하는 방법
5. Singleton : 여러곳에 동시 참조 불가하며 인스턴스 하나만 보장
* 구조패턴(Structural)
1. Adapter : 다른 클래스가 이용할 수 있도록 변환
2. Bridge : 구현부와 추상부를 분리하고 서로가 독립적으로 확장 가능하며 다리역할을 한다.
3. Composite : 복합/ 단일 객체를 구분없이 다를 때, 합성
4. Decorator : 능동적 기능 확장과 추가기능을 위해 다른 객체를 덧 붙이는 것
5. Facade : 기능을 간편하게 사용하며 wrapper 객체 필요하다. 리모컨과 같은
6. Flyweight : 인스턴스 필요 시 공유하며 메모리를 절약하고 부답을 가볍게 한다.
7. Proxy : 접근 어려운 걸 인터페이스 수행한다. 어려운 걸 대리자에게
* 행위패턴(Behavioral)
1. Chain Of Responsibility(책임 연쇄) : 물래방아와 같이 2개 중 1개가 수행을 못하면 다른 하나가 받아 수행
2. Command : 명령어를 하나로 캡슐화하여 재사용 하거나 취소하는 방법
3. Interpreter : 언어 문법을 표현하거나 번역하는 기능
4. Iterator(반복자) :접근이 잦은 객체에 동일한 인터페이스를 사용
5. Mediator(중재자) : 의존성을 줄여 결합도를 감소시키고 복잡한 상호작용을 캡슐화 시킨다.
6. Observer : 상태가 변하면 알려주고 발행 및 수신시 발생한다.
7. State(상태) : 동일한 동작을 상태에 따라 다르게 처리한다.
8. Strategy : 여러 전략들을 캡슐화하여 원하는 전략을 수행한다.
9. Tempalte Method : 상위에서 골격을 정의하고 하위에서 세부처리와 코드 양 감소시키고 유지보수에 용이하다. 하나의 큰 틀로 묶는다.
10. Visitor(방문자) : 처리기능을 분리하여 클래스를 만들고 수행하기 위해 클래스들을 방문하는 것이다.
* 빌드도구
1. ANT : 아피치에서 개발하였으며 JAVA 프로젝트 공식 빌드도구 이다. 규칙 표준없음
2. MAVEN : ANT 대안으로 의존성 설정기대 및 라이브러리 관리를 한다.
3. Gradle : 한스토커가 ANT, MAVEN을 보안해서 만들었으며 안드로이드 스튜디오 공식 빌드 도구이다. Groovy기반
// Groovy : JAVA기반으로 여러 프로그램을 모아 만든 동적 객체지향 prog
// 기타협업도구 (Groupware) : 다른 작업환경에서 원할히 수행에 도움을 주는 도구
// Library : 자주 사용되는 코드, API, 클래스 값 등 다양한 자원을 모아둔 것
* Schema - 데이터베이스의 구조와 제약조건 명세서
1. 외부 스키마 : 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한다.
2. 개념 스키마 : 전체적인 논리구조로 사용자들이 필요로 하는 데이터 하나만 존재한다.
3. 내부 스키마 : 물리적 저장장치의 입장이며 물리적 순서 등을 나타낸다.
* 스토리지 - 데이터 저장하기 위해 서버와 저장장치를 연결
1. DAS(Direct Attached Storage) : 전용케이블 직접 연결하는 방식
2. NAS(Network Attached Storage) : 네트워크를 통해 연결하는 방식
3. SAN(Storage Area Network) : DAS(빠른처리)와 NAS(공유유용) 방식을 합처 서버와 저장 장치를 연결하는 전용 네트워크 별도로 구성하는 방식
* Middleware
1. DB : 클라이언트에서 원격의 DB와 연결
2. PRC : 원격 프로시저 호출하고 로컬 프로시저처럼 호출
3. MOM : 메시지 지향하며 비동기형 메시지를 전달
4. TP-Monitor : 트랜잭션 처리 모니터링하며 감시 역할
5. ORB(객체요청 브로커) : CORBA 표준 스팩을 구현하고 Tp-Monitor의 장점인 트랜잭션 처리와 모니터링 추가 구현
6. WAS(웹 어플리케이션 서버) : 동적인 콘텐츠를 처리하기 위한 미들웨어
* Test oracle
1. 참 오라클 : 모든 테스트 입력 값에 대한 기대결과 제공하고 오류 검출 기능을 가짐
2. 샘플링 오라클 : 몇몇 테스트 입력 값에 대해 기대하는 결과를 제공하며 전수테스트는 불가하다.
3. 추정(Huristic) 오라클 : 특정 값에 대한 기대결과 제공하고 나머지 테스트 케이스는 추정으로 처리한다.
4. 일관성(Consistent) 오라클 : 변경이 있을 시 테스트 케이스 실행 전과
출처: https://hunseop2772.tistory.com/4 [저장소:티스토리]
'그 외' 카테고리의 다른 글
정보처리기사 실기 정리 11. 응용 SW 기초 기술 활용 (0) | 2024.09.30 |
---|---|
정보처리기사 실기 복원 2024 2회 해설 (0) | 2024.09.24 |
정보처리기사 실기 복원 2024 1회 해설 (0) | 2024.09.23 |
[정처기] 2024 필기 요약 1과목 - 소프트웨어 설계 (0) | 2024.05.26 |
Doxygen 을 이용한 C++ API 문서 만들기 (0) | 2023.12.13 |