화이트박스 테스트 (White Box Test) 화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적 모든 경로를 테스트하는 방법이다. 화이트박스 테스트 종류 화이트박스 테스트 종류에는 기초 경로 검사, 제어 구조 검사 등이 있다. 기초 경로 검사 - Tom McCabe가 제안한 대표적 화이트박스 테스트 기법 - 테스트케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 함 - 측정 결과는 실행 경로의 기초를 정의하는데 지침으로 사용됨 제어 구조 검사 - 조건검사 (Condition Testing) - 루프 검사 (Loop Testing) - 데이터 흐름 검사 (Data Flow Testing) 블랙박스 테스트 (Black Box Test) 블랙박스 테스트는 소프트웨어가 수행할..
데이터베이스 정규화 부분은 예제 없이 글로만은 이해하기가 힘들어서 구글링을 많이 했다. 출처는 본문 중간중간에 적혀있다. 데이터베이스 정규화(Normalization)란? 정규화란 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정이다. 바람직한 스키마로 만들어간다는 것은 데이터베이스 설계를 논리적으로 재구성한다는 것으로 이해하면 된다. 이렇게 정규화를 수행하면 불필요한 데이터를 없애거나 삽입/삭제 등의 쿼리 수행 시 발생할 수 있는 각종 이상현상을 방지할 수 있다. - 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정 - 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형,제5정규형이 있음 - 차수가 높아질수록 만족시켜야 할 제약조건이..
키(Key)의 개념 및 종류 - 데이터베이스에서 튜플들을 서로 구분할 수있는 기준이 되는 애트리뷰트를 말함 후보키(Candidate Key) - 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 - 즉, 기본키로 사용할 수 있는 속성들을 말함 - 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 함 - 모든 튜플들에 대해 유일성, 최소성을 만족해야 함 릴레이션에서 학번, 주민번호 기본키(Primary Key) - 후보키 중에서 선택한 주키로 NULL 값이 될 수 없음 - 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성 - 기본키로 저장된 속성에는 동일한 값이 중복되어 저장될 수 없음 릴레이션에서 학번이나 주민번호, 릴레이션에서는 '학번+과목명' 조합 대체..
관계형 데이터베이스 개요 - 관계형 데이터베이스를 구성하는 개체나 관계를 모두 릴레이션이라는 표로 표현함 - 장점 : 간결, 보기 편리, 다른 데이터베이스로의 변환 용이 - 단점 : 성능이 떨어짐 관계형 데이터베이스의 Relation 구조 - 릴레이션 : 데이터들을 표 형태로 표현한 것 - 릴레이션 스키마 : 구조를 나타내는 릴레이션 - 릴레이션 인스턴스 : 실제 값들 튜플 (Tuple) - 릴레이션을 구성하는 각각의 행 - 속성의 모임으로 구성됨 - 파일 구조에서 레코드와 같은 의미 - 튜플의 수 = 카디널리티(Cardinality) = 기수 = 대응수 속성 (Attribute) - 릴레이션을 구성하는 각각의 열 - 가장 작은 논리적 단위 - 파일 구조에서 데이터 필드에 해당 - 개체의 특성을 기술 도..
관계형 데이터베이스의 관계대수 - 관계형 데이터베이스에서 원하는 정보를 얻기 위해 어떻게 유도하는가를 기술하는 절차적 언어 - 관계대수에는 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자가 존재 순수 관계 연산자 : Select, Project, Join, Division 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱) 순수 관계 연산자 Select - 선택 조건을 만족하는 튜플의 부분집합을 구해 새로운 릴레이션을 만드는 연산 - 행에 해당하는 튜플을 구하는 것으로 수평 연산이라고도 함 표기 형식 : σ(R) Project - 속성 리스트에 제시된 속성 값만을 추출해 새로운 릴레이션을 ..
시나공 기준 개정된 2020 정보처리기사에서는 E-R 다이어그램 표기법에서 정보 공학 표기법이나 바커 표기법 등의 표기법이 추가되었다. E-R (Entity-Relationship, 개체-관계) 모델의 개요 - 개념적 데이터 모델의 대표적인 모델 - 피터 첸에 의해 제안됨 - 개체와 개체 간의 관계를 개념적인 논리 데이터로 표현하기 위한 방법 - 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)로 묘사함 - E-R 다이어그램으로 표현하며 1:1, 1:N, N:M 등 관계 유형을 제한없이 나타낼 수 있음 E-R 다이어그램 - E-R 모델의 아이디어를 이해하기 쉽게 기호를 사용해 시각적으로 표현한 그림 - E-R 다이어그램 표기법에는 피터 첸 표기법, 정보 공학 표기법,..
시나공 기준, 개정된 2020 정보처리기사에서는 데이터베이스 파트에 스키마에 대한 내용 (스키마 3계층 등)이 제외된 것 같다. 혹시 몰라 추가해놓는다. 데이터베이스 설계 순서 - 요구조건 분석 : 요구 조건 명세서 작성 - 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델링 - 논리적 설계 : 논리 스키마, 트랜잭션 인터페이스 설꼐 - 물리적 설계 : 구조의 데이터로 변환 - 구현 : DDL로 데이터베이스 생성, 트랜잭션 작성 1) 요구조건 분석 - 데이터베이스를 사용할 사람들의 필요한 용도를 파악 - 데이터의 종류, 용도, 형태 등을 수집 - 수집된 정보를 바탕으로 요구 조건 명세를 작성 2) 개념적 설계 - 개념 스키마 모델링과 트랜잭션 모델링을 수행 - 개념 스키마를 설계 - 요구분석 ..
시나공 기준 개정된 2020 정보처리기사에서는 이전과 달리 모듈 부분에 결합도와 응집도는 똑같지만 팬인/팬아웃이 추가되었다. 모듈 (Module) 개요 - 모듈은 모듈화를 통해 분리된 시스템의 각 기능들을 의미 - 모듈은 단독으로 컴파일이 가능, 재사용 가능 - 모듈의 독립성은 결합도와 응집도에 의해 측정됨 - 독립성을 높이려면 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 함 * 모듈화 : 소프트웨어 성능 향상이나 수정 및 재사용 등이 용이하도록 시스템의 기능들을 모듈 단위로 분해하는 것 결합도 (Coupling) - 약할수록 좋음 - 모듈간에 상호 의존하는 정도, 두 모듈 사이의 연관 관계를 의미 - 결합도가 강하면 시스템 구현 및 유지보수가 어려움 - 결합도의 종류 : 자료 < 스..
NCS 기반으로 개편된 2020 정보처리기사의 경우 자료구조 파트가 소프트웨어 개발 과목으로 넘어왔다. 확실히 삭제된 부분도 많고, 새로 추가된 부분도 많고 전체적인 구조도 많이 바뀐 것 같다. 자료구조의 분류 - 선형 구조: 배열, 선형리스트(연속리스트, 연결리스트) 스택, 큐, 데크 - 비선형 구조: 트리, 그래프 배열 (Array) - 동일한 자료형의 데이터들이 같은 크기로 나열됨 - 순서를 갖고 있는 집합 - 기억장소의 추가가 어려움 - 데이터 삭제 시 메모리 낭비 발생 연결리스트 (Linear List) - 노드의 포인터를 이용해 서로 연결시킨 자료 구조 - 노드의 삽입, 삭제 작업이 용이함 - 링크가 필요하기 때문에 순차 리스트에 비해 기억 공간의 이용 효율이 좋치 않음 - 포인터를 찾아야해서..
왜인지는 모르겠으나 시나공을 기준으로 2020 정보처리기사에는 객체지향의 주요 개념에 추상화와 정보 은닉이 사라지고 캡슐화/상속성/다형성만 남았다. 하지만, 추상화와 정보은닉도 추가해두려 한다. 객체지향(Object-Oriented) 이란 - 현실 세계를 그대로 모형화 - 소프트웨어 개발 시 객체들을 조립해 작성 가능 - 소프트웨어 재사용 및 확장을 용이, 유지보수가 쉬움 - 주요 요소와 개념에는 객체, 클래스, 캡슐화, 상속, 다형성이 존재함 객체지향의 주요 요소 (객체, 클래스) 객체 객체란, 데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 모듈이다. - 함수는 객체가 수행하는 기능, 객체가 갖는 데이터를 처리하는 알고리즘 - 함수는 객체가 메시지를 받아 실행해야 할 객체의 구체적 연산을 정의 - ..
UML (Unified Modeling Language) 이란? - 시스템 개발 과정에서 개발자와 고객 혹은 개발자 상호간의 원활한 의사소통을 위해 표준화한 객체지향 모델링 언어 - UML을 사용 시 6개의 구조 다이어그램, 7개의 행위 다이어그램 작성 가능 - UML의 구성 요소 : 사물, 관계, 다이어그램 사물 (Things) - 다이어그램 안에서 관계가 형성될 수 있는 대상을 말함 - 구조사물, 행동사물, 그룹사물, 주해사물 관계 (Relationships) - 사물과 사물 사이의 연관성을 표현하는 것 - 연관관계, 집합관계, 포함관계, 일반화관계, 의존관계, 실체화관계 등 연관관계 - 양방향 관계인 경우 실선으로 표현, 아니면 화살표 - 연관에 참여한는 객체의 수(다중도)를 표기함 집합관계 - 포..
스크럼(Scrum) 기법 스크럼은 팀이 중심이 되어 개발의 효율성을 높이는 방식으로 팀원 스스로 스크럼 팀을 구성, 개발 작업에 대한 모든것을 스스로 해결할 수 있어야 한다. 스크럼팀의 구성 - 제품 책임자 : 개발 의뢰자나 사용자가 담당, 제품에 대한 요구사항을 작성하는 주체, 백로그 작성 - 스크럼 마스터 : 스크럼팀의 가이드 역할을 수행함, 개발 과정에서의 장애 요소를 공론화해 처리함 - 개발팀 : 제품 책임자와 스크럼 마스터를 제외한 모든 팀원 백로그란 : 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여한 목록을 말함 (제품 책임자가 작성) 스크럼 개발 프로세스 1) 제품 백로그 - 백로그를 기반으로 릴리즈 계획을 수립함 릴리즈 : 몇개의 요구사항이 적용되어 부분적으로 기능이 완료된 제품..