▶애자일 방법론은 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론/적은 규모의 개발 프로젝트에 적용하기 좋다(그중에서도 XP와 SCRUM이 제일 많이 통용)
▶XP (Extreme Programming) 의 5원칙:단순성, 소통, 피드백, 용기, 존중
▷소통(Communication)-고객과 개발자와의 의사소통을 중요시
▷단순성(Simplicity)-사용되지 않는 구조와 알고리즘 배제, 가장 효율적인 디자인이나 코딩을 하는 것.
▷피드백(Feedback)-즉각적 피드백 통해 빠른 의사결정
▷용기(Courage)-개발자들이 자신감있게 변화를 수용하며 고객요구사항에 능동적 대처 용기
------------------
1.Linear Sequential Method(x) 순차적 방법
2.Pair Programming=모든 프로그래밍은 하나의 컴퓨터에 2명의 프로그래머가 같이 공동작업 진행
3.Collective Ownership=Collective Code Ownership=소스코드에 대한 팀의 공통책임이자 코드는 누구든지 수정가능함
4.Continuous Integration=컴포넌트 또는 모듈 단위로 나누어서 개발된 소스코드들은 하나의 작업이 끝날 때 마다 지속적으로 통합되고 동시에 테스트함
*객체지향 설계 원칙(SOLID)
- 단일 책임 원칙(SRP, Single Responsibility Principle):모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함
- 개방 폐쇄의 원칙(OCP, Open-Closed Principle):소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다
- 리스코프 교체(치환)의 원칙(LSP, Liskov Substitution Principle):컴퓨터 프로그램에서 자료형 {\displaystyle S}S가 자료형 {\displaystyle T}T의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 {\displaystyle T}T의 객체를 자료형 {\displaystyle S}S의 객체로 교체(치환)할 수 있어야 한다는 원칙
-인터페이스 분리 원칙(ISP, Interface Segregation Principle):클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙
-의존성 역전 원칙(DIP, Dependency Inversion Principle):의존 관계를 맺을 때 변화하기 쉬운 것 보다 변화하기 어려운 것에 의존하라는 원칙을 의미한다.
상위 설계 : 아키텍처 설계, 데이터 설계, 시스템 분할, 인터페이스 정의, 사용자 인터페이스 설계(UI 설계)
하위 설계 : 모듈 설계, 인터페이스 작성
*코드 정의:
데이터를 사용 목적에 따라 식별, 분류, 배열하기 위하여 사용되는 숫자, 문자 또는 기호로 컴퓨터 처리에 효율적인 것을 선정
*코드 종류
1) 순차 코드(Sequence Code)-자료의 발생순, 크기순, 가나다순 등 일정 순서대로 코드
2) 블록 코드(Block Code : 구분 코드)- 코드화 대상을 미리 파악하여 블록으로 구분한 후 그 안에서 순서대로 코드를 부여
3) 그룹 분류 코드(Group Classification Code)-구분 코드를 세분화한 형태로 대분류, 중분류, 소분류 등 각 분류별로 자릿수를 구성
4) 표의 숫자 코드(Significant Digit Code)-표현하려는 대상의 의미는 제외하고 수치만을 모아 만든 것으로 대상이 되는 물체의 중량, 면적, 크기 등을 직접 코드에 적용
5) 십진 분류 코드(Decimal Classification Code)-코드화 대상물을 일정한 소속으로 구분하여 십진수 한 자리씩 구분하여 대분류하고, 같은 방법으로 중 분류, 소분류한 코드
6) 연상 코드(Mnemonic Code)-숫자나 문자를 조합해서 나타내는 것으로 어떤 내용을 기억할 수 있도록 표시한 기호 코드
7) 약자 코드(Letter Code)-일반적으로 사용해온 단위의 약자를 코드로 사용
8) 끝자리 분류 코드(Final Digit Code)-다른 종류의 코드와 조합해서 사용하며, 코드의 끝에 붙여서 그 의미를 표현
애자일 방법론
익스트림 프로그래밍(Extreme Programing, XP)
스크럼(Scrum)
익스트림 모델링
크리스털 패밀리
기능 중심 개발(FDD, Feature-Driven Development)
외부 스키마 : 개인 또는 응용 개발자 입장에서 보는 데이터베이스
개념 스키마 : 모든 응용 프로그램 또는 사용자들이 필요로 하는 조직 전체 데이터베이스로 단 하나만 존재한다.
제산법 - 레코드키를 해시표로 나눈 나머지를 홈 주소로 사용
기수변환법 - 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수 절단, 다시 주소 범위에 맞게 조정
숫자분석법 - 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택
1. 인덱스 정규화 : 인덱스는 키 값으로 행 데이터의 위치를 식별하는데 사용하는 기능(인덱스 정규화는 인덱스를 효과적으로 사용하려면 정규화가 되어 있어야 하는 것을 말하는 듯)
2. 반정규화 : 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
3. 집단화 : 속성(유형, Type)들의 세트로 구성되는 새로운 속성(유형, Type)을 정의하는데 사용되는 개념
4. 머징 : 둘 이상의 데이터 세트를 단일 데이터 세트로 결합 또는 공통된 컬럼명 또는 행 이름에 따라 데이터 프레임을 병합
- 후보키(Candidate Key) : 릴레이션을 구성하는 속성 중 튜플을 유일하게 식별하기 위한 기본키로 사용할 수 있는 속성들을 뜻한다.
- 기본키(Primary Key) : 후보키 중에서 선택된 주키(Main Key)이다.
- 슈퍼키(Super Key) : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키이다. 슈퍼키는 릴에이션에 있는 튜플에 대해 유일성을 만족시키지만, 최소성은 만족 시키지 못한다.
- 외래키(Foregin Key): 관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1릴레이션의 속성 말한다.
1. 관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.
2. 관계대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다.
3. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
4. 대표적으로 순수 관계 연산자와 일반 집합 연산자가 있다.
관계해석이란?
1. 관계 데이터 모델의 제안자인 코드가 수학에 가까운 기반을 두고 관계 데이터베이스를 위해 제안하여 탄생하였다.
2. 관계해석은 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다.
3. 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다.
4. 튜플 관계해석과 도메인 관계해석이 있다.
5. 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하며 관계대수로 표현한 식은 관계해석으로 표현할 수 있다.
6. 질이어로 표현한다.
① Slow start: 패킷이 문제없이 도착하면 혼잡 윈도우 크기를 패킷마다 1씩 증가시켜 한 주기가 지나면 혼잡 윈도우 크기가 2배로 되지만, 혼잡 현상 발생시 혼잡 윈도우 크기를 1로 줄여버리는 방식이다.
② Slding WIndow: 한 번에 여러 패킷(프레임)을 전송할 수 있어 전송 효율이 좋은 기법
- 수신 측으로부터 이전에 송신한 패킷에 대한 긍정 수신 응답(ACK)이 전달된 경우 윈도우 크기는 증가하고, 수신측으로부터 이전에 송신한 패킷에 대한 부정 수신 응답(NAK)이 전달된 경우 윈도우 크기는 감소한다.
④ Congestion Avoidance(혼잡 방지, Congestion Control): 네트워크 내에서 패킷의 지연이 너무 높아지게 되어 트래픽이 붕괴되지 않도록 패킷의 흐름을 제어하는 트래픽 제어(종류: AMID, Slow Start)
SOA(Service Oriented Architecture,서비스 지향 아키텍처)계층
-표현 계층(Presentation Layer)
-프로세스 계층(Process Layer)
-서비스 계층(Service Layer)
-비즈니스 계층(Business Layer)
-영속 계층(Persistency Layer)
1.SREM(Software Requirements Enginering Methdology):TRW사가 우주 국방 시스템 그룹에 의해 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 것으로,RSL과 REVS를 사용하는 자동화 도구이다.(RSL/REVS)
2.PSL/PSA:미시간 대학에서 개발한 것으로 PSL과 PSA를 사용하는 자동화 도구입니다.
3.HIPO(Hieracgy Input Process Output):하향식 소프트웨어 개발을 위한 문서화 도구입니다.
4.SADT(Structure Analysis and Design Technique): SoftTech사에서 개발된 것으로 구조적 요구 분석을 위해 블록 다이어그램을 채택한 자동화 도구입니다.
접근통제 기술-MAC/ DAC/ RBAC
1.MAC:강제 (Mandatory) 접근통제
-접근통제권한은 시스템이 지정
-주체와 객체의 등급을 비교하여 권한부여
2.DAC:임의 (Discretionary) 접근통제
-접근통제권한은 데이터소유자가 지정 및 제어
-데이터에 접근하는 사용자의 신원에 따라 권한부여
-부여된 권한을 다른 사용자에게 허가 가능
-관련 SQL 명령어: GRANT/ REVOKE
3.RBAC:역할기반 (Role Based) 접근통제
-접근통제권한은 중앙관리자가 지정
-사용자의 역할에 따라 권한부여
-임의+강제 접근통제의 단점보완
-다중프로그래밍환경에 최적화
네트워크 관련 신기술
소프트웨어 정의 데이터 센터
-데이터 센터의 모든 자원을 가상화
-다양한 소프트웨어 정의 기술이 사용된다.
-유연한 제어가능/ 비용절감가능/ 운영이 편리하다.
-하드웨어와 독립적이다
'정보처리기사' 카테고리의 다른 글
정처기 오답 - 정보처리기사 2021년 5월 15일 2회 기출문제 (0) | 2021.08.09 |
---|---|
정처기 오답 - 정보처리기사 2021년 3월 7일 기출문제 (0) | 2021.08.08 |
★최종 정보처리기사 2020년 8월 22일 (0) | 2021.08.06 |
★최종 정보처리기사 2020년 6월 6일 (0) | 2021.08.06 |
20210806 결합도 응집도 교착상태 - 기출강의 캡쳐 (0) | 2021.08.06 |