목록2020/08 (35)
차근차근
0. 제목 백준 1668 트로피 진열 BOJ 1668 트로피 진열 Python 1668 트로피 진열 1. 문제 https://www.acmicpc.net/problem/1668 1668번: 트로피 진열 민식이는 “오민식”이라는 팀이름으로 수없이 많은 로봇대회를 우승했다. 따라서 민식이의 집에는 트로피가 많다. 민식이는 트로피를 어떤 선반 위에 올려놨다. 이 선반은 민식이의 방문을 열 www.acmicpc.net 2. 풀이 첫번째 원소부터 탐색을 시작한다. 탐색을 하다가 현재 위치의 원소보다 큰 원소가 나오면 보이는 갯수를 1 증가시킨다. 최대값을 큰 원소로 갱신시킨다. 오른쪽에서 봤을 때의 개수를 알기 위해서는 reverse()를 이용하여 배열을 역순으로 만든 후 함수에 인자로 넣어주면 된다. 3. 코드..
0. 제목 백준 1568 새 BOJ 1568 새 Python 1568 새 1. 문제 https://www.acmicpc.net/problem/1568 1568번: 새 N마리의 새가 나무에 앉아있고, 자연수를 배우기 원한다. 새들은 1부터 모든 자연수를 오름차순으로 노래한다. 어떤 숫자 K를 노래할 때, K마리의 새가 나무에서 하늘을 향해 날아간다. 만약, 현�� www.acmicpc.net 2. 풀이 반복 조건을 구한 후, 반복문 내에서 조건 검사를 하면된다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 n = int(input()) cnt = 0 k = 1 while n != 0: if(k > n): k = 1 n -= k k += 1 cnt += 1 print(cnt)
0. 제목 백준 1543 문서 검색 BOJ 1543 문서 검색 Python 1543 문서 검색 1. 문제 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한� www.acmicpc.net 2. 풀이 문자열 비교 중 단어가 문서의 범위를 넘어가면 안되므로 문서의 길이에서 시작인덱스를 뺀 값이 단어의 길이보다 크거나 같은 경우 반복문을 수행한다. 검사시작 index에서부터 단어의 길이만큼 문자열과 단어가 같으면 일치개수를 1증가시키고 검사 index를 단어길이만큼 증가시킨다. 단어가 ..
55. 테스트 케이스 / 테스트 시나리오 / 테스트 오라클 ★★ 1. 테스트 케이스(Test Case) - 명세 기반 테스트의 설계 산출물이다. - 가장 이상적인 테스트 케이스를 설계하려면 시스템 설계 시 작성해야 한다. 2. 테스트 케이스 작성 순서 - 테스트 계획 검토 및 자료 확보 -> 위험 평가 및 우선순위 결정 -> 테스트 요구사항 정의 -> 테스트 구조 설계 및 테스트 방법 결정 -> 테스트 케이스 정의 -> 테스트 케이스 타당성 확인 및 유지 보수 3. 테스트 시나리오 - 여러 개의 테스트를 집합으로, 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서이다. - 테스트 시나리오에는 테스트 순서에 대한 구체적인 절차, 사전 조건, 입력 데이터 등이 설정되어 있다. - 테스트 시나리오를 통해..
49. 애플리케이션 테스트 ★★ 1. 애플리케이션 테스트의 개념 - 애플리케이션 테스트는 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차이다. - 고객의 요구사항을 만족시키는지 확인(Validation)하고 소프트웨어가 기능을 정확히 수행하는지 검증(Verification)한다. - 애플리케이션 테스트를 진행하기 전에 개발한 소프트웨어의 유형을 분류하고 특성을 정리해서 중점적으로 테스트할 사항을 정리해야 한다. - Validation : 사용자의 입장에서 개발한 소프트웨어가 고객의 요구사항에 맞게 구현되었는지를 확인하는 것 - Verification : 개발자의 입장에서 개발한 소프트웨어가 명세서에 맞게 만들어졌는지를 점검하는 것 2. 애플리케이션 테스트의 필요성 - 프로그램 실행 전..
45. 소프트웨어 사용자 매뉴얼 작성 ★ 1. 소프트웨어 사용자 매뉴얼의 개요 - 소프트웨어 사용자 매뉴얼은 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서와 안내서이다. - 사용에 필요한 절차, 환경 등의 제반 사항이 모두 포함되도록 작성 - 배포 후 발생될 수 있는 오류에 대한 패치나 기능에 대한 업그레이드를 위해 매뉴얼의 버전을 관리한다. - 개별적으로 동작이 가능한 컴포넌트 단위로 매뉴얼을 작성 2. 서문 - 문서 이력, 사용자 매뉴얼의 주석, 기록 보관을 위해 필요한 내용을 기술한다. - 사용자 매뉴얼의 주석 : 주의 사항과 참고사항을 기술한다. 3. 기본 사항 - 소프트웨어의 개요, 소프트웨어 사용 환경, 소프트웨어 관리, 버전별 특징, 기능특징, 소프트웨어 구동 환..
41. 소프트웨어 패키징 ★★ 1. 소프트웨어 패키징의 개요 - 소프트웨어 패키징이란 모듈로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다. - 개발자가 아니라 사용자가 중심으로 진행한다. - 소스 코드는 향후 관리를 고려하여 모듈화하여 패키징한다. - 사용자가 다양한 환경에서 소프트웨어를 손쉽게 사용할 수 있도록 일반적인 배포 형태로 패키징 - 사용자를 중심으로 진행되는 작업이므로 사용자의 편의성 및 실행 환경을 우선적 고려 2. 패키징 시 고려사항 - 사용자의 시스템 환경, 즉 운영체제(OS), CPU, 메모리 등에 필요한 최소 환경을 정의한다. - UI는 매뉴얼과 일치시켜 패키징한다. - 하드웨어와 함께 관리될 수 있도록 Managed Service 형태로 제공하는 것이 좋다. ..
38. 단위 모듈 구현 ★ 1. 단위 모듈(Unit Module)의 개요 - 단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것이다. - 단위 모듈로 구현되는 하나의 기능을 단위 기능이라고 부른다. - 단위 모듈은 독립적 컴파일이 가능하며, 다른 모듈에 호출되거나 삽입되기도 한다. - 단위 모듈을 구현하기 위해서는 단위 기능 명세서를 작성한 후 입출력 기능과 알고리즘을 구현해야 한다. 2. 단위 기능 명세서 작성 - 단위 기능 명세서는 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서들을 의미한다. - 단위 기능 명세서를 작성하는 작성하는 단계에서는 복잡한 시스템을 단순하게 구현하기 위한 추상화 작업이 필요하다. ..
189. 서비스 공격 유형 ★★★ 1. 서비스 거부(DoS; Denial of Service) 공격의 개념 - 서비스 거부 공격이란 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수의 공겨자 또는 시스템에서 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 표적이 되는 정상적인 기능을 방해하는 것이다. - 서비스 거부 공격의 유형에는 Ping of Death, SMURFING, SYN Flooding, TearDrop, Land, DDos 등이 있다. 2. Ping of Death(죽음의 핑) - Ping of Death는 Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용 범위(65,536 바이트) 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격 방법이다. - I..
184. 에러처리 ★★ 1. 에러처리의 개요 - 에러처리는 소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 오류로 인해 발생할 수 있는 문제들을 예방하기 위한 보안 점검 항목들이다. 2. 오류 메시지를 통한 정보노출 - 오류 메시지를 통한 정보노출은 오류 발생으로 실행 환경, 사용자 정보, 디버깅 정보 등의 중요 정보를 소프트웨어가 메시지로 외부에 노출하는 보안 약점이다. - 오류 메시지를 통해 노출되는 경로 및 디버깅 정보는 해커의 악의적인 행위를 도울 수 있다. - 예외 처리 구문에 예외의 이름이나 스택 트레이스를 출력하도록 코딩한 경우 해커는 소프트웨어의 내부구조를 쉽게 파악할 수 있다. - 오류 발생 시 가능한 한 내부에서만 처리되도록 하거나 메시지를 출력할 경우 최소한의 정보 또는 ..