본문 바로가기

분류 전체보기271

[정보처리기사 필기 요약] 소프트웨어 개발 보안 * SW 개발 보안 SW 개발 과정에서 개발자 실수, 논리적 오류 등으로 인해 SW에 내포될 수 있는 보안 약점 원인 보안 취약점 최소화하고 사이버 보안 위협에 대응할 수 있는 안전한 SW 개발하기 위한 일련의 보안 활동 * SW 개발 보안가이드 (시큐어 코딩) 유형 유형 설명 입력 데이터 검증 및 표현 - P/G 입력 값 대한 검증 누락 또는 부적절한 검증, 데이터 잘못된 형식 지정으로 인해 발생 가능한 보안 약점 ※ SQL 삽입, 자원 삽입, 크로스 사이트 스크립트(XSS) 등 26개 보안 기능 - 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등) 적절하지 않게 구현할 경우 발생 가능한 보안 약점 ※ 부적절한 인가, 중요 정보 평문 저장(또는 전송) 등 24개 시간 및 상태 - 동시 또.. 2021. 3. 4.
[정보처리기사 필기 요약] 취약점 * 취약점(vulnerability) 공격자가 시스템 정보에 대한 안정성 낮추는데 사용되는 보안 약점 시스템 자체 결함, 공격자가 결함에 대한 접근 용이성, 공격자가 결함에 대해 공격할 가능성 * SW 보안 취약점 보안 사고는 한 가지 이상 취약점들의 조합 통해 더욱 빈번하게 발생 분류 취약점 설명 메모리 보안 침입 버퍼 오버플로 - 메모리 다루는 데 오류 발생하여 잘못된 동작 하는 P/G 취약점 - 컴퓨터 보안과 프로그래밍에서는 프로세스가 데이터를 버퍼에 저장할 때, 프로그래머가 지정한 곳 외에 저장 허상 포인터 (Dangling pointer) - 컴퓨터 프로그래밍에서 적절한 타입의 유효 객체 가리키고 있지 않은 포인터로 인함 Null Pointer 역참조 - Null로 설정된 변수 주소 값 참조 시.. 2021. 3. 4.
[정보처리기사 필기 요약] 모듈화 (2) - 응집도 (Cohesion) * 응집도(Cohesion) 정보 은닉의 확장된 개념 하나의 모듈이 하나의 기능 수행하는 집적도의 척도 모듈의 독립성 나타내는 개념으로 내부 구성원 간 연관도 의미 클래스 목적에 부합하는 같은 기능 함수들로 구성 함수의 개수가 상대적으로 적으며 오로지 자신이 할 수 있는 책임을 부여받음 하나의 함수에 많은 기능 부여하지 않고 다른 기능 가진 함수와 상호협력 높을수록 좋음 모듈 내부에 독립성 보장 위해 하나의 기능만을 구현하는 것 의미 * 응집도 단계 응집도 내용 기능적 응집도 (Functional Cohesion) - 모듈 내부 모든 기능이 단일한 목적 위해 수행 순차적 응집도 (Sequential Cohesion) - 모듈 내 한 활동으로부터 나온 출력 값을 다른 활동이 사용하는 경우 통신적 응집도 (.. 2021. 3. 4.
[정보처리기사 필기 요약] 모듈화 (2) - 결합도 (Coupling) * 결합도(Coupling) 모듈 내부가 아닌 모듈 간 연관도(모듈 간 상호의존성). SW 구조에서 모듈 간 관련성 측정하는 척도 서로 다른 상위 모듈에 의해 호출되어 연관성 없는 서로 다른 기능 수행 자료 전달이 인터페이스 통하므로 인터페이스 복잡성에 의존적 낮은 결합도는 복잡성 감소시킴 (loosely-coupled) 에러 발생 시 오류 전파되어 다른 오류 원인이 되는 리플 효과(Ripple Effect) 최소화 해야함 * 결합도 단계 결합도 내용 자료 결합도 (Data Coupling) - 모듈 간 인터페이스로 전달되는 파라미터 통해서만 모듈 상호 작용 발생 스탬프 결합도 (Stamp Coupling) - 모듈 간 인터페이스로 배열이나 오브젝트, 스트럭처 등 전달되는 경우 제어 결합도 (Contro.. 2021. 3. 4.
[정보처리기사 필기 요약] 모듈화(1) * 모듈화 P/G 구성요소 일부로 관련된 데이터와 함수들 묶여서 모듈 생성. 주로 파일 단위로 구성 * 모듈화 원리 구분 설명 분할과 지배 (Divide & Conquer) - 복잡한 문제를 분해, 모듈 단위로 문제 해결 정보 은닉 (information hiding) - 어렵거나 변경 가능성 있는 모듈을 타 모듈로부터 은닉 자료 추상화 (Data Abstraction) - 각 모듈 자료구조를 액세스하고 수정하는 함수 내 자료구조 표현 내역 감춤 모듈의 독립성 (Module Independence) - 독립성 강한 모듈은 낮은 결합도와 높은 응집도 특징 가짐 * 모듈화 측정 척도 : 모듈화는 공통 모듈 구현 위해 재사용성 강화를 위한 중요한 개념. 모듈은 내부 처리 요소 간 독립성 나타내며 응집도 높을수.. 2021. 3. 3.
[정보처리기사 필기 요약] 재사용 * 재사용 : 기존 SW 또는 SW 지식 재활용하여 새로운 SW 개발하는 활동 * 재사용 사례 SW 라이브러리 (Software Library) 코드 재사용의 매우 일반적인 예로서 라이브러리를 사용하는 것 라이브러리 코드 호출하여 작업 실행 가능 라이브러리 사용 단점 : 성능 향상이나 출력 형식 바꾸고자 할 때 세부사항 조절 불가하고, 라이브러리 취득하여 학습 및 설정에 시간과 비용이 든다는 점 디자인 패턴(Design Pattern) 비슷한 문제를 풀기 위한 범용적인 설계 해법. 개별 상황에 따라서 수정 가능 프레임워크 개발자는 일반적으로 타 응용 P/G 및 프레임워크 통해 공통 라이브러리 등 많은 SW 재사용. 개발 언어와 도메인에 따라 다름 2021. 3. 3.
[정보처리기사 필기 요약] 개발 환경 구축 및 형상 관리 * 개발환경 구축 : 개발환경 구성 시 요구사항에 대한 명확한 이해를 바탕으로 이에 적합한 개발 도구 및 개발 환경 구축이 이루어져야 함. * 개발 도구 분류 구현 도구 Eclipse, Visual Studio Code, IntelliJ, NetBeans 등 테스트 도구 xUnit, Spring Test 등 형상 관리 도구 CVS, Subversion, Git 등 빌드 도구 Ant, Maven, Gradle 등 * 개발 도구 기능 개발 도구 기능 구현 도구 (Implementation Tool) - 코드 작성과 디버깅, 수정 작업이 가능하며 구현해야 할 SW가 어떤 프로그래밍 언어로 개발되는지에 따라 적합한 구현 도구 선택하여 사용 테스트 도구 (Test Tool) - 코드 기능 검증과 개발 품질 높이기.. 2021. 3. 3.
[정보처리기사 필기 요약] 인덱스(INDEX) (3) * 인덱스 스캔 방식 구분 내용 비고 Index Range Scan - 인덱스 루트 블록에서 리프 블록까지 수직적으로 탐색한 후 리프 블록을 필요한 범위만 스캔 Index Full Scan - 수직적 탐색 없이 인덱스 리프 블록을 처음부터 끝까지 수평적으로 탐색하는 방식. - 대게는 데이터 검색 위한 최적 인덱스 없을 때 차선으로 선택 Index Unique Scan - 수직적 탐색만으로 데이터 찾는 스캔 방식 - Unigue 인덱스를 '=' 조건으로 탐색하는 경우 동작 Index Skip Scan - 인덱스 선두 컬럼이 조건 절에 빠졌어도 인덱스 활용하는 스캔 방식 Index Fast Full Scan - Index Full Scan보다 빠른 스캔 방식 - 인덱스 트리 구조 무시하고 인덱스 세그먼트 전.. 2021. 3. 3.
[정보처리기사 필기 요약] 인덱스(INDEX) (2) * 해시 인덱스 데이터 신속한 검색 위해 키 값에 해시 함수 적용하여 주소 값 빠르게 계산하고 레코드 저장된 위치 직접 접근하는 방법 (키 값, 주소) 쌍으로 저장하므로 특정 키 값에 대한 검색 방법 중 가장 빠름 구분 설명 버킷(Bucket) - 동일한 해시 주소 갖는 레코드(키와 주소쌍)들이 저장될 메모리 블록 의미. - 버킷 크기에 따라 같은 해시 주소에 저장될 수 있는 레코드 수 결정 슬롯(Slot) - 1개의 해시 레코드 저장할 수 있는 공간 의미. n개의 슬롯이 모여 하나의 버킷을 이룸 충돌(Collision) - 해시 레코드 삽입 시 서로 다른 2개 이상의 데이터가 같은 해시 주소 갖는 현상 동거자(Synonyms) - 해시 함수가 같은 주소로 변환시키는 모든 레코드 오버플로우(Overflo.. 2021. 3. 3.
[정보처리기사 필기 요약] 인덱스(INDEX) (1) * 인덱스 데이터 빠르게 찾을 수 있는 수단 테이블에 대한 조회 속도 높여 주는 자료구조 테이블에서 자주 사용되는 컬럼 값 빠르게 검색 가능토록 색인 만들어 놓은 형태 과다한 인덱스 생성은 DB 공간 많이 차지하며 Table Full Scan보다 속도가 느려질 수 있음 테이블 데이터 삽입, 삭제, 변경 수행하는 DML 작업 시 성능 떨어짐 * 인덱스 구조와 장점 인덱스 구성 위해 가장 많이 사용하는 검색 트리 : B-Tree 구조 DB 성능 향상 위한 DB 튜닝 수단으로 가장 일반적인 방법 장점 데이터 검색 위한 SQL 구문 변경 않아도 검색 성능 개선 데이터 검색하기 위한 별도 객체로서 테이블 데이터에 영향 주지 않음 * 인덱스 사용 테이블의 특정 레코드 위치 알려주는 용도로 사용. 이러한 인덱스는 자.. 2021. 3. 3.