자격증/정보처리기사 15

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) 논리형 언어 :..

5장 인터페이스 구현 - (2) 인터페이스 기능 구현

인터페이스 기능 구현 기술 1) JSON = '속성-값 쌍' 또는 '키-값 쌍'으로 이루어진 데이터 오브젝트를 전달하기 위한 개방형 표준 포맷으로 AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포멧이다. 사람이 읽고 쓰기 용이하며 기계가 분석하고 생성하기 용이하다. 2) XML = HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어로 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다.(트리구조를 갖는다.) 3) AJAX = JS(Java Script)를 사용해 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술로, 브라우저가 가지고 있는 XMLHttpRequest ..

4장 통합 구현 - (3) 내외부 연계 모듈 구현

연계 모듈 구현 환경 구성 및 개발 1) EAI(Enterpriser Application Integration) 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션으로 EAI를 사용함으로써 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성의 증대 및 확장성을 높여준다. 1-2) EAI 구축 유형 - 포인트 투 포인트(Point-to-Point) : 가장 기초적인 애플리케이션 통합 방법으로 1:1 단순 통합방법 - 허브 앤 스포크(hub & Spoke) : 허브 시스템을 통해 데이터를 전송하는 중앙 집중식 방식 - 메시지 버스 (Message Bus) : 애플리케이션 사이 미들웨어인 버스를 두어 연계하는 미들웨어 통합 방식으로 뛰어난 확장성과 대용..

4장 통합 구현 - (2) 연계 매커니즘 구성

연계 방식 및 매커니즘 연계 매커니즘은 응용 소프트웨어와 연계 대상 모듈 간의 데이터 연계 시 요구사항을 고려한 연계 방법과 주기를 설계하기 위한 매커니즘이다. 연계 방식에는 직접 연계 방식과 간접 연계 방식이 있다. 직접 연계 방식 직접 연계 방식은 개발 소요 비용 및 기간이 짧고 중간 매개체가 없어 성능이 대체로 좋다. 그러나 시스템 간의 결합도가 높아 시스템의 변경에 민감하고, 연계 및 통합 가능한 시스템 환경이 제한적이다. - DB 링크 (DB Link) : 데이터베이스에서 제공하는 DB 링크 객체를 이용해 수신 시스템에서 DB 링크를 생성하고, 송신시스템에서 DB 링크를 직접 참조하는 방식 (ex_ 테이블명@DBLink명) - DB 연결(DB Connection) : 수신 시스템의 WAS에서 송..

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

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

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

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