본문 바로가기

프로그래밍/CS67

COCOMO 소프트웨어 개발 유형 COCOMO 모형 - 비용산정 모형 중 하나 - 보헴이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식 - 노력, 인월(Man-Month) = 개발 기간 * 투입 인원 = LOC/1인당 월평균 생산 코드라인수 - 규모에 따른 분류 조직형(Organic mode) - 기관 내부에서 개발된 중,소규모의 소프트웨어로 일괄 자료 처리나 과학 기술계산용, 비즈니스 자료 처리 개발에 적용 - 5만 라인 이하의 소프트웨어를 개발하는 유형 반 분리형(Semi-Detached mode) - 단순형과 임베디드형의 중간형 - 트랜잭션 처리 시스템이나, 데이터베이스 관리 시스템, 컴파일러, 인터프리터와 같은 유틸 개발에 적용 - 30만 라인 이하의 소프트웨어를 개발하는 유형 임베디드형(Embedded mode) -.. 2023. 8. 3.
[강의] 2020년 개정된 내용 반영한 정보처리기사 OneStop 패키지 강의, 필기부터 실기까지 강의 하나로 완벽 마스터 섹션 2 1. 데이터 입출력 구현 1. 트리의 순회 방법 - 중위: 왼쪽 서브트리-> 중간노드 -> 오른쪽 서브트리 - 전위: 중간 노드 -> 왼쪽 서브트리 -> 오른쪽 서브트리 - 후위: 왼쪽 서브트리 -> 오른쪽 서브트리 -> 중간 노드 2. 통합 구현 1. 단위 모듈 테스트 - 화이트박스 테스트 - 블랙박스 테스트 2. 테스트 케이스 - 식별자, 텍스트 항목, 입력 명세, 출력명세, 환경설정, 특수절차요구, 의존성기술 3. 테스트 프로세스 - 계획 및 제어단계, 분석 및 설계단계, 구현 및 실현단계, 평가단계, 완료단계 4. 빌드도구 - ant, maven, gradle 3. 제품 소프트웨어 패키징 1. 디지털 저작권 관리의 기술요소 - 암호화 - 키 관리 - 암호화 파일 생성 - 식별 기술 - 저작권 표현.. 2023. 7. 21.
[강의] 2020년 개정된 내용 반영한 정보처리기사 OneStop 패키지 강의, 필기부터 실기까지 강의 하나로 완벽 마스터 섹션 1 1. 실기시험 시험안내 2. 요구사항 확인 1-1. 폭포수형 모형 - 순차적으로 한단계씩 진행 - 전 단계가 수행되어 완료되기 전에는 다음 단계 진행할 수 없음 - 계획-> 요구분석-> 설계-> 구현-> 테스트-> 유지보수 1-2. 프로토타입 모형 - 모형을 간단히 만들어 사용자에게 보여 주고 사용자가 직접 사용해보게 함으로서 재구축, 반복하여 시스템 개선 - 요구분석->프로토타입 설계->프로토타입 개발->고객평가 1-3. 나선형 모형 - 고객과 소통하여 소프트웨어 개발하는 방식, 위험 요소를 분석하고 해결할 수 있도록 지원 - 계획수립->위험분석->개발->고객평가 - 대규모 시스템에 적합 1-4. 애자일 - 고객과의 소통에 초점 - 문서(x), 계획(x), 계약(x), 실험(o), 협업(o), 변화대응.. 2023. 7. 20.
[CS] 그림으로 이해하는 Algorithm 그래프 그래프 종류 인접 행렬 구현 인접 리스트 구현 그래프 탐색 정리 최단경로 알고리즘 이진탐색 에라토스테네스의 체 재귀와 반복의 차이 ref(우리 팀원들 ㅎㅎ) https://pinopino.tistory.com/entry/%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B7%B8%EB%9E%98%ED%94%84-%ED%83%90%EC%83%89 https://velog.io/@49crehbgr/CS-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B8%B0%ED%83%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 2023. 5. 30.
[CS] 프로그래머의 기본기라는 해시테이블(HashTable) 표로 정리 시간복잡도 장점 단점 탐색: O(1) - 인덱스의 값으로 탐색 삽입: O(1) - 인덱스가 정해짐 삭제: O(1) - 인덱스 안에 값만 삭제하기 1. 데이터 효율적 관리 2. 인덱스 사용해서 시간복잡도 빠름 3. 키와 해시값이 연관성이 낮아 높은 보안 4. 중복 제거 유용 1. 해시 충돌 발생 가능성- 최악 시간복잡도 O(N) 2. 공간복잡도가 커짐 3. 높은 해시 함수 의존도 실사용 예시 노래방 책 당신은 노래방이다 책만 있다면 번호를 찾기 위해서 노래방 책에서 하나하나 목차를 넘겨가며 찾아야 한다 하지만, 원하는 노래가 있다면 검색을 통해서 빠르게 찾는 방법이 더 효율적이라는 것을 직관적으로 알 수 있다 피자 메뉴 당신은 레스토랑에 피자를 먹으려고 들어왔다 만약 피자의 가격이 얼마인지 알려.. 2023. 5. 24.
[CS] 그림으로 이해하는 Data Structure 트리 트리 - 이진탐색트리 - 3가지 순회 방법 트리 - 자가 균형 이진 탐색트리 - AVL Tree 트리 - 자가 균형 이진 탐색트리 - Red-Black Tree 트리 - 트라이(Trie) 트리 - 힙 트리 - B-Tree 트리 - B+Tree 파이썬 - 컴파일 언어이며 인터프리터 언어 파이썬 - 메모리 구조 파이썬의 특징 배열(Array) - 인덱스 배열 - 삽입 배열 - 삭제 연결리스트(LinkedList) - 탐색 연결리스트(LinkedList) - 삽입 연결리스트(LinkedList) - 삭제 circular LinkedList ref(우리 팀원들 ㅎㅎ) https://velog.io/@49crehbgr/CS-DataStructure-Array-vs-LinkedList https://sho.. 2023. 5. 23.
[CS] 스택(stack) vs 큐(queue) vs 우선순위 큐 (Priority Queue) 표와 이미지로 정리 순서 operation visualized insert, remove 시간복잡도 장점 단점 스택 LIFO push, pop vertical same end 삽입, 삭제 :O(1) / 검색:O(n) 구현 간단, 속도 빠름 중간 원소 접근 어려음 큐 FIFO enqueue, dequeue horizontal different end 상동 데이터 접근 용이 구현 복잡, 메모리 관리 어려움 스택, 큐의 시간복잡도 설명 삭제나 삽입시 맨 위에 데이터를 삽입하거나 삭제하기 때문에 시간복잡도는 늘 O(1) 의 시간복잡도 하지만 특정 데이터를 찾을 때는 특정 데이터를 찾을 때까지 수행을 해야하므로 O(n) 의 시간 복잡도 스택 스택이란 '쌓아 올린다', '무더기', '쌓아서 채워놓다'는 것을 의미한.. 2023. 5. 22.
럼바우(Rumbaugh) 분석기법 정의 - 객체 모델링, 그래픽 표기법 - 정보 모델링이라고도 불림 - 분석기법: 객체, 동적, 기능 분석 순서 - 객체 -> 동적 -> 기능 (객등기) 분석기법 정리 - 객체 모델링(object modeling): 객체 다이어그램으로 표시 - 동적 모델링(dynamic modeling): 상태도를 이용하여 시간의 흐름에 따른 객체들 간의 동적인 행위 표현 - 기능 모델링(functional modeling): 자료 흐름도(DFD)를 이용, 프로세스 간 자료 흐름 처리를 표현한 모델링 - 기능모델링 설계순서 입출력 결정 자료 흐름도 작성(기능 의존 관계를 서술) 기능의 내용을 상세히 기술 제약사항을 결정하고 최소화 2023. 5. 19.
결합도(Coupling)과 응집도(Cohension) 결합도와 응집도 한 줄 요약: 좋은 소프트웨어일수록 결합도는 낮고, 응집도는 높다 = 의존적인 것보다 독립적인 것이 좋다 결합도: 한 모듈이 다른 모듈에 의존하는 정도 응집도: 한 모듈 내부의 처리 요소들이 서로 관련되어 있는 정도 예시: - 프로젝트에서 스파게티 코드를 만든 경우, 의존도가 높으므로 결합도가 높은 것 - 하나의 모듈을 만들었는데 독립적 기능을 수행하며 타 코드와 큰 연관성이 없으면 응집도가 높음 응집도의 종류 우연적 응집도 < 논리적 응집도 < 시간적 응집도 < 절차적 응집도 < 교환적 응집도 < 순차적 응집도 < 기능적 응집도 (우논시절교순기) 우연적: 모듈 내부 연관 없을 경우 논리적: 유사한 성격, 특정 형태 분류 요소들이 한 모듈로 처리 시간적: 특정 시간 처리 활동 한 모듈 처.. 2023. 5. 18.