목록Cert/정보처리기사 (12)
IT 성장일기
데이터베이스 이상현상과 무결성 이상 현상 데이터베이스 설계 혹은 구조의 문제로 인해 발생할 수 있는 데이터의 불일치나 무결성 위배 문제를 의미한다. 삽입 이상(Insertion Anomaly) 새로운 데이터를 추가할 때 발생하는 문제를 뜻한다. NULL 비허용 속성에 대해 NULL 값을 삽입하려 하는 등 테이블의 데이터 무결성을 위배할 때 발생한다. 갱신 이상(Update Anomaly) 데이터베이스의 정보를 업데이트 할 때 발생하는 문제이다. 데이터의 일부를 갱신할 때 연관된 다른 데이터가 함께 변경되거나, 일부가 변경되지 않는 경우가 있다. 이런 갱신 이상 현상을 예방하기 위해 중복을 최소화하고 정규화를 통해 테이블을 구조적으로 설계해야 한다. 삭제 이상(Deletion Anomaly) 특정 데이터를..

클라우드 컴퓨팅 인터넷을 통해 데이터를 저장, 관리하는 컴퓨팅 리소스를 제공하는 기술입니다. 각종 IT 인프라를 인터넷을 통해 제공함으로써 사용자들은 비용 절감, 유연성, 확장성의 확보 등의 이점을 얻게 됩니다. 공용 클라우드(Public Cloud) 기업과 개인을 위한 클라우드 서비스로써 유연한 확장성과 다양한 서비스를 특징으로 갖는다. AWS, MS Azure, Google Cloud Flatform 등을 예로 들 수 있다. 사설 클라우드(Private Cloud) 기업과 조직 내부에서 운영하는 클라우드 환경으로써 보안과 규정 준수를 위해 사용하는 경우가 많다. 복합 클라우드(Hybrid Cloud) 보안 및 규정 준수를 요구하는 부분은 사설 클라우드를 통해 운영하고, 나머지는 공용 클라우드를 이용하..
보안솔루션 네트워크, 소프트웨어 등에서 발생할 수 있는 보안 위협으로부터 시스템을 보호하기 위한 종합적인 기술 또는 시스템을 의미합니다. 주로 접근 통제, 침입의 차단과 탐지 등을 수행합니다. 시험에 나올 것 같은 내용 위주로 정리해보겠습니다. 방화벽(Fire wall) 외부로부터 내부로의 침입을 방지하기 위한 시스템을 통칭한다. 허가된 데이터 트래픽은 통과시키고 미허가된 트래픽은 걸러내는 역할을 한다. 외부로부터의 공격을 방지하는 중요한 역할을 하지만 내부로부터의 공격에는 취약하다는 단점이 있다. 웹 방화벽(Web Fire Wall) 웹 애플리케이션과 웹 서버를 보호하기 위한 보안장치이다. 주로 웹 애플리케이션의 취약점을 파고드는 공격으로부터 웹 서버를 보호한다. 응용계층의 보호 패킷 필터링과 스크립트..
라우팅 프로토콜(Routing Protocol) 컴퓨터 네트워크에서 데이터를 목적지까지 효율적으로 전달하기 위한 규칙을 의미합니다. 구분과 종류가 정말 많아서 헷갈리지 않도록 한번 정리해보고자 합니다. 정적 라우팅 프로토콜(Static Routing Protocol) 네트워크의 관리자가 수동으로 경로를 설정한다. 네트워크 구성의 변경이나 트래픽의 패턴의 갱신이 일어날 경우 직접 경로를 업데이트해야 한다. 특징 소규모의 간단한 네트워크 구성에 적합함. 특정 경로를 통과해야 할 경우 사용하기도 함. 자원을 절약할 수 있음 동적 라우팅 프로토콜(Dynamic Routing Protocol) 라우터 간의 경로 정보를 자동으로 교환하여 최적의 경로를 선택하는 라우팅 방식이다. 네트워크 변화에 유연하게 대처가 가능..
결합도 결합도(Coupling)란 클래스나 모듈 간의 상호 의존성의 정도를 나타내는 개념입니다. 즉, 어떤 모듈이 다른 모듈과 얼마나 밀접한지 또는 얼마나 많이 의존하는지를 의미합니다. 내용 결합도(Content Coupling) 소프트웨어 모듈 사이에 내부 기능이나 자료를 직접 참조하는 수준의 결합도. 두 모듈이 상호작용할 때 많은 양의 데이터를 공유하거나 서로 다른 기능을 실행함을 의미한다. 공통 결합도(Common Coupling) 여러 모듈이 공통되는 전역 변수를 사용할 때의 결합도. 외부 결합도(External Coupling) 어떤 모듈의 지역 변수를 외부의 다른 모듈에서 참조할 때의 결합도. 제어 결합도(Control Coupling) 모듈 간 논리적 흐름을 제어하기 위해 제어 요소를 전달하..
접근 제어 방식 접근제어(Access Control)란 컴퓨터 시스템이나 네트워크 리소스에 대한 접근을 제어하기 위한 보안 기술을 통칭합니다. 강제적 접근 제어(Mandatory Access Control, MAC) 주체와 객체가 가지는 권한에 근거하여 접근을 제어하는 방식이다. 사용자가 자원에 접근할 때 해당 자원에 대한 보안 등급 또는 레이블이 할당된다. 데이터의 보안 등급보다 높은 등급의 사용자에게만 접근이 허가된다. 장점 중앙 집중식 보안 관리 민감한 정보의 보호 단점 유연성의 부족 설정 관리의 복잡성 오용 가능성 임의적 접근 제어(Discretionary Access Control, DAC) 주체가 가지는 신원에 근거하여 접근을 제어하는 방식이다. 임의적 접근제어 시스템에서는 각각의 자원에 대해..
OSI 7계층 Open Systems Interconnection 국제 표준화 기구(ISO)에 의해 7단계로 정의된 네트워크 통신 과정을 의미합니다. 가장 초기 단계인 1계층부터 7계층까지 특징을 간략하게 정리합니다. 제 1계층 - 물리 계층(Physical Layer) 전기적, 기계적 특성을 이용해 데이터를 전송하는 물리적인 장비에 의한 계층. 유선 또는 무선으로 비트 단위의 데이터를 전송한다. 하드웨어를 기반으로 한다. 제 2계층 - 데이터 링크 계층(Data Link Layer) 물리계층을 통해 정보를 송수신 하는 노드 간의 통신을 관리함. 데이터를 프레임 단위로 관리한다. 데이터의 오류, 흐름 또는 접근 제어를 담당한다. 프레임 동기화 - 전달 받은 비트 스트림을 프레임이라는 단위로 분할하고 동기..
S.O.L.I.D - 객체지향의 5원칙 객체지향 설계에는 디자인 품질과 유지보수성을 향상을 위한 다섯가지 핵심 원칙이 있습니다. Single Responsibility Principle 단일책임원칙은 클래스는 단 하나의 역할만을 가져야 하며, 변경의 의유도 단 하나여야 한다는 것을 의미합니다. 클래스가 하나의 역할에 집중함으로써 명확한 목적을 지향합니다. 코드의 명확성 - 클래스가 단순해지고 어떤 역할을 수행하는지 쉽게 이해할 수 있습니다. 유지보수의 용이성 - 하나의 책임만을 가지게 되면 해당 책임이 변경될 때 다른 부분에 영향을 미치지 않고도 클래스를 수정할 수 있습니다. 유연한 재사용성 - 클래스가 하나의 역할만을 수행한다면 다른 모듈이나 소프트웨어에서도 이를 사용하기가 용이합니다. Open-Clo..
정규화와 반정규화 정규화(Normalization) 관계형 데이터베이스에서 데이터의 중복을 최소화하여 설계하는 것을 일컫는다. 데이터베이스 정규화의 목표는 관계와 구조를 재구성하여 작고 짜임새 있는 관계를 형성하는 데에 있다. 데이터의 단위를 분해한다. 최소화된 데이터 관계를 조인을 통해 조회하도록 한다. 불필요한 데이터를 입력/조회하지 않기 때문에 중복을 최소화할 수 있다. 정규화의 절차 제1 정규화 - 도메인의 원자성 확보 - 속성의 중복 값 제거 - 기본키(Primary Key) 설정 제2 정규화 - 기본키가 다수의 속성으로 이루어진 경우, 부분 함수 종속성을 제거 제3 정규화 - 기본키를 제외한 컬럼 간의 종속성, 즉 이행 함수 종속성 제거 - A -> B, B -> C일 때 A -> C를 만족하..

정보처리기사 실기 공부 중 따로 정리하고 싶은 내용을 기록합니다. UML의 구성요소 UML (Unified Modeling Language) 소프트웨어 개발 과정에서 발생하는 산출물의 명세화, 시각화, 문서화를 위해 사용하는 모델링 언어. 개발자, 고객 등 관계자들 상호 간 원활한 의사소통을 목적으로 한다. 사물, 관계, 다이어그램 등으로 구분된다. 사물 시스템을 구성하는 개별적인 구성 요소를 나타냄. 객체, 모듈, 컴포넌트 및 노드 등 다양한 개념들을 포함할 수 있다. 구조 사물 (Structural Things) 시스템의 개념적, 물리적 요소를 표현한다. 클래스, 유즈케이스, 컴포넌트 등 행동 사물 (Behavioral Things) 시간과 공간에 따른 요소들의 행위를 표현한다. 상호작용, 상태 머신..
정보처리기사 실기 공부 중 따로 정리하고 싶은 내용을 기록합니다. 정적테스트, 동적테스트 정적테스트 소프트웨어를 실행하지 않고 테스트하는 기법. 실제 시스템이 구현되기 전에 요구사항 정의서, 설계서, 소스코드 등 개발의 산출물을 테스트하는 것 리뷰 전문가들이 모여 코드를 포함한 소프트웨어 개발 및 산출물을 검토하고 테스트하여 결함을 검출함. - 비공식적 리뷰 : 공식적인 절차가 존재하지 않음. - 기술적 리뷰 : 문서화되고 정의된 프로세스가 존재함. - 워크쓰루 - 인스펙션 정적분석 소프트웨어를 실행하지 않은 상태에서 자동화 도구를 활용하여 테스트를 수행하는 방법. 동적테스트 소프트웨어를 실행하여 실제로 구현된 시스템을 테스트하는 기법 명세기반 테스트 (블랙박스 테스트) 소스코드나 내부 구조를 참조하지 ..
정보처리기사 실기 공부 중 따로 정리하고 싶은 내용을 기록합니다. 소프트웨어 개발 보안의 3대 요소 가용성 (Availablity) 시스템이 사용 가능하고 정상적으로 작동하는 상태를 의미함. 이는 다시 말해 사용자가 필요할 때 언제든지 시스템에 접근할 수 있고. 데이터나 기능을 이용할 수 있는 상태를 뜻함. 시스템 신뢰성 시스템이 예상대로 작동할 것이라는 믿음. 시스템에 장애가 발생했을 때도 자동으로 복구되거나 빠르게 복구될 수 있는 능력을 포함함. 유지보수성 시스템이 점검, 보수, 업그레이드 등의 유지보수 작업 중에도 사용가능하고 정상적으로 작동하는 능력을 의미. 성능 시스템이 특정 작업을 수행하는데 소요되는 시간과 작업을 처리할 수 있는 능력을 의미. 성능이 높은 시스템은 사용자가 필요로 할 때 즉시..