전체 글 88

정보처리기사 오답 정리(15. 애플리케이션 테스트 관리)

1. 애플리케이션 테스트 케이스 설계 소프트웨어 테스트는 오류 발견 관점, 오류 예방 관점, 품질 향상 관점에서 필요하다. 소프트웨어 테스트 원리 1. 살충제 패러독스 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함 테스트 케이스의 정기적 리뷰와 개선 및 다른 시각에서의 접근 필요 2. 결함 집중(파레토 법칙) 적은 수의 모듈에서 대다수의 결함이 발견됨 소프트웨어 테스트에서의 오류의 80%는 전체 모듈의 20% 내에서 발견됨 3. 오류-부재의 궤변 요구 사항을 충족시켜주지 못한다면, 결함이 없다 해도 품질이 높다 할 수 없다. 프로그램 실행 여부에 따른 테스트 분류 1. 정적 테스트 테스트 대상을 실행하지 않고 구조를 분석하여 논리성을 검증하는 테스트 리뷰, 정적 분석이 해당 리뷰의..

Tableau 대시보드 제대로 활용하기 - 콘텐츠 구성편

파이썬이라든가, SQL을 배우는 것은 좋은데, 이를 시각적으로 표현하는 것 또한 사용자에게 있어서 굉장히 중요한 경험 중 하나라는 것을 알고 있다. 정제된 데이터를 사용자에게 시각적으로 보여주기 위한 툴로 Tableau를 소개하고, 이를 활용하는 방법에 대해 설명하는 시간을 가져본다. Tableau 대시보드를 사용함에 있어서 부족함을 느낄때마다 작성해보는 비정기적 시리즈이니 다음 편을 손꼽아 기다릴 필요까지는 없을 것 같다. 어떤 Dashboard가 좋은 걸까? 1. 전체론적인 대시보드(Wholistic) 만드는 부분이 하나하나의 조합된 정보체계이며, 디테일을 수반하는 큰 그림이 만들어져야 한다. 이는 부분이나 디테일을 포기하면서 전체를 보여주는 것이 아니라는 말과 같음. 디테일이 모여 모여 하나의 큰 ..

정보처리기사 오답 정리(14. SW 개발 보안 구현)

입력 데이터 검증 및 표현 취약점 1. XSS(Cross Site Script) 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격 2. CSRF(Cross Site Request Forgery, 사이트 간 요청 위조) 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 3. SQL Injection(SQL 삽입) 응용 프로그램의 보안 취약점을 이용해 악의적 SQL 구문을 삽입, 실행시켜 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격기법 비즈니스 연속성 계획 관련 주요 용어 1. BIA(Business Impact Analysis) 장..

도보에 따른 칼로리 소모량 분석해보기 3. 선형 회귀 분석(+분석 코드)

이전 내용과 이어집니다. https://songmin9813.tistory.com/40(2. 데이터 전처리) 독립 변수의 개수도 적고, 데이터의 상관관계 또한 우상향 그래프를 그리고 있기에 단순 선형 회귀 모델을 이용한 ML 모델을 만들어보고자 한다. 모델을 만듦에 있어서 독립 변수는 distance, steps로, 종속 변수는 calories로 둔 채 최소 자승법을 이용한 회귀 분석을 진행한다. 우상단 R-squared 값이 0.786으로 약 78% 설명력을 보이고 있지만, distance와 steps의 p-value 값이 충분한 신뢰도를 보이고 있지 않다. (각각 0.982, 0.582) 이는 각 값이 서로를 설명할 수 있는 다중 공선성 문제라 판단했기에 p-value가 가장 높은 distance 변..

정보처리기사 오답 정리(13. SW 개발 보안 설계)

소프트웨어 개발 보안의 3대 요소 1. 기밀성(Confidentiality) 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 2. 무결성(Integrity) 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성 3. 가용성(Availability) 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성 소프트웨어 개발 보안을 위한 공격기법 - DoS 공격 시스템을 악의적으로 공격해서 해당 시스템이 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격 특정 서버에 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용..

도보에 따른 칼로리 소모량 분석해보기 2. 데이터 전처리

이전 내용과 이어집니다. https://songmin9813.tistory.com/39(1. 데이터 인사이트) 각 데이터는 ‘날짜’라는 동일한 값을 가지고 있음을 파악했기 때문에 이를 primary key로 삼아 join을 진행하여 하나의 테이블을 만드는 것이 도움이 될 것이라 판단했다. 이에 join 함수를 이용하여 세 개의 데이터를 한 번에 합치는 과정을 진행했고, 해당 데이터프레임 내 결측치가 존재하는지 info 함수를 통해 우선 확인하였다. 각 열은 167열로 이루어진 것을 확인할 수 있었고, 각 값에 대한 결측치는 존재하지 않는 것을 확인했다. 모두 join을 진행시키고 정규화 전 출력은 상기 그림과 같다. y축이 각 column 별로 제각각 존재했기에 column 별 정규화를 진행하여 그래프를..

정보처리기사 오답 정리(12. 서버 프로그램 구현)

1. 개발환경 구축 형상 통제 형상 항목의 버전 관리를 위해 변경 여부와 변경 활동을 통제하는 활동 형상통제는 형상 항목의 형상 관리를 위해 형상통제위원회(CCB)를 구성하며, 소프트웨어 변경의 요구, 평가, 승인이 이루어진다. 개발 도구의 분류 1. 빌드 도구 작성한 코드의 빌드 및 배포를 수행하는 도구 각각의 구성요소와 모듈에 대한 의존성 관리를 지원 2. 구현 도구 코드의 작성과 디버깅, 수정 등과 같은 작업과 구현소프트웨어가 어떤 프로그래밍 언어로 개발되는지 선택 프로그램을 개발할 때 가장 많이 사용되는 도구 3. 테스트 도구 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구 코드의 테스트, 테스트에 대한 계획, 수행 및 분석 등의 작업 기능 4. 형상 관리 도구 개발자들이 작성한 코드..

도보에 따른 칼로리 소모량 분석해보기 1. 데이터 인사이트

해당 프로젝트는 학교에서 진행한 개인 프로젝트를 게시글 형태로 가공하여 발행하는 시리즈이다. 아마 현재까지 발행된 게시글 중 필자의 주관적인 판단이 가장 많이 들어간 시리즈이지 않을까 싶다. 사실 데이터 분석과 관련된 인사이트를 많이 보여주고 싶은 마음이 제일 크다. 도대체 이 작자가 어떤 데이터에 대해 어떤 생각을 가지고 있는지 소개하는 시간을 가져보도록 하자. 프로젝트로 주어진 3개의 데이터를 분석하고 시각화하는 과제를 부여받았다. 이에 주어진 3개의 데이터의 종류는 다음과 같다. results_calories.txt results_distance.txt results_stpes.txt 학교에서는 이 세 개의 파일을 띡 주고 '분석해 봐~'하는 것으로 과제가 주어졌기에, 어떤 방식으로 분석해야 하는지..

Analytic SQL 5. 이동 평균(Moving Average)과 유의 사항

다른 집계 함수와 데이터 처리 관련 개념을 따로 빼놓기는 했다. 이는 window절의 심화 과정보다는 응용에 가까운 개념이라 판단되어 새로운 장으로 설명해보도록 한다. 이동 평균(Moving Average)이란? 평균을 구하는 범위 구간을 이동시키면서 구하는 평균값을 의미함. 지금껏 자주 사용되는 누적합과 더불어 누적 평균도 존재는 하다만, 누적평균보다는 이동 평균이 더 보편적으로 쓰이는 편. 여기서의 범위 구간 = 이미 배웠던 window의 정의와 연결시켜 생각한다면 쉽게 이해할 수 있을 것 같다. 이를 구하는 이유는 뭘까? 주식과 같은 항목처럼 단기간 변동성이 심한 항목들에 대해서 이동 평균을 접목시키면 효과적인 시각화가 가능하다. 전반적인 추세를 확인하기 어려운 항목에 대해 효과적인 집계/시각화가 ..

Analytic SQL 4. Window 절 심화

window 절이 다른 절과 다르게 알아야 하는 것이 조금 있기 때문에 추가적인 장을 만들어 공부해보도록 한다. Analytic SQL의 기본 구문을 다시 한번 상기하고 시작해보도록 하자. (인자) over( -- partition 절 -- sorting 절 -- window 절 ) 상기 코드에서 window 절에 해당하는 구문을 더 자세히 뜯어보면 다음과 같다고 할 수 있다. --window 절의 사용 {rows | range} {between {unbounded preceding | current row | value_expr {preceding | following} } and {{unbounded preceding | current row | value_expr {preceding | follow..