정보시스템 구축 관리 과목에서 소프트웨어 개발 방법론, IT 프로젝트 관리, 소프트웨어 개발 보안 및 시스템 보안에 대한 학습 진행
소프트웨어 개발 방법론 활용
소프트웨어 생명주기의 단계와 폭포수·프로토타이핑·나선형·애자일 방법론의 특징을 비교하고, 프로젝트의 규모와 요구사항 변화 가능성에 따라 적절한 개발 방법론을 선택
소프트웨어 개발 표준 및 테일러링
조직에서 사용하는 개발 표준과 절차를 프로젝트의 특성에 맞게 조정하고, 불필요한 절차는 줄이면서 품질과 일관성을 유지하는 방법 학습
소프트웨어 비용 산정
LOC, 기능점수, COCOMO 등의 산정 기법을 활용하여 소프트웨어의 개발 규모, 투입 인력, 개발 기간 및 비용을 예측
소프트웨어 개발 일정 관리
작업 간 선후 관계를 파악하고 WBS, PERT, CPM 등을 활용하여 프로젝트 일정과 임계 경로를 관리
IT 프로젝트 통합 관리
프로젝트의 목표, 범위, 일정, 비용, 품질, 인력 등을 종합적으로 관리하고 각 관리 영역의 변경 사항을 통제
프로젝트 범위 및 일정 관리
요구사항을 기준으로 프로젝트의 작업 범위를 정의하고, 세부 작업을 분해하여 담당자와 완료 기한을 설정
프로젝트 비용 및 품질 관리
예산과 실제 지출을 비교하여 비용을 통제하고, 품질 기준을 수립하여 결과물이 요구사항을 충족하는지 점검
프로젝트 위험 관리
발생 가능한 기술적·일정적·인적 위험을 사전에 식별하고, 발생 가능성과 영향도를 분석하여 대응 계획 수립
소프트웨어 개발 보안 설계
개발 초기 단계부터 보안 요구사항을 반영하고, 사용자 인증·권한 관리·데이터 보호·입력값 검증 등 보안 기능 설계
시큐어 코딩
SQL 삽입, 경로 조작, 크로스사이트 스크립팅, 버퍼 오버플로 등의 취약점이 발생하는 원인을 이해하고 안전한 코딩 방법 적용
입력 데이터 검증 및 표현
외부에서 전달되는 데이터의 형식과 범위를 검사하고, 비정상적인 입력값이 명령어나 프로그램 코드로 실행되지 않도록 처리
인증 및 접근 통제
사용자의 신원을 확인한 후 역할과 권한에 따라 시스템 자원에 대한 접근을 허용하거나 제한
암호화 기술 활용
평문 데이터를 암호문으로 변환하여 보호하고, 대칭키·비대칭키·해시 함수 및 전자서명의 특징과 활용 방법 학습
네트워크 보안 구축
방화벽, 침입 탐지 시스템, 침입 방지 시스템, 가상 사설망 등을 활용하여 외부 공격과 비인가 접근 차단
시스템 접근 통제
사용자 계정과 권한을 관리하고 식별·인증·인가·감사 과정을 통해 시스템 자원에 대한 접근 통제
악성코드 및 공격 대응
바이러스, 웜, 트로이 목마, 랜섬웨어 등 악성코드의 특징과 서비스 거부 공격, 스니핑, 스푸핑 등의 공격 기법 이해
보안 취약점 점검
운영체제, 서버, 네트워크 장비의 설정 상태를 점검하고 불필요한 서비스 제거, 보안 패치 적용 및 로그 분석 수행
보안 사고 대응
보안 사고 발생 시 사고 탐지, 피해 범위 분석, 시스템 복구, 원인 제거 및 재발 방지 대책 수립
코딩테스트 문제 풀이를 진행 유형
다이나믹 프로그래밍 기본 구조
큰 문제를 여러 개의 작은 문제로 나누고, 이미 계산한 결과를 저장하여 중복 연산 제거
점화식 설계
현재 상태의 정답을 이전 상태의 결과로 표현하고, 초기값과 상태 전이 조건 설정
메모이제이션
재귀 함수의 계산 결과를 저장한 뒤 같은 상태가 다시 호출되면 저장된 결과를 반환하는 하향식 풀이
보텀업 방식
가장 작은 문제부터 순서대로 계산하여 최종 문제의 답을 구하는 상향식 풀이
1차원 DP
하나의 상태값을 기준으로 최소 비용, 최대 점수, 경우의 수 등을 배열에 저장
2차원 DP
두 개의 상태 조건을 함께 관리하며 문자열 비교, 격자 이동, 배낭 문제 등의 정답 계산
피보나치·계단 오르기
이전 단계의 결과를 조합하여 현재 단계까지 도달하는 방법의 수 또는 최적값 계산
동전 교환
주어진 동전을 조합하여 목표 금액을 만드는 최소 동전 수 또는 전체 경우의 수 계산
배낭 문제
제한된 무게 안에서 물건을 선택하여 얻을 수 있는 가치의 최댓값 계산
최장 증가 부분 수열
수열의 순서를 유지하면서 값이 증가하는 가장 긴 부분 수열의 길이 탐색
최장 공통 부분 수열
두 문자열의 순서를 유지하며 공통으로 나타나는 가장 긴 부분 수열 계산
격자 경로 탐색
이전 위치에서 현재 위치로 이동하는 경우를 누적하여 목적지까지의 경로 수나 최소 비용 계산
구간 DP
연속된 구간을 여러 부분으로 나누고 구간의 길이를 늘려가며 최적의 결합 순서 계산
트리 DP
부모·자식 관계를 기준으로 각 노드의 선택 여부와 하위 트리의 결과를 결합
비트마스크 DP
집합의 선택 상태를 비트로 표현하여 방문한 항목과 남은 항목에 따른 최적값 계산
최적화 DP
모든 경우를 단순히 탐색하지 않고 이전 상태 중 최솟값이나 최댓값만 유지하여 시간과 메모리 사용량 개선