일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 소켓
- 시스템콜
- 자바
- HTML
- 알고리즘
- CSS
- 4기
- Vue.js
- pintos
- 오블완
- TiL
- 티스토리챌린지
- 큐
- Java
- Flutter
- 모션비트
- 코드트리
- 스택
- 크래프톤정글
- JavaScript
- 백준
- 크래프톤 정글
- userprog
- corou
- 리액트
- 사이드프로젝트
- 자바스크립트
- 나만무
- defee
- 핀토스
- Today
- Total
미새문지
24.10.18 day80 정보처리기사 오답 학습 본문
요 근래 cs에 대한 지식이 많이 부족한 것 같아 정처기도 공부할 겸 문제풀이를 진행했다.
오랜만에 풀어봐서 아슬아슬하게 커트라인이 나왔으나 좀만 공부하면 필기는 딸 수 있을 것 같다.
CMM 모델
능력 성숙도 모델(CMM, Capability Maturity Model)은 소프트웨어 개발 및 관리 프로세스를 평가하고 개선하기 위한 프레임워크이며, 조직의 프로세스 성숙도를 다섯 가지 단계로 나눌 수 있다.
- 초기 단계 (Initial): 프로세스가 비공식적이고 예측 불가능하며, 성공이 개인의 노력에 의존한다.
- 관리 단계 (Managed): 기본적인 프로젝트 관리 프로세스가 도입되어 있으며, 일정과 비용이 관리되지만, 여전히 프로세스는 불완전하다.
- 정정의 단계 (Defined): 모든 프로세스가 문서화되고 표준화되어 있으며, 조직 내에서 일관되게 적용된다. 이 단계부터 프로세스 개선이 체계적으로 이루어진다.
- 정량적 관리 단계 (Quantitatively Managed): 프로세스와 제품의 성과를 정량적으로 관리하며, 데이터 기반의 의사 결정이 이루어진다.
- 최적화 단계 (Optimizing): 지속적인 프로세스 개선이 이루어지며, 혁신과 변화에 대한 적극적인 대응이 가능하다.
CMM 모델은 소프트웨어 개발뿐만 아니라 다양한 분야에서 조직의 프로세스를 체계적으로 개선하는 데 유용하게 활용되기 때문에 중요하다.
CMM 문제의 경우 필기에선 단순히 어떤 단계가 없는지 찾는 문제였지만, 본인은 CMM에 대한 지식이 아예 없어 학습하게 되었다.
DAS (Direct Attached Storage)
DAS는 서버나 컴퓨터에 직접 연결되는 저장 장치이며, 일반적으로 하드 드라이브, SSD, 또는 RAID 어레이가 물리적으로 서버에 연결되는 형태를 의미한다.
DAS는 보통 USB, SATA, SAS, 또는 PCIe 등의 인터페이스로 서버에 직접 연결되며, DAS의 특징 중 하나는 데이터를 직접 서버에서 읽고 쓸 수 있기 때문에 속도가 빠르다. 그리고 직접 연결하는 저장 장치이기 때문에 보통 한 대의 서버나 컴퓨터에서만 접근이 가능하다.
그에 따라 설치가 간단하고 추가적인 네트워크 설정 없이 사용 가능하지만 확장성이 떨어진다.
주로 외장 하드디스크나 데이터베이스 서버에서 사용되는 저장 장치 등에 적용된다.
NAS (Network Attached Storage)
NAS는 네트워크를 통해 다수의 사용자 또는 장치가 접근할 수 있는 파일 기반 스토리지 시스템이며, NAS는 독립적인 장치로 네트워크에 연결되어 파일 서버처럼 작동한다.
NAS는 이더넷, Wi-Fi 등을 통해 네트워크에 연결되어 파일을 공유하기 때문에 여러 사용자가 동시에 접근할 수 있고, 주로 파일 공유, 백업 등으로 활용된다.
NAS의 특징 중 하나는 자체 운영 체제와 파일 시스템을 가지고 있어 사용자 관리, 권한 설정, 백업 기능 등을 제공해준다.
주로 회사의 파일 서버, 가정용 미디어 서버, 클라우드 스토리지 구축 등에 적용된다.
NAS의 경우 대충 알고 있었으나 문제가 DAS로 나와버렸고 본인은 DAS에 대해 잘 모르기 때문에 틀려버렸다. 그래서 틀린 겸 NAS도 다시 훑어봤다.
Worm
웜은 네트워크를 통해 스스로 전파되는 악성코드의 한 종류이며, 사용자 개입 없이도 스스로 복제되어 다른 컴퓨터나 네트워크 장치로 퍼져나가기 때문에 시스템에 큰 부하를 주고 네트워크 트래픽을 ㅔ증가시켜 성능을 저하시키거나 서비스 장애를 일으킬 수 있다.
worm의 특징은 자기 복제가 가능한데, 웜은 다른 파일에 붙지 않고 독립적으로 작동하며, 복제된 사본이 다른 시스템으로 전파된다.
전파 방식은 주로 이메일, 네트워크 취약점, 파일 공유 등을 통해 확산되며, 네트워크 속도 저하, 시스템 자원 과다 사용, 심각한 경우 네트워크 전체를 마비시킬 수 있기 때문에 주의해야 한다.
초기의 Morris Worm과 같은 웜은 인터넷의 상당 부분을 마비시킨 사례로 유명하며, 근래에는 네트워크 취약점을 노리는 랜섬웨어와 결합된 형태로 나타나기 때문에 위험하다.
Rogueware
로그웨어는 사용자를 속여 가짜 보안 소프트웨어나 유틸리티 프로그램을 설치하게 하는 악성코드의 일종이다.
주로 가짜 안티바이러스 프로그램이나 시스템 최적화 도구 형태로 위장하여, 컴퓨터에 문제가 있다고 경고하고 사용자가 해결책으로 해당 소프트웨어를 구매하거나 설치하게 만들기 때문에 보이스피싱처럼 많이 당하는 수법이다.
로그웨어는 시스템에 심각한 바이러스나 오류가 있다고 거짓 경고를 띄워 불안감을 조성한다. 그리고 해당 바이러스를 없애려면 결제하라고 띄우는데, 해당 프로그램을 이용했을 시 개인정보 탈취나 추가적인 악성 코드를 설치할 수 있어 위험하다.
로그웨어의 방식에는 프로그램 구매 유도를 하는 FakeAV와 성능 개선을 약속하고, 아무 기능이 없거나 악성코드를 설치하는 System Cleaner가 있다.
일반 사용자는 진짜와 가짜를 구별하기 어렵기 때문에 안전한 공식 소프트웨어만 설치하고, 출처가 불분명한 프로그램은 사용하지 않아야 한다. 또한 보안 소프트웨어를 최신 상태로 유지하고, 의심스러운 팝업이나 광고를 클릭하지 않도록 주의해야 하는데, 이러한 예방법은 로그웨어 뿐만 아니라 모든 바이러스나 악성코드의 예방에 해당한다.
바이러스는 옛날에는 많이 당했었는데 최근에는 윈도우의 보안도 잘 되어있어서 솔직히 이제 안랩이나 알약같은 백신프로그램도 잘 사용안하게 되는 것 같다. 다만 보안 업데이트 때문에 윈도우를 최신으로 유지해야 한다.
RIP(Routing Information Protocol)
립은 거리 벡터 라우팅 프로토콜 중 하나로, 네트워크 라우터들이 경로 정보를 교환하는 데 사용된다.
립은 네트워크 내에서 목적지까지의 최단 경로를 결정하기 위해 각 경로의 홉 수(hop count)를 기준으로 경로를 선택하는데, 홉 수란 한 네트워크 장치에서 다른 장치까지 이동하는 경로상의 라우터 수를 의미한다.
특징
- 거리 벡터 알고리즘: 각 라우터가 이웃 라우터로부터 받은 경로 정보를 바탕으로 최적의 경로를 계산하며, 이 과정에서 홉 수가 가장 적은 경로를 최적 경로로 선택한다.
- 최대 홉 수: 립은 15홉을 넘는 경로는 도달할 수 없는 것으로 간주한다. 즉, 16홉 이상의 네트워크는 립으로 연결할 수 없고, 이는 네트워크의 규모를 제한하는 요소가 된다.
- 라우팅 업데이트 주기: 각 라우터는 일정한 시간(30초)에 한 번씩 라우팅 정보를 브로드캐스트하여 네트워크의 상태를 갱신하며, 이 과정에서 변경된 경로 정보가 전파된다.
- 단순성과 안정성: 립은 설정과 운영이 간단하며 소규모 네트워크에 적합하지만, 대규모 네트워크에서는 홉 수 제한과 느린 수렴 속도 때문에 효율성이 떨어진다.
립의 버전은 2개로 나뉘는데, 클래스풀(Classful) 라우팅을 사용하며, 서브넷 마스크 정보를 포함하지 않는 버전1, 클래스리스(Classless) 라우팅을 지원하며, 서브넷 마스크와 같은 추가적인 정보를 전송하는 버전2가 있다.
립은 소규모 네트워크나 교육 환경에서 사용되며, 복잡한 라우팅 프로토콜이 필요 없는 상황에서 간단하게 설정할 수 있다는 장점이 있습니다. 하지만 OSPF나 EIGRP 같은 더 효율적인 라우팅 프로토콜들이 많이 사용되면서, 현대 네트워크에서는 RIP의 사용이 줄어들고 있다.
솔직히 립의 의미는 한 가지밖에 몰라서 라우팅의 립은 처음 들었다. 하지만 최근에는 쓰이지 않고 있기 때문에 외울 필요까진 없을 것 같고 이런게 있었다 라고 인지하면 될 것 같다.
COCOMO(Constructive Cost Model)
코코모 모델은 소프트웨어 개발 프로젝트의 비용과 일정을 예측하기 위해 사용되는 모델이며, 소프트웨어 프로젝트의 규모와 복잡성에 따라 개발 비용과 시간을 추정하는 데 도움을 주는 모델이다.
코코모 모델은 KLOC(천 라인 코드)를 기준으로 비용을 계산하며, 말 그대로 1KLOC는 천 줄의 코드를 의미한다.
모델 종류
- COCOMO 81: 기본 모델로, 단순한 비용 예측에 사용된다.
- COCOMO II: 현대적인 개발 환경을 반영한 버전으로, 애플리케이션 구성 및 초기 설계 단계에서의 예측을 포함한다.
그리고 코코모 모델은 프로젝트의 특성을 고려한 여러 비용 드라이버(예: 소프트웨어 복잡성, 팀 경험)를 사용하여 조정할 수 있다.
과거 데이터를 기반으로 하여 예측이 가능할 수 있고 다양한 프로젝트 환경에 맞춰 조정 가능하기 때문에 효율적이지만, 실제 프로과거 데이터에 의존하기 때문에, 실제 프로젝트와 차이가 있을 수 있고, 초기 설정과 계산이 복잡할 수 있어 상황에 맞게 사용해야 한다.
최근에는 애자일이나 데브옵스같은 방식을 자주 사용하지만, 비용 산정 면에서는 아직도 코코모 모델을 사용한다고 한다.
코코모 모델은 예전에 봤었을 때도 틀리던 문제여서 확실하게 짚고 넘어갔다.
단순히 모델이라고 했을 땐 소프트웨어 생명주기 모델인 줄 알고 분명 찾아봤을 땐 없었는데 왜 있지 생각했으나 코코모 모델은 개발 방법론과 달리 프로젝트의 비용과 일정을 추정하는데 사용하는 비용 추정 모델이라고 한다. 그래서 특정 방법론을 사용하며 비용 추정을 위해 코코모 모델도 함께 사용할 수 있다고 한다.
'개발 TIL' 카테고리의 다른 글
24.10.23 day82 chart.js (3) | 2024.10.23 |
---|---|
24.10.19 day81 SSL (0) | 2024.10.20 |
24.10.15 day79 소프트웨어 생명주기 (1) | 2024.10.16 |
24.10.11 day78 모듈 번들러 (1) | 2024.10.11 |
24.10.10 day77 Next.js 폴더 구조, 프론트엔드 시점의 SaaS (3) | 2024.10.10 |