정보처리기사 11

9장 소프트웨어 개발 보안 구축 - (1) 소프트웨어 개발 보안 설계

SW 개발 보안 SW 개발 보안의 3대 요소는 기무가(기밀성, 무결성, 가용성)이다. 기밀성(Confidentiality)은 인가되지 않은 사용자, 시스템에 대해선 정보 공개 및 노출을 차단하는 특성 무결성(Integrity) : 정당한 방법을 따르지 않으면 데이터가 변경될 수 없음 가용성(Availability) : 권한을 가진 사용자, 시스템은 서비스를 지속해서 사용할 수 있음. SW 개발 보안 용어 (자위취위) 자산(Asset) - 가치를 부여한 대상 위협(Thread) - 자산에 악영향을 끼칠 수 있는 사건, 행위 취약점(Vulnerability) - 위협이 발생하기 위한 사전 조건 위험(Risk) - 위협이 취약점을 이용해 조직의 자산 손실 피해를 가져올 가능성 SW 개발 보안을 위한 공격기법의..

8장 서버 프로그램 구현 - (2) 공통 모듈 구현

응집도와 결합도(Cohesion and Coupling) 응집도는 모듈의 독립성을 나타내는 정도로, 모듈 내부 구성요소 간 연관 정도를 말한다. 하나의 모듈이 하나의 기능을 수행할수록 응집도가 높다. (응집도는 높을수록 좋다) 우논시절통순기(우연적, 논리적, 시간적, 절차적, 통신적, 순차적, 기능적)--낮은 순서에서 높은 순서로 나열 - 우연적 응집도(Coincidental) : 모듈 내부의 각 구성요소가 연관이 없음 - 논리적 응집도(Logical) : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 - 시간적(Temporal) : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리해야할 경우 - 절차적(Procedual) : 모듈이 다수의 관련 기능을 가질 때 구성요..

8장 서버 프로그램 구현 - (1) 개발환경 구축

개발환경 구축 1. 개발 도구의 분류 - 빌드 도구 : 작성한 코드의 빌드 및 배포를 수행 ex) Ant, Maven, Gradle 등 - 구현 도구 : 개발시 가장 많이 사용되는 도구로 코드 작성 및 디버깅, 수정 등 의 작업을 지원 ex) Eclipse, IntelliJ 등 - 테스트 도구 : 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구 ex) xUnit, PMD, Findbugs, Sonar 등 - 형상 관리 도구 : 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구 ex) Git, CVS, Subversion 등 2. 개발 환경 - 웹 서버 : HTTP를 이용한 요청/응답 처리, 웹 상의 정적 콘텐츠(CSS, JS, Image)를 처리 ex) Apache, IIS, N..

7장 SQL 응용 - (1) 데이터베이스 기본

트랜잭션 트랜잭션은 인가받지 않은 사용자로부터 데이터를 보장하기 위한 DBMS가 가져야하는 특성이자, 작업의 기본 단위로 4개의 특성을 갖고 있다 (원일고영=원자성, 일관성, 격리성(고립성), 영속성) 원자성(Atomicity) : 연산 전체가 모두 정상 실행 or 모두 취소 // Commit, Rollback, 회복성 보장 일관성(Consistency) : 고정요소는 트랜잭션 실행 전과 후의 상태가 같아야 함 // 무결성 제약조건, 동시성 제어 격리성/고립성(Isolation) : 동시에 실행되는 트랜잭션들이 서로 영향을 미치면 안 됌 // -- 영속성(Durability) : 성공이 완료된 트랜잭션의 결과는 영속적으로 DB에 저장되어야 함. 트랜잭션을 제어하는 언어를 TCL(Transaction Co..

6장 프로그래밍 언어 활용 - (2) 언어 특성 활용하기

1. 프로그래밍 언어의 언어별 특징 1) 개발의 편의성에 따른 분류 저급 언어 vs 고급 언어 저급 언어는 기계가 이해할 수 있도록 만들어진 언어로 기계어, 어셈블리어가 여기에 포함된다. 고급 언어는 개발자가 소스 코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어로 C, C++, Java 등이 있다. 2) 실행하는 방식에 따른 분류 명령형 언어 : 컴퓨터에 저장된 명령어들이 순차적으로 실행되는 방식으로, 절하쳥 언어라고도 불린다 (ex_ FORTRAN, COBOL, PASCAL, C) 객체 지향 언어 : 객체 간의 메시지 통신을 이용해 프로그래밍하는 방식 (ex_ JAVA, C++) 함수형 언어 : 수학의 함수와 같은 수학적 수식으로 프로그램을 구성해 호출하는 방식 (ex_ LISP) 논리형 언어 :..

3장 데이터 입출력 구현 - (3) 데이터베이스 기초 활용하기

데이터베이스 다수의 인원, 시스템, 프로그램등이 사용할 목적으로 통합하여 관리되는 데이터의 집합 (통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터) 특징 : 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조 데이터베이스 종류 데이터베이스의 종류는 파관계네(파일 시스템, 관계형 데이터베이스 관리 시스템, 계층형 데이터베이스 관리 시스템, 네트워크 데이터베이스 관리시스템)이 있다. - 파일시스템 : 파일의 이름을 부여하고 저장이나 검색을 위해 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식 종류 : ISAM (자료의 내용은 주 저장부, 자료의 색인은 색인부에 기록) VASM(대형 운영체제에서 사용되는 파일 관리시스템) - 관계형 ..

3장 데이터 입출력 구현 - (2) 물리 데이터 저장소 설계

물리적 데이터 모델 설계 앞 장에서 설명한 물리적 데이터 모델링은 쉽게 말해 우리가 설계하고자 하는 테이블들을 코드를 이용해 실체화 하는 것이다. 이때 테이블을 설계할 때 여러 제약 조건을 설계해야하는데, 참조 무결성 제약 조건을 생각해야 한다. 참조 무결성 제약 조건은 여러 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건으로, 예를들면 두 릴레이션 간 기본키와 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 하는 조건이다. 이때 제한과 연쇄, NULL 값이 조건으로 또 붙게 되는데, 제한(Restricted)은 참조무결성 원칙을 위배하는 연산을 거전하는 옵션이다. 연쇄(Cascade)는 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 ..

3장 데이터 입출력 구현 - (1) 논리 데이터 저장소 확인

데이터 모델 표시요소는 3가지(연산, 구조, 제약조건)으로 구성되어 있다. 연산(Operation)은 DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세로 릴레이션을 조작하기 위한 관계 연산을 나타낸다 구조(Structure)은 DB에 논리적으로 표현될 대상으로서 개체 타입과, 개체 타입의 값의 관계로 구조 및 정적 성질을 표현하는 요소 제약 조건(Constraint)은 실제 데이터의 논리적인 제약 조건으로 데이터 무결성 유지를 위한 DB의 보편적 방법이다. 데이터 모델 절차는 요개논물 (요구조건 분석, 개념적 모델링, 논리적 모델링, 물리적 모델링) 순서로 절차가 진행된다. 개념적 설계는 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계로 현실 세계에 대한 인식을 추상적, 개념적으로 표현 후 개념적..

2장 화면 설계-(2) UI 설계

1. UML UML은 객체 지향 설계에서 나온 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 언어이자 기술이다. UML은 사물, 관계, 다이어그램으로 구성되어 있는데, 사물(Things)은 단어 관점에서는 명사 또는 동사를 의미하며 주제를 나타내는 요소이다. 관계(Relationships)는 단어 관점에서 형용사 또는 부사를 의미하며 사물의 의미를 확장하고 명확히하는 요소이다. 다이어 그램(Diagrams)은 사물과 관계를 모아 그림으로 표현한 형태로 9가지로 정의한다. 1-1 UML 다이어그램 UML 다이어그램은 정적(구조적), 동적(행위적) 다이어그램으로 구분된다. 클객컴배복패(클래스/객체/컴포넌트/배치/복합체 구조/패키지) 1) 클래스(Class) : 객체 지향 모델링 시 클래스의 속성 및..

정보처리기사 - 1장 요구사항 확인(현행 시스템 분석)

현행 시스템 파악 정의 : 현행 시스템 파악은 현행 시스템이 어떤 하위 시스템으로 구성되어 있고, 제공 기능 및 연계 정보, 기술 요소 등을 사용하는지 파악하는 활동 1) 소프트웨어 아키텍쳐 4+1 뷰 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어 적인 접근 방법으로 각 구조는 아키텍처 개념을 제시하고, 4개의 구조의 충돌 유무 및 시스템의 요구사항을 충족시키는지 확인하기 위해 유스케이스를 사용한다. 4개의 뷰와 이 4뷰를 검증하기 위한 유스케이스 뷰를 4+1이라고 표현하며 4개의 뷰는 (논리, 프로세스, 구현, 배포)로 구성되어 있다. 논리 뷰(Logical View)는 설계자와 개발자 관점에서 시스템의 기능적 요구사항이 어떻게 제공되는지를 설명해주는 뷰 프로세스 뷰(Pr..