본문 바로가기

기본 지식15

애플리케이션 테스트 관리 01 애플리케이션 테스트 케이스 설계 1. 소프트웨어 테스트 - 원리 - 테스팅은 결함이 존재함을 밝히는 것. 결함이 없음은 증명 못 함 - 완벽한 테스팅은 불가능함 - 개발 초기에 테스팅 시작 - 결함집중. 적은 수의 모듈에서 대다수의 결함이 발견됨. 파레토 법칙 (80대 20) - 살충제 패러독스: 동일 테스트 케이스에 의한 반복 테스트는 새로운 버그를 찾지 못함 - 테스팅은 정황에 의존적. 정황에 따라 테스트를 다르게 수행 - 오류-부재의 궤변: 요구사항을 충족하지 못한다면 결함이 없어도 품질이 높은 게 아님 - 유형 1) 정적 테스트 : 테스트 대상을 실행하지 않고 구조 분석. (리뷰, 정적 분석) 2) 동적 테스트 : 소프트웨어를 실행해 결함을 검출 (화이트박스, 블랙박스, 경험기반) (1) 화.. 2021. 7. 6.
소프트웨어 개발 보안 구축 01 소프트웨어 개발 보안 설계 1. SW 개발 보안 - 개념: 소프트웨어 개발 과정에서 지켜야 할 보안 활동 - 구성 요소 (무기가) 1) 무결성: 데이터가 고의/악의로 변경되거나 훼손되지 않음을 보장 2) 기밀성: 인가되지 않은 접근에 따른 정보 공개 차단 3) 가용성: 권한을 가진 사용자가 원하는 서비스를 지속해서 사용할 수 있도록 보장 - 공격 기법 1) DoS (Denial of Service) : 시스템을 공격해 자원이 부족하게 하여 의도된 용도로 사용하지 못하게 하는 공격 (1) SYN 플러딩 : TCP 프로토콜의 SYN 패킷만 보내 서브의 동시 가용 사용자 수를 점유. 공격자는 ACK을 발송하지 않고 계속 새로운 요청을 보내 서버의 자원을 고갈시킴 (2) UDP 플러딩: 대량의 UDP 패킷.. 2021. 7. 5.
서버 프로그램 구현 1. 개발환경 구축 - 개발 도구 1) 빌드 도구: Ant, Maven, Gradle 2) 구현 도구: Eclipse, IntelliJ, Spring Tool Suite, NetBeans, Visual Studio 3) 테스트 도구: xUnit, PMD, Findbugs, Cppcheck, Sonar 4) 형상 관리 도구: CVS, Subversion, Git - 구성 요소 1) 하드웨어 개발환경 (1) 서버 - 웹 서버: HTTP를 이용한 요청/응답(정적 콘텐츠) 처리. WEB-WAS-DB 3계층 구조. Apache, Nginx - 웹 애플리케이션 서버: 동적 콘텐츠 처리. Tomcat, Weblogic, Jeus, Resin - 데이터베이스 서버: 데이터의 수집, 저장. MySql, Oracle - .. 2021. 7. 3.
절차형 SQL 1. 절차형 SQL : 일반적인 개발 언어처럼 SQL 언어에서도 절차 지향 프로그래밍이 가능하돌독 하는 트랜잭션 언어 - 종류: 프로시저, 사용자 정의 함수, 트리거 2. 프로시저 : 일련의 쿼리들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 - DECLARE, BEGIN, CONTROL, SQL, EXCEPTION, TRANSACTION - EXECUTE 또는 EXEEC 명령어로 프로시저 실행 3. 사용자 정의 함수 : SQL 처리 결과를 단일 값으로 반환할 수 있는 절차형 SQL - DECLARE, BEGIN, CONTROL, SQL, EXCEPTION, RETURN 4. 트리거 : DB 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL - 반환 .. 2021. 7. 3.
데이터 분석 함수 데이터 분석 함수 - 개념: 복수 행 기준의 데이터를 모아 처리하는 것을 목적으로 하는 다중 행 함수 - 종류 1) 집계 함수 : 여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환 - 구문: GROUP BY, HAVING - 종류: COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN 2) 그룹 함수 : 테이블의 전체 행을 칼럼 값에 따라 그룹화해 그룹별로 결과를 출력 - 유형 (1) ROLLUP : 지정 컬럼 수+1 레벨만큼의 중간 집계 값 생성 “ GROUP BY [컬럼 ...] ROLLUP(컬럼, ...) (2) CUBE : 결합 가능한 모든 값에 대해 다차원 집계 생성 “ GROUP BY [컬럼, ...] CUBE(컬럼, ...) (3) GROUPING SETS : .. 2021. 7. 3.
데이터베이스 기본 1. 트랜잭션 - 개념: DB 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위 - 특성 (ACID) 1) 원자성 (Atomicity): 분해가 불가능한 작업의 최소 단위. 하나라도 실패하면 전체가 취소 2) 일관성 (Consistency): 트랜잭션 실행 성공 후 항상 일관된 DB 상태를 보존해야 함 3) 격리성 (Isolation): 트랜잭션 실행 중 다른 트랜잭션이 접근 불가 4) 영속성 (Durability): 트랜잭션 결과는 DB에 영속적으로 저장 - TCL 명령어 (트랜잭션 제어 언어) 1) 커밋 (COMMIT): 트랜잭션 확정. 메모리에 영구 저장 2) 롤백 (ROLLBACK): 트랜잭션 취소. 저장 무효화 3) 체크포인트 (CHECKPOINT): 롤백을 위한 시점 .. 2021. 7. 3.