Crash Course: Computer Science를 정리했습니다. 소프트웨어 공학 소프트웨어 공학은 '마가렛 해밀턴'이 만든 용어이다. 예를 들어 MS오피스는 코드라인이 4천만개에 달한다. 이런 거대한 프로그램을 만들기 위해서는 소프트웨어 공학이 필요하다. Object oriented Programming 객체지향 프로그래밍이란 함수를 계층구조로 패키지화하는 것이다. 즉, 관련된 코드를 객체로 모으는 것이다. 여기서 객체는 다른 객체와 함수를 포함할 수 있다. 복잡성을 숨기고 선택적으로 그것을 드러내는 것이 본질이며, 크고 복잡한 프로그램을 만드는 대중적이고 강력한 방법이다. API (Application Programming Interface) 공동으로 작업하는 방식이다. 적절한 접근 권한을 알 ..
정보처리기사 필기 준비하며 정리한 내용입니다. SW개발 보안 설계 정보 보안 관리 기술 정보보안의 3요소 기밀성 무결성 가용성 AAA ⭐ 인증 Authentication 신원 검증, 로그인 등 권한 부여 Authorization 계정 관리 Accounting 인증 제도 ISMS 정보보호 관리체계 인증 회사의 종합적인 체계에 대한 인증제도 PIMS 개인정보 관리체계 지금은 사용하지 않는다 ISMS-P 정보보호 및 개인정보보호 관리체계 인증 Secure SDLC SDLC 소프트웨어 생명주기 방법론 ⭐ CLAPS SDLC의 초기 단계에서 보안 강화하려고 개발된 방법론 현재 운용 중인 시스템에 적합 MS-SDL Seven Touchpoints 소프트웨어 보안 모범사례를 SDLC에 통합한 방법론 모든 산출물에 위..
정보처리기사 필기 준비하며 정리한 내용입니다. 네트워크 구축 절차 요구사항 정의 기본 설계 상세 설계 구축 테스트 운용 네트워크 토폴로지 계층형 상위부터 트리형태 버스형 장애 시 전체 마비 성형 star ⭐ 중앙 장애시 전체 마비 링형 저렴. 충돌 없음. 구성변경 힘듦 장애 발생시 전체 마비 망형 mesh 전체가 그물로 얽힌 형태 회선수 : n(n-1) / 2 각 장치당 포트 수 : n-1 자기 빼고라서 📌네트워크 장비 백본 백본 네트워크 대규모 패킷 통신망 백본 스위치 모든 패킷이 지나간다. 네트워크 중심에 위치 종류 L2 스위치 : 더미가 아닌 허브(스위치) L3 스위치 : 라우터 L4 스위치 : 포트 기반. 로드 밸런싱. 전송 계층에서 운용됨. L7 스위치 : 전 계층. 방화벽 역할. 보안장비에 주..
정보처리기사 필기 준비하며 정리한 내용입니다. 소프트웨어 공학 품질 높은 소프트웨어를 개발하기 위한 학문 소프트웨어 공학의 3R 역공학 Reverse Engineering 기본에 개발된 시스템을 CASE 도구를 이용해 문서로 추출. 개발단계를 역으로 올라가는 것 재공학 Re-engineering 기존 시스템 재구성 + 이기종에서 사용할 수 있도록 변환. 예방 보수와 관련됨 유지 운영. 유지보수성 향상 과정 ⭐ 분석 → 재구성 → 역공학 → 이관(마이그레이션) 재사용 Reuse 이미 개발된, 잘 만들어진 소프트웨어 전체 또는 일부분 다시 사용 범위 함수와 객체 컴포넌트 애플리케이션 방법 합성Composition 중심 : 블록(모듈)을 끼워맞춰서 생성Generation 중심 : 추상화 형태로 쓰여진 명세를 ..
정보처리기사 필기 준비하며 정리한 내용입니다. 서버 개발 프레임워크 프레임워크의 특징 모듈화 재사용성 확장성 제어의 역흐름 inversion of control API 데이터를 제공하는 측에서 공개적으로 데이터를 주고받을 수 있는 규칙을 미리 정의해 두면 외부의 컴퓨터들이 데이터를 가져다 쓸 수 있게 하는 기술 SOAP (Simple Object Access Protocol) HTTP HTTPS SMTP 등(개방된 포트) 프로토콜을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜 WSDL 설명서. xml 기반 UDDI 도서관 REST ROA (Resource Oriented Architecture) 자원 기반의 구조 개념으로 구현됨 구성요소 자원 Resource URI로 자원 지정 ..
정보처리기사 필기 준비하며 정리한 내용입니다. 소프트웨어 테스트 기본 원칙 인간이 하기 때문에 완벽한 테스팅은 불가능하다. 결함 집중의 법칙 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재 파레토 법칙 살충제 패러독스 동일한 테스트 케이스로 반복 실행하면 그 케이스에서는 결함을 발견할 수 없다 그러나 다른 곳에서는 나타난다! 테스팅은 정황 context에 의존한다 오류-부재의 궤변 사용자의 요구사항을 만족하지 못하는 오류를 고쳐봤자 품질이 높다고는 할 수 없다 테스트 프로세스 개발과 유사하다 테스트 계획 테스트 분석 및 디자인 테스트 케이스 및 시나리오작성 테스트 수행 테스트 결과 평가 및 리포팅 테스트 산출물 테스트 계획서 **테스트 케이스 (**케이스란 하나의 단위) 테스트를 위한 설..
정보처리기사 필기 준비하며 정리한 내용입니다. 제품 소프트웨어 패키징 패키징 고객이 소프트웨어를 사용할 수 있도록 묶은 것 업데이트 받는 것도 패키징! 매뉴얼 작성도 패키징! 배포까지 말하는 것이 패키징 작업 패키징 방법 일반적인 3가지 CD / USB APP 스토어에서 받는 것 WEB 서비스 📌애플리케이션 패키징 무조건 고객(사용자) 입장에서 패키징을 고려해야 한다! 패키징된 서비스는 고객이 설치해야 하기 때문에 사용자의 실행 환경을 이해한다! 컴퓨터 상태 (OS, CPU, 메모리 등) 수행 순서 ⭐ 기능 식별 모듈화 진행 // 여기까지는 개발 빌드 진행 : 배포본 형태로 만드는 것 (묶는 것) 웹 JAVA 기준으로 war파일(압축파일) 이 나온다. 이걸 가지고 아래의 환경 분석을 수행! (컴퓨터라면 ..
정보처리기사 필기 준비하며 정리한 내용입니다. 단위 모듈—단위 테스트 📌단위 모듈 구현 단위모듈 : 하나의 모듈. 하나의 일처리 단위! 개념 소프트웨어를 기능 단위로 분해하여 구현하는 기법 각 모듈이 독립적으로 활용될 수 있게 구현 모듈은 크기가 작고 하나의 일만을 수행하도록, 읽기 쉽도록 만들어야 모듈은 최대한 작게 만들어야! 장점 오류의 파급효과 최소화 모듈 재사용으로 개발 및 유지보수가 용이! 효과적인 모듈화 결합도를 줄이고 응집도를 높여 모듈의 독립성을 높임! ⭐ FAN-OUT 최소화, FAN-IN 증가 단위 모듈 설계의 원리 ⭐ 단계적 분해 : 처음엔 간단히 작성 → 점점 세밀히 작성 추상화 : 복잡한 문제 일반화 → 이해하기 쉽도록 독립성 : 응집도는 높이고 결합도를 낮춰 정보은닉 : 내부 데..
정보처리기사 필기 준비하며 정리한 내용입니다. 인터페이스 요구사항 확인 📌절차 요구사항 분류 → 분석 → 할당 → 협상 → 정형 분석(문서화) 인터페이스 = 접점을 만들어주는 것ex. 빕스에서 CJ ONE의 API를 호출=인터페이스 한다.이렇게 꼭 외부만이 아니라 내부에서 함수를 호출하는 것도 역시 인터페이스! 즉 시스템과 시스템이 서로 연결-호출하는 것. ex. 시스템과 나와의 접점을 만들어주는 것이 유저 인터페이스 인터페이스는 서로의 약속=규칙이 정해져있어야 한다. 상호 작용하는 접속 방법이나 규칙을 정의하는 것이 인터페이스 요구사항 1) 요구사항 분류 기능적 요구사항 어떤 액션을 했을 때 어떤 기능이 작동해야 한다. 입력, 처리과정, 출력 비기능적 요구사항 성능, 사용성, 안정성, 신뢰도, 보안 :..