메타코드 정처기 필기 2강
2강 - 소프트웨어 개발
◼️ 데이터 입출력 구현
▪️ 자료 구조 (Data Structure)
- 데이터를 효율적으로 저장, 관리하기 위한 체계적인 바업론
- 특정 작업에서 최적의 성능을 보장하기 위해 고안됨
- 선형 구조 : 리스트, 스택, 큐, 데크
- 비선형 구조 : 트리, 그래프
▪️탐색 방식에 따른 운행 결과
- 깊이 우선 탐색(DFS) : 최대한 깊이 내려간 후 옆으로 이동해 다른 경로 탐색
- A-B-D-E-G-F-C
- 너비 우선 탐색(BFS) : 계속 옆으로 이동하며 더 이상 탐색할 수 없을 때 아래로 이동
- A-B-C-D-E-F-G
◼️ 통합 구현
▪️모듈
- 소프트웨어 구조를 이루며 다른 것들과 구별될 수 있는 독립적인 기능을 갖는 단위
- 하나 또는 몇 개의 논리적인 기능을 수행하기 위한 명령어들의 집합
- 서로 모여 하나의 완전한 프로그램으로 만들어질 수 있음
▪️ 소프트웨어 형상 관리
- 소프트웨어에서 일어나는 수정이나 버전 변경을 알아내고 관리하는 일련의 활동
- 소프트웨어 개발의 전체 비용을 줄이고 개발 과정의 여러 방해 요인을 최소화
- 체크인(Checkin) : 새로운 버전의 파일을 저장소에 올려 갱신하는 것
- 체크아웃(Checkout) : 특정 버전의 파일을 저장소에서 작업 공간으로 가져오는 것
- 커밋(Commit) : 코드 변경사항을 저장소에 기록하고 버전 이력을 업데이트 하는 것
▪️ 형상 관리 절차
- 형상 식별 -> 형상 통제 -> 형상 감사 -> 형상 기록
◼️제품 소프트웨어 패키징
▪️소프트웨어 패키징
- 개발 완료된 소프트웨어를 배포 가능한 단위로 묶어 사용자가 쉽게 설치, 실행할 수 있도록 하는 과정
- 패키징은 사용자중신으로 진행
- 신규 및 변경 개발 소스를 식별하고 이를 모듈화하여 상용 제품으로 패키징
- 패키징 시 사용자에게 배포되는 sw이므로 보안 고려 필요
- 사용자 편의성을 위해 복잡성 및 비효율성 문제 고려 필요
- 다양한 이기종 연동 고려 필요
▪️DRM (Digital Rights Management)
- 디지털 콘텐츠의 불법 복제와 무단 사용을 방지하는 기술
- 크랙 방지, 정책 관리, 암호화, 키 관리, 식별 기술, 저작권 표현, 암호화 파일 생성, 인증 등의 기술 요소가 있음
▪️제품 소프트웨어의 매뉴얼
- 사용자가 소프트웨어를 설치하고 사용하는데 필요한 정보를 제공하는 문서
- 예시로는 설치 매뉴얼, 사용자 매뉴얼이 있음
- 개발자가 아닌 사용자 관점에서 작성되어야 함
- 명세서 -> 작성 지침 정의 -> 설명서 구성요소 정의 -> 구성요소 별 내용 작성 -> 사용 설명서 검토 -> 사용자 매뉴얼 순서대로 작성
▪️소프트웨어 공학
- 소프트웨어 개발, 운용, 유지보수 및 파기에 대한 체계적인 접근 방법
- 소프트웨어 품질을 향상시키고 소프트웨어 생산성과 작업 만족도를 올리는 것이 목적
- 현대 프로그래밍 기술을 계속적으로 적용
- 품질 유지를 위한 지속적인 검증 시행
- 사용자 수준에 맞는 인터페이스를 제공해야 함
▪️ 소프트웨어 버전 관리 도구
- 소프트웨어 개발 과정에서 코드의 변경 사항을 관리하고 버전을 효과적으로 관리할 수 있게 해주는도구
- 형상 관리를 통해 이전 버전에 대한 정보에 접근 가능해 배포본 관리에 유용함
- 불필요한 사용자의 소스 수정을 제한할 수 있음
- 동일한 프로젝트에 대해 여러 개발자가 동시에 개발 가능함
- 클라이언트-서버 방식(CVS, SVN), 공유 폴더 방식(RCS, Cropbox), 분산 저장소 방식(Git)
◼️애플리케이션 테스트 관리
▪️소프트웨어 테스트
- 소프트웨어가 예상대로 작동하는지 확인하기 위해 오류를 찾아내고 품질을 보장하는 과정
▪️테스트 케이스
- 소프트웨어의 특정 기능이나 동자을 검증하기 위해 입력값, 실행 조건, 예상 결과를 명시한 일련의집합
▪️ 테스트 레벨
- 소프트웨어 개발 과정에서 발생하는 다양한 단계에 소프트웨어 테스트를 구분하는 개념
- 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트 순서
▪️통합 테스트
- 개별 모듈이 결합되어 상호작용할 때 시스템이 올바르게 동작하는지 확인하는 테스트
- 상향식 테스트와 하향식 테스트와 연관
▪️ 상향식(Bottom-Up) 테스트
- 하위 모듈에서 상위 모듈로 테스트를 진행
- Test driver는 아직 개발되지 않은 상위 모듈을 대신해 하위 모듈을 호출하는 역할
▪️하향식(Top-Down) 테스트
- 상위 모듈부터 하위 모듈로 테스트를 진행
- Stub은 아직 개발되지 않은 하위 모듈을 대신해 임시로 사용되는 모듈
▪️ 화이트 박스 테스트
- 소스 코드의 모든 문장을 한번 이상 수행, 모듈 안의 작동을 직접 관찰할 수 있음
- 산출물의 각 기능 별로 적절한 프로그램 코드를 수행함으로써 논리적 경로를 점검함
- 데이터 흐름 검사, 루프 검사
▪️ 블랙 박스 테스트
- 프로그램 구조와 코드를 고려하지 않고 경계값 분석, 오류 예측, 동등 분할 기법, 원인 결과 그래프 등 수행
▪️알고리즘
- 특정 문제를 해결하기 위해 설계된 일련의 절차들의 집합
- Search, Sort, Divide and conquer, Greedy, Dynamic programming, Backtracing
▪️알고리즘 시간 복잡도
- Big O 표기법 : 최악의 경우를 기준으로 알고리즘의 성능을 나타내는 표기법
- O(1) : 상수 시간 복잡도, 입력 크기와 상관없이 항상 일정한 시간 소요 (해시 함수)
- O(logn) : 로그 시간 복잡도, 입력 크기에 따라 실행 시간이 log n만큼 커짐 (이진 탐색)
- O(n) : 선형 시간 복잡도, 입력 크기에 따라 실행 시간이 비례함 (순차 탐색)
- O(nlogn) : 선형 로그형 시간 복잡도, 입력 크기에 따라 실행 시간이 nlog n만큼 커짐 (합병 정렬, 힙 정렬, 퀵 정렬)
- O(n^2) : 제곱형 시간 복잡도, 입력 크기의 제곱에 비례해 실행 시간이 증가 (삽입 정렬, 선택 정렬, 버블 정렬)
◼️인터페이스 구현
▪️인터페이스
- 서로 다른 시스템을 연결하거나 통신하게 해주는 매개체
▪️ EAI (Enterprise Application Intergration)
- 인터페이스를 하용하여 기업 내 다양한 애플리케이션 간의 데이터 및 프로세스를 통합하는 방식
- Point-to-Point : 각 애플리케이션 간 직접 연결을 통해 통합하는 방식
- Hub and Spoke : 중앙 허브가 모든 애플리케이션과 연결되어 데이터 전송을 관리하는 방식
- Message bus : 애플리케이션 사이에 미들웨어(버스)를 두어 애플리케이션 간 데이터 교환
- Hybrid : Hub and Spoke와 Message bus의 혼합 방식
메타코드에서 정보처리기사 필기 강의 장학생으로 선발되어 앞으로 5주간 메타코드에서 정처기 필기 강의를 듣고 포스팅을 하게 되었다.
현재 메타코드에서는 정보처리기사 필기 환급 챌린지를 진행 중이며 합격 인증 시 100% 환급(제세공과금 22%, 교재비 3만원 제외)을 해 준다.
진도율을 100% 달성하고 시험 합격 후 합격 인증, 후기 작성 시 수강료를 100% 환불 (제세공과금 22%, 교재비 3만원 제외)을 해주기 때문에 수강료 부담없이 정처기 자격증을 따고 싶은 사람에게 좋은 강의이다.
https://metacodes.co.kr/edu/read2.nx?M2_IDX=31635&EP_IDX=15203&EM_IDX=15027