소프트웨어 구축 9

[정보처리기사] 소프트웨어 구축 (2)

강의를 들으면서 헷갈리는 것만 정리하기 아예 기억조차 안나면 헤드에 볼드체와 🔅로 정리 1회차 MVC 모델 계층 프로젠테이션 계층: 뷰, UI 제어 계층: 로직 처리 비즈니스 로직 계층: 실제 업무 처리 퍼시스턴트 계층: 데이터 처리, DB 연결 도메인 모델 계층: 각 계층 사이에 전달되는 실질적인 비즈니스 객체 ORM 매핑 기술 비교 SQL Mapper OR Mapping(=ORM) 시큐어 코딩 가이드 종류(입보시에코캡아) 입력데이터 검증 및 표현 보안 약점 종류 SQL Injection, XSS, 자원 삽입 등 보안 기능 보안 약점 종류 부적절한 인가, 취약한 암호화 알고리즘, PWD 평문 저장 등 시간 및 상태 보안 약점 종류 종료되지 않은 반복문 또는 재귀 함수, 경쟁 조건 등 에러처리 보안 약점..

정보처리기사 2023.07.21

[정보처리기사] 소프트웨어 구축 (1)

회차별 모르거나 헷갈리는 것만 기술 아예 기억조차 안나면 헤드에 볼드체와 🔅로 정리 1회차 재공학: 예방 유지보수 측면에서 소프트웨어 위기 해결 분석 → 재구성 → 역공학 → 이관 재사용 방법 합성 중심: 모듈을 끼워 맞춰 완성 생성 중심: 추상화 형태 소프트웨어 개발 모델 폭포수 모델 프로토타입 모델 나선형 모델 RAD: Case 도구를 이용한 빠른 시스템 개발 V 모형 4세대 기법 화이트박스 vs 블랙박스 테스트 기법 화이트박스 테스트 기법: 소스 코드의 논리적인 모든 경로 테스트 블랙박스 테스트 기법: 소스 코드로 구현된 기능이 완전히 동작하는 것을 입증하는 테스트 동경원오비 스크럼 스프린트 계획 회의를 통해 스프린트 백로그를 작성 🔅 IT 서비스 관리 SLM(Service Level Managem..

정보처리기사 2023.07.21

[정보처리기사] 소프트웨어 구축 (7)

소프트웨어 유지보수 소프트웨어 유지보수 개념 개발 완료 시점부터 폐기될 때까지, 지속적으로 수행하는 작업 소프트웨어의 수명을 연장하기 위한 활동 소프트웨어 생명주기 동안 가장 많은 비용이 소모되는 단계 유지보수의 구분 수정 보수(Corrective Maintenance) 소프트웨어 구축 시 테스트 단계에 미처 발견하지 못한 잠재적인 오류를 찾아 수정한다. 적응 보수(Adaptive Maintenance) 운영체제, 하드웨어와 같은 프로그램 환경변화에 맞추기 위해 수행하는 유지보수 해당 시스템을 다른 곳으로 이동시킬 수도 있기 때문에 향상 보수(Perfective Maintenance) 기존 기능과 다른 새로운 기능을 추가하거나 기존 기능을 개선 소프트웨어 확장 및 리모델링 유지보수 활동 중 가장 많은 자..

정보처리기사 2023.07.06

[정보처리기사] 소프트웨어 구축 (6)

애플리케이션 테스트케이스 설계 소프트웨어 테스트 개념 구현된 소프트웨어의 동작과 성능, 사용성, 안정성 등을 만족하기 위해 소프트웨어의 결함을 찾아내는 활동 소프트웨어 테스트 필요성 오류 발견 관점 오류 예방 관점 품질 향상 관점 스포트웨어 테스크의 기본 원칙 테스팅은 결함이 존재함을 밝히는 활동 완벽한 테스팅은 불가능하다 테스팅은 개발 초기에 시작해야 한다. 결함 집중(Defect Clustering) 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다 파레토 법칙: 전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상 살충제 패러독스(Presticide Paradox) 동일한 테스트 케이스로 반복 실행하면 결함을 발견할 수 없으므로 주기적으로 테스트케이스를 리뷰하고 개선해야 한다..

정보처리기사 2023.07.05

[정보처리기사] 소프트웨어 구축 (5)

인터페이스 구현 인터페이스 시스템 개념 서로 다른 시스템, 장치 사이에서 정보나 신호를 주고받을 수 있도록 도움을 주는 시스템 구성 송신 연계할 데이터를 생성해, 연계 테이블 또는 파일 형태로 송신하는 시스템 수신 수신할 데이터를 데이터 형식에 맞게 저장하고 활용하는 시스템 중계 송/수신 시스템 사이에서 데이터를 송수신하고 현황을 모니터링 하는 시스템 송수신 데이터 식별 개념 송수신 시스템 사이에서 교환되는 데이터는 규격화된 표준 형식에 따라 전송 송수신 전문 구성 전문 공통부 인터페이스 표준 항목을 포함 전문 개별부 업무처리에 필요한 데이터를 포함(실제 사용할 데이터) 전문 종료부 전송 데이터의 끝을 표시하는 문자 포함 인터페이스 설계서 구성 목록 연계 업무와 연계에 참여하는 송수신 시스템의 정보, 연..

정보처리기사 2023.07.05

[정보처리기사] 소프트웨어 구축 (4)

모듈 구현 단위 모듈 구현 개념 소프트웨어를 기능 단위로 분해하여 구현하는 기법 여기서 모듈이란? 하나의 기능을 수행하는 단위 효과적인 모듈화 결합도는 낮추고 응집도를 높여 모듈의 독립성을 높임 FAN-OUT 최소화, FAN-IN 증가 단위 모듈 설계의 원리 단계적 분해 추상화 독립성 정보은닉 분할과 정복 단위 모듈 작성 원칙 정확성 명확성 완전성 일관성 추적성 결합도 결합도 개념 두 모듈 사이의 연관 관계 결합도가 낮을수록 잘 설계된 모듈이다. 결합도 유형 내용 결합도 변수 또는 기능이 여기저기 모두 얽혀서 사용하는 경우 공통 결합도 전역 변수를 참조하고 사용할 경우 외부 결합도 외부 변수를 사용할 경우 제어 결합도 자료 결합도로 자료가 넘어가는데, 해당 자료로 제어문 즉 조건문을 사용할 때 스탬프 결..

정보처리기사 2023.07.05

[정보처리기사] 소프트웨어 구축 (3)

개발 환경 구축 서버 환경 구축 웹 서버(WEB) 클라이언트에게 정적 파일(HTML, CSS, JS, Image)을 제공하는 웹 서버 애플리케이션이 설치된 하드웨어 Apache Web Server, IIS, Nginx, GWS 등 웹 어플리케이션 서버(WAS) 동적인 웹 서비스를 제공하기 위한 미들웨어로 설치된 하드웨어 WebLogin, WebSpere, Jeus, Tomcat 등 데이터베이스 서버(DBMS) 데이터의 저장과 관리를 위한 데이터베이스 소프트웨어가 설치된 하드웨어 Oracle, MySQL, MS-SQL 등 파일서버 사용자의 파일을 저장하고, 파일을 목적으로 구성된 하드웨어 Load Balancer L4 switch 여기서 OSI7계층에서 사용되는 Layer 확인 L2: 집선으로 컴퓨터를 연..

정보처리기사 2023.07.04

[정보처리기사] 소프트웨어 구축 (2)

소프트웨어 설계 소프트웨어 설계 개념 요구사항 명세서를 참조하여 소프트웨어의 구체적인 설계서를 작성하는 단계 종류 (CASE 도구의 상위 CASE, 하위 CASE 와 유사) 상위 설계 (분석, 설계 관련) 아키텍처 설계 데이터 설계 인터페이스 정의 사용자 인터페이스 설계 하위 설계 (구현 관련) 모듈 설계 자료구조 설계 알고리즘 설계 소프트웨어 설계의 원리 정보은닉(Information Hiding) 다른 객체에게 자신의 정보를 숨기고, 자신의 연산만을 통해 접근이 가능하도록 한다. 분할과 정복(Divide & Conquer) 규모가 큰 소프트웨어를 여러 개의 작은 서브시스템으로 나누어 하나씩 완성시킨다. 추상화(Abstraction) 실세계의 복잡한 상황을 간결하고 명확하게 핵심 위주로 단순화시킨다. ..

정보처리기사 2023.07.04

[정보처리기사] 소프트웨어 구축 (1)

소프트웨어 공학 소프트웨어 공학(Software Engineering) 소프트웨어 위기를 극복하고 효율적으로 품질 높은 소프트웨어를 개발하기 위한 학문 소프트웨어 공학의 3R 역공학(Reverse Engineering) 기존 개발된 시스템을 CASE(Computer Aided Software Engineering) 도구를 이용해 요구 분석서, 설계서 등의 문서로 추출하는 작업 개발 단계를 역으로 올라가 기존 개발된 시스템의 코드나 데이터를 시작으로 설계 명세서나 요구 분석서 등을 도출하는 작업 재공학(Re-Engineering) 소프트웨어의 위기를 해결하기 위해 개발의 생산성이 아닌 유지보수의 ****생산성으로 해결하려는 방법 기존 소프트웨어를 폐기하지 않고 기능을 개선시키거나 새로운 소프트웨어로 재활용..

정보처리기사 2023.07.04