81. 침입탐지 시스템(IDS : Intrusion Detection Syetem)과 관련한 설명으로 틀린것
- 이상 탐지 기법(Anomaly Detection)은 Signature Base나 Knowledge Base라고도 불리며 이미 발견되고 정립된 공격 패턴을 입력해두었다가 탐지 및 차단
- HIDS(Host-Based Intrusion Detection)는 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적
- NIDS(Network-Based Intrusion Detection System)로는 대표적으로 Snort가 있다
- 외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크인 DMZ(Demilitarized Zone)에는 IDS가 설치될 수 있다
✅ 해설: 보기별 분석
✔️ 보기 ①: ❌ 틀린 설명
"이상 탐지 기법은 Signature Base나 Knowledge Base라고도 불리며..."
틀렸어! 이유는 다음과 같아:
- 이상 탐지(Anomaly Detection):
→ 시스템의 정상 행위 프로파일을 기준으로, 비정상적인 행동을 감지
→ 새로운 공격도 탐지 가능하지만 오탐율이 높음 - Signature-Based (서명 기반) = Misuse Detection (오용 탐지)
→ 이미 알려진 공격 패턴(시그니처) 을 DB에 저장하고 그걸 기반으로 탐지
→ Anomaly Detection과 반대 개념이야.
🛑 즉, Anomaly Detection은 Signature/Knowledge Base 방식이 아님
✔️ 보기 ②: ✅ 맞는 설명
HIDS는 사용자 계정별 접근 및 작업 기록 추적
- HIDS (Host-Based IDS):
- 개별 서버/PC에 설치되어 운영체제 내부의 이상 행위 탐지
- 예: 누가 어떤 파일을 읽었는지, 시스템 콜 이상 여부 등
- 로그 기반 탐지
✔️ 보기 ③: ✅ 맞는 설명
NIDS의 대표로 Snort가 있다
- NIDS (Network-Based IDS):
- 네트워크 트래픽을 모니터링하여 이상 탐지
- 스니핑 기반 탐지
- 오픈소스 IDS 중 대표적인 것이 Snort
✔️ 보기 ④: ✅ 맞는 설명
DMZ에 IDS 설치 가능 여부
- DMZ (비무장지대):
외부 서비스 서버 (웹, 메일 등)를 위치시키는 반격 구간
IDS를 이곳에 설치하면 공격 탐지에 유리
✅ 완전히 올바른 설명
📘 IDS란?
| IDS (Intrusion Detection System) | 시스템이나 네트워크 상의 이상 행위를 감지하는 시스템 |
| 목적 | 침입을 탐지하고 관리자에게 알림 (대응은 수동 or 외부 연계) |
🧠 IDS의 분류
| 탐지 방법 | Signature-based (서명기반) | 알려진 공격 패턴 기반 |
| Anomaly-based (이상기반) | 정상 행위와 다른 패턴을 탐지 | |
| 설치 위치 | HIDS | 호스트(서버, PC) 내부 감시 |
| NIDS | 네트워크 트래픽 감시 |
🔐 IDS 외 관련 시스템
| IPS (Intrusion Prevention System) | 탐지 + 차단까지 수행하는 능동형 보안장비 |
| Firewall | 트래픽 자체를 차단/허용 (접근 통제 중심) |
| SIEM | 보안 이벤트와 로그를 통합 수집하고 분석하는 시스템 |
✅ IDS vs IPS 차이점
| 목적 | 침입 탐지 | 침입 차단 |
| 동작 방식 | 네트워크/호스트에서 이상행위 감지 후 알림 | 이상행위 감지 → 자동 차단 |
| 반응 | 수동적 (관리자에게 알림) | 능동적 (패킷 차단, 세션 종료 등) |
| 위치 | 보통 네트워크 스니핑 모드로 설치 | **인라인(in-line)**으로 트래픽 경로에 설치 |
| 사용 목적 | 보안 모니터링/포렌식, 로그 분석 등 | 실시간 차단 및 공격 방어 |
| 예시 상황 | 의심스러운 접속을 탐지하고 경고 | DDoS 시도 감지 → 즉시 패킷 드롭 |
✅ 실제 보안 도구 예시
| Snort | IDS/NIDS | 대표적인 오픈소스 IDS, 실시간 트래픽 감시, 서명 기반 탐지 |
| Suricata | IDS/IPS/NIDS | Snort보다 더 빠르고, 멀티스레드 지원, IPS 기능 내장 |
| Bro (Zeek) | IDS | 트래픽의 행위 기반 분석, 고급 로그 분석/스크립팅 가능 |
| OSSEC | HIDS | 호스트 기반 IDS, 파일 무결성 검사, rootkit 탐지 등 |
| Security Onion | IDS/IPS 플랫폼 | Snort, Suricata, Zeek 등을 포함한 통합 보안 모니터링 배포판 |
✅ 요약 정리
| 반응 방식 | 감지만 하고 알림 | 감지 후 즉시 차단 |
| 설치 위치 | 스니핑(모니터) 모드 | 인라인(중간에 끼워넣기) |
| 대표 도구 | Snort, Suricata(모니터 모드), Zeek | Suricata, 일부 방화벽 장비, WAF 등 |
🔎 추천 예시
- 기업 환경: Suricata + Zeek 조합 → 탐지 + 세션 분석에 강함
- 학습/연습용: Snort, OSSEC → 단순하고 잘 문서화되어 있음
- 통합 솔루션: Security Onion → 다양한 도구를 한 번에 테스트 가능
82. 정보시스템과 관련한 다음 설명에 해당하는 것은
- 각 시스템 간에 공유 디스크를 중심으로 클러스터링으로 엮어 다수의 시스템을 동시에 연결할 수 있다
- 조직, 기업의 기간 업무 서버 안정성을 높이기 위해 사용될 수 있다
- 여러가지 방식으로 구현되며 2개의 서버를 연결하는 것으로 2개의 시스템이 각각 업무를 수행하도록 구현하는 방식이 널리 사용된다
- 고가용성 솔루션(HACMP)
- 점대점 연결 방식(Point-to-Point Mode)
- 스턱스넷(Stuxnet)
- 루팅(Rooting)
문제 핵심 요약
- 공유 디스크 중심의 클러스터링
- 여러 시스템을 연결
- 기간 업무 서버의 안정성 확보 목적
- 2대 서버가 각각 업무를 하다가 장애 시 자동 전환
👉 이 모든 키워드는 "고가용성(High Availability)" 시스템에서 사용하는 클러스터 방식이야.
따라서 고가용성 솔루션 (HACMP) 이 가장 정확한 답이야.
✅ 각 보기 해설
| 고가용성 솔루션 (HACMP) | IBM 등의 시스템에서 쓰이는 High Availability Cluster Multi-Processing. 서버를 이중화해서 무중단 서비스를 실현하는 대표적인 구조. | ✅ 정답 |
| 점대점 연결 방식 (Point-to-Point Mode) | 두 장비를 직접 1:1로 연결하는 방식. 클러스터와는 별개로 단순한 연결 구조에 사용. | ❌ |
| 스턱스넷 (Stuxnet) | 이란의 원자력 시설을 공격한 악성코드(웜). 보안 공격 사례로, 고가용성과는 관련 없음. | ❌ |
| 루팅 (Rooting) | 스마트폰에서 관리자 권한을 얻는 작업. 시스템 연결이나 고가용성과는 무관. | ❌ |
✅ 보충 설명: HACMP란?
| 전체 명칭 | High Availability Cluster Multi-Processing |
| 주요 목적 | 서버 장애 시 자동으로 다른 시스템이 업무를 인계 |
| 구조 | 공유 디스크 + 다중 서버 (보통 2대 이상) |
| 효과 | 무중단 서비스, 안정성 향상, 업무 연속성 보장 |
💡 예시:
- 은행의 계좌 시스템이 동작 중인데 서버 A가 다운됨
- 서버 B가 즉시 이를 감지하고 업무를 이어받아 고객은 끊김 없이 계속 이용 가능
→ 이게 HACMP!
✅ 고가용성이 뭐냐면?
**“서버가 고장나도 서비스가 끊기지 않게 만드는 방법”**이야.
예를 들어, 은행 앱이 갑자기 꺼지면 안 되잖아?
그래서 미리 다른 서버가 대기하고 있다가 문제가 생기면 바로 대신 작동해.
✅ 고가용성 구성 방식 3가지 (쉽고 간단하게!)
| Active-Standby | 한 대는 일하고, 한 대는 예비로 대기하고 있어요. 일하던 서버가 고장나면 대기 중이던 서버가 바로 대신 시작! |
| Active-Active | 두 대가 동시에 같이 일해요. 한 대가 고장나면 나머지 한 대가 혼자서 계속 일함. |
| N+1 구성 | 여러 대가 일하고 있고, 1대만 예비로 대기 중이에요. 어떤 서버가 고장나면 그 예비 서버가 대신해요. |
🏫 쉬운 예시: 피자 가게 알바생
| Active-Standby | 한 명이 주문 받고, 다른 한 명은 앉아서 대기 중. 주문 받던 애가 아프면 대기하던 애가 대신 일함 |
| Active-Active | 두 명이 같이 주문 받음. 한 명이 쓰러져도 다른 애가 혼자 계속 주문 받음 |
| N+1 | 5명이 일하고, 1명은 쉬면서 대기. 누가 쓰러지면 대기하던 애가 그 자리로 투입! |
✅ 왜 중요해?
- 은행, 병원, 게임 서버, 포털 사이트처럼 중요한 시스템은 절대 멈추면 안 되니까!
- “항상 살아있게(high availability)” 구성하는 게 바로 고가용성 방식이야
83. 기기를 키오스크에 갖다 대면 원하는 데이터를 바로 가져올 수 있는 기술로 10cm 이내 근접 거리에서 기가급 속도로 데이터 전송이 가능한 초고속 근접무선통신(NFC;Near Field Communication) 기술은?
- BcN(Breadband Convergence Network)
- Zing
- Marine Navi
- C-V2X(Cellular Vehicle To Everything)
Zing이란?
기기에 가까이 갖다 대기만 하면, 엄청 빠르게 데이터를 주고받는 무선 기술이야!
- 10cm 이내의 아주 가까운 거리에서
- 기가급 속도로 (즉, 진짜 빠르게) 데이터를 전송할 수 있어
- 예: 키오스크에 폰을 갖다 대자마자 쿠폰, 영상, 사진 같은 파일이 바로 받아지는 것
🎯 다른 보기들도 쉽게 설명해볼게!
| BcN | 인터넷, 방송, 전화 등을 하나로 합친 통신 인프라 이야기야 | ❌ |
| Zing | 폰을 가까이 대면 기가 속도로 전송! 요즘 키오스크나 이벤트 부스에서 쓰이는 기술 | ✅ 정답 |
| Marine Navi | 배에 들어가는 내비게이션 같은 시스템 (선박용) | ❌ |
| C-V2X | 차량과 차량/사물 간 통신을 말해. 자율주행차에서 사용돼 | ❌ |
✅ 요약
| 키오스크에 갖다 대자마자 빠르게 데이터 받는 기술은? | ✅ Zing |
| 어떨 때 쓰여? | 쿠폰 다운, 홍보 자료 받기, 무선 사진 전송 등 |
| 비슷한 기술? | NFC(근거리 무선통신), 블루투스보다 훨씬 빠름 |
더 궁금하면 NFC랑 비교도 쉽게 설명해줄 수 있어! 볼래? 😊
나의 말:
ChatGPT의 말:
정확히 짚었어! 🔍
Zing은 NFC와 비슷한 “근거리 무선통신” 기술이지만,
기술 수준이나 목적이 조금 다르기 때문에 비교하면 차이점이 확실히 보여.
✅ NFC vs Zing 비교표 (초간단)
| 통신 거리 | 약 10cm 이내 | 약 10cm 이내 (비슷) |
| 속도 | 느림 (kbps ~ Mbps 수준) | 아주 빠름 (기가급 Gbps 속도) |
| 연결 시간 | 매우 빠름 | 매우 빠름 |
| 주 용도 | 교통카드, 결제, 출입통제, 인증 | 대용량 데이터 전송 (사진, 영상, 앱 등) |
| 통신 방식 | 주로 13.56MHz RFID 기반 | 빛 기반+무선 복합 방식 등 다양한 기술 |
| 예시 | 삼성페이, 티머니 카드 | 행사 키오스크, 이벤트 파일 다운로드 등 |
✅ 쉽게 말하면…
- NFC:
→ “찍고 인증” 용도에 적합 (결제, 인증, 교통카드 등)
→ 속도는 느림, 소량 정보에 특화 - Zing:
→ “갖다 대면 바로 대용량 전송”
→ 사진, 동영상, 앱 설치 파일 같은 큰 데이터 전송에 유리
→ NFC보다 훨씬 빠르고 실용적인 업그레이드판 느낌
📱 비유로 이해하자면
| NFC | 편의점에서 바코드 찍는 거 (작고 빠르게 인증) |
| Zing | USB 꽂은 것처럼 사진·영상 바로 복사하는 느낌 |
✅ 결론
Zing은 NFC처럼 근거리 통신을 하지만, 더 빠르고 더 많은 데이터를 주고받을 수 있어서 역할이 다르다!
84. 세션 하이재킹을 탐지하는 방법으로 거리가 먼것은?
- FTP SYN SEGMENT 탐지
- 비동기화 상태 탐지
- ACK STORM 탐지
- 패킷의 유실 및 재전송 증가 탐지
먼저! 세션 하이재킹이란?
누군가가 네트워크에 몰래 끼어들어
다른 사람처럼 가장해서 통신 내용을 가로채거나 조작하는 공격이야.
예를 들어:
- 너가 게임 로그인 했는데,
- 해커가 너와 서버 사이에 끼어들어서,
- 너인 척 하면서 점수를 조작하거나 채팅을 보내는 거야 😨
✅ 세션 하이재킹이 일어나면 생기는 현상들
- 원래 통신하던 사람과 서버가 서로 엉뚱한 메시지를 주고받게 됨
- 서버나 사용자 입장에서 “이상한 통신”이 감지됨
✅ 탐지할 수 있는 대표적인 방법
| 비동기화 상태 탐지 | 원래 통신하던 쪽과 시퀀스 번호가 어긋나는 이상한 상태 감지 |
| ACK Storm 탐지 | 해커가 세션을 훔치면 양쪽에서 계속 ACK만 주고받는 폭풍처럼 보임 |
| 패킷 유실/재전송 증가 탐지 | 통신에 문제가 생기면 자꾸 재전송이 일어나는 게 눈에 띔 |
| ❌ FTP SYN SEGMENT 탐지 | 단순한 FTP 연결 요청 탐지로, 세션 하이재킹과 관련 없음 ← 정답! |
✅ 정답은?
FTP SYN SEGMENT 탐지
이건 그냥 FTP 연결 시작을 의미하는 것이지,
세션 하이재킹 탐지용 방법은 아니야.
✅ 정리
| 세션 하이재킹 | 해커가 다른 사람인 척 해서 통신을 가로채는 공격 |
| 탐지 방법 | 이상한 응답(ACK 폭풍), 번호 어긋남, 자꾸 재전송 |
| 정답 | ❌ FTP SYN은 그냥 연결 시작일 뿐, 해킹 감지와는 무관 |
85. 소프트웨어 생명 주기 모형 중 Spiral Model에 대한 설명으로 틀린것
- 비교적 대규모 시스템에 적합
- 개발 순서는 계획 및 정의,위험 분석, 공학적 개발,고객평가 순으로 진행된다
- 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다
- 계획,설계,개발,평가의 개발주기가 한번만 수행된다
나선형 모델(Spiral Model)이란?
위험을 줄이기 위해, 반복하면서 천천히 완성하는 개발 방식이야.
🎯 쉽게 말하면…
큰 프로젝트를 한 번에 다 만들지 않고,
계획 → 설계 → 개발 → 테스트를 계속 반복(나선처럼 돌면서) 하면서
문제가 생길 위험을 미리 찾고 해결하면서 점점 더 완성해 나가는 방법이야.
📦 나선형 모델의 4단계 (반복됨)
- 계획 세우기
- 위험 분석하기 (무슨 문제가 생길지 미리 생각함)
- 개발하기
- 고객이 직접 사용해 보고 평가
→ 그리고 다시 1번으로 돌아가서 또 반복!
✅ 장점
- 계속 테스트하고 평가해서 더 안정적인 소프트웨어를 만들 수 있어
- 특히 큰 프로젝트에서 유리해 (은행 시스템, 병원 시스템 같은 것)
❌ 보기에서 틀린 설명
“계획, 설계, 개발, 평가의 개발 주기가 한 번만 수행된다”
✅ 틀렸어!
→ 나선형 모델은 반복하는 모델이야. 한 번만 수행하는 게 아니야!
✅ 정답:
계획, 설계, 개발, 평가의 개발 주기가 한 번만 수행된다
🧠 다른 보기 설명
| 비교적 대규모 시스템에 적합 | ✅ 맞음 | 반복하면서 안정적으로 만들어서 대형 시스템에 적합함 |
| 개발 순서는 계획 → 위험 분석 → 개발 → 고객 평가 | ✅ 맞음 | 실제 나선형 순서 맞음 |
| 위험을 관리하고 줄이려는 목적 | ✅ 맞음 | 이게 나선형 모델의 핵심 목적임 |
| ❌ 주기가 한 번만 수행됨 | ❌ 틀림 | 여러 번 반복하면서 점점 발전시켜 나감 |
| 1. 폭포수 모델 (Waterfall Model) | 📏 한 단계 끝나야 다음으로 넘어감. 위에서 아래로 "뚝뚝 떨어지는" 느낌. (계획 → 설계 → 개발 → 테스트 → 배포) |
| 2. 프로토타입 모델 (Prototype Model) | ✏ 먼저 "시험용 모형" 만들어 보고, 고객이 피드백 준 다음 본격적으로 개발 |
| 3. 나선형 모델 (Spiral Model) | 🔄 위험 줄이려고 "계속 반복하면서" 개발함. 큰 프로젝트에 적합 |
| 4. 반복적 모델 (Iterative Model) | 🌀 여러 번 조금씩 기능을 추가하면서 만들어감. 반복하면서 완성도 높임 |
| 5. V 모델 (V-Model) | ✔ 폭포수랑 비슷한데, 테스트 단계가 각 개발 단계랑 1:1로 연결됨 (예: 설계하면 설계 테스트도 있음) |
| 6. 애자일 모델 (Agile Model) | 🏃 빠르게 만들고, 자주 테스트하고, 피드백 받고, 다시 만들고… 협업과 변화에 유연한 방식 (요즘 제일 인기!) |
✅ 나선형 모델 vs 반복적 모델: 차이점 정리
| 목적 | 🔥 위험(Risk)을 줄이는 것에 초점 | 🔁 기능을 나눠서 조금씩 완성해가는 데 초점 |
| 특징 | 매 단계마다 위험 분석을 꼭 함 | 각 반복마다 기능 추가 또는 개선에 집중 |
| 과정 흐름 | 계획 → 위험 분석 → 개발 → 고객 평가 → 반복 | 설계 → 구현 → 테스트 → 피드백 → 반복 |
| 사용 환경 | 대형 프로젝트, 예산 많고 리스크 큰 경우 | 웹/앱 같이 점진적으로 개발해야 하는 시스템 |
| 장점 | 실패 확률 줄이고, 위험 요소를 초반에 확인 | 빠르게 기능 추가 가능, 고객 요구 반영 쉬움 |
| 단점 | 관리가 복잡하고 시간이 오래 걸릴 수 있음 | 위험 요소나 구조 문제는 초기에 파악 어려움 |
✅ 비유
| 나선형 모델 | 🛠 “무너지지 않게 건물을 지으려면, 위험한 부분부터 미리 점검하면서 단계별로 짓자” |
| 반복적 모델 | 🧩 “먼저 뼈대만 만들고, 그다음에 창문, 그다음에 문… 하나씩 붙여서 점점 집을 완성하자” |
✅ 한 줄 요약
🔄 반복적 모델은 "기능 중심으로 조금씩 완성"
🔄 나선형 모델은 "위험 중심으로 반복하며 점검"
86. 다음이 설명하는 용어로 옳은 것은
- 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼이다
- 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성한다
- 다양한 소스를 통해 생성된 빅데이터를 효과적으로 저장하고 처리한다
- 하둡(Hadoop)
- 비컨(Beacon)
- 포스퀘어(Foursquare)
- 맴리스터(Memristor)
하둡(Hadoop)이란?
여러 대의 컴퓨터를 연결해서 엄청 큰 데이터를 효율적으로 저장하고 처리하는 기술
- 오픈 소스라서 공짜로 사용할 수 있고,
- 분산 저장(여러 컴퓨터에 나눠서 저장)과
- 분산 처리(여러 컴퓨터가 나눠서 계산)를 동시에 해!
📦 예시:
- 유튜브 영상 추천
- 검색어 자동완성
- 쇼핑몰 상품 추천
같이 데이터가 엄청 많은 시스템에서 하둡이 쓰여.
❌ 다른 보기 설명
| 비컨 (Beacon) | 블루투스 기반 근거리 통신 장치 | 빅데이터와 관련 없음 |
| 포스퀘어 (Foursquare) | 위치 기반 SNS 서비스 | 플랫폼이 아니고 앱 서비스 |
| 맴리스터 (Memristor) | 미래형 메모리 반도체 소자 | 저장장치 기술이지, 빅데이터 저장 기술이 아님 |
✅ 정리 한 줄 요약
**하둡(Hadoop)**은 많은 컴퓨터를 연결해서 큰 데이터를 처리하는 오픈소스 기술이야.
87. 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드 등 개인의 중요한 정보를 몰래 빼가는 해킹 공격은?
- Key Logger Attack
- Worm
- Rollback
- Zombie Worm
✅ 정답은:
Key Logger Attack (키로거 공격)
💡 개념 설명: 키로거(Key Logger)란?
컴퓨터에 몰래 설치돼서,
누가 키보드로 어떤 키를 눌렀는지 모두 기록하는 프로그램이야.
예를 들어:
- 너가 ID랑 비밀번호를 입력하면,
- 이 프로그램이 그걸 몰래 저장해서 해커에게 보내버리는 거야 😨
🎯 왜 위험해?
- 로그인 정보, 카드번호, 검색기록 같은 개인 정보가 쉽게 털릴 수 있음
- 아무것도 모르게 백그라운드에서 작동하기 때문에 사용자가 눈치채기 어려움
❌ 다른 보기들 설명
| Worm (웜) | 스스로 복사해서 다른 컴퓨터로 퍼지는 바이러스 | 입력 내용 몰래 보는 건 아님 |
| Rollback (롤백) | 원래 상태로 되돌리는 것 (예: 업데이트 취소 등) | 해킹 공격 아님 |
| Zombie Worm | 다른 해커 명령에 따라 움직이는 좀비 PC를 만드는 웜 | 키보드 감시는 아님 |
88. COCOMO 모델의 프로젝트 유형으로 거리가 먼것은?
- Organic
- Semi-detached
- Embedded
- Sequential
먼저 COCOMO 모델이 뭐야?
소프트웨어 개발에 얼마나 시간과 비용이 드는지 계산해주는 모델이야.
- 큰 프로젝트를 할 때,
→ “사람 몇 명 필요하지?”, “기간 얼마나 걸릴까?” 같은 걸 예측해주는 도구야.
✅ COCOMO 모델의 3가지 프로젝트 유형
| 1. Organic (조직형) | 단순하고 작은 프로젝트 팀도 경험 많고, 요구도 뻔함 |
학교 팀플 프로젝트 |
| 2. Semi-detached (반분리형) | 좀 더 복잡함 팀원 중 경험자+초보자 섞여 있음 |
학원에서 앱 만드는 조별과제 |
| 3. Embedded (내장형) | 아주 복잡하고, 하드웨어랑 밀접한 프로젝트 실수하면 큰일남 (제한사항 많음) |
자율주행차, 미사일 시스템 등 |
❌ 보기 중 틀린 건?
Sequential (순차적)
- 이건 COCOMO 유형이 아니라,
소프트웨어 개발 방식 중 하나인 폭포수 모델(Waterfall) 같은 걸 말할 때 쓰는 말이야.
✅ 정답:
Sequential
🎯 정리 요약
| Organic | ✅ | 단순하고 작은 프로젝트 |
| Semi-detached | ✅ | 중간 복잡도, 팀 구성 다양 |
| Embedded | ✅ | 매우 복잡하고 위험 높은 시스템 |
| ❌ Sequential | ❌ | 개발 방식 용어지, COCOMO 유형 아님 |
✅ 왜 쓸까?
| 시간, 비용 예측 | 고객한테 미리 "개발 6개월 걸립니다" 라고 말할 수 있음 |
| 인력 계획 | 몇 명이 필요할지도 계산 가능 |
| 프로젝트 관리 | 너무 오래 걸리거나 예산 초과 안 되게 조절 가능 |
✅ 요약 한 줄
COCOMO 모델은 소프트웨어를 만드는 데 드는 시간과 사람 수를 예측해주는 수학 공식이야.
코드 줄 수와 프로젝트 난이도가 핵심이야!
✅ 왜 COCOMO II가 나왔을까?
| 기존 COCOMO는 너무 옛날 방식 | 코드만 보고 계산했지만, 요즘은 툴, 프레임워크, 재사용이 많아졌음 |
| 개발 방법이 다양해졌음 | 폭포수, 애자일, 반복적 개발 등 다양한 방식 반영 필요 |
| 더 정확한 예측이 필요 | 사용자 요구도 자주 바뀌고, 작은 앱도 복잡해짐 |
✅ COCOMO II는 크게 3단계 모델로 나눠짐
| Application Composition Model | GUI 중심 앱 만들 때 사용 | 웹 앱, 모바일 앱 |
| Early Design Model | 설계 초기 단계에서 간단히 예측 | 프로젝트 기획 초반 |
| Post-Architecture Model | 설계 끝나고 구조 다 짠 뒤에 정밀 예측 | 본격 개발 시작 전에 |
✅ 새롭게 추가된 요소들
| 재사용성 | 이미 만든 코드나 오픈소스 사용할 수 있음 (시간 단축) |
| 툴의 영향 | 개발 툴이 좋아질수록 개발 속도도 빨라짐 |
| 팀 역량 | 개발자 팀이 실력 있으면 더 빨리 개발 가능 |
| 요구 변경에 대한 유연성 | 요구사항 자주 바뀌는 프로젝트도 고려함 |
🎯 요약 비교
| 기준 시기 | 1981년 | 1990년대 후반~현재 |
| 개발 방식 | 전통적 (폭포수 중심) | 현대적 (애자일, 반복, GUI 등) |
| 코드 재사용 반영 | ❌ 없음 | ✅ 있음 |
| 계산 방식 | 비교적 단순 | 훨씬 유연하고 복잡함 |
| 사용 상황 | 큰 조직 프로젝트 위주 | 다양한 크기의 앱/서비스 개발 가능 |
📦 1. 제품(Product) 관련 – 소프트웨어 자체의 복잡함
| Required Software Reliability (RELY) | 얼마나 안정적으로 작동해야 하냐 (은행처럼 오류 나면 큰일인 경우) |
| Database Size (DATA) | 다뤄야 할 데이터 크기가 얼마나 큰가 |
| Product Complexity (CPLX) | 기능이 복잡하고 정교한가 (예: 자율주행 시스템) |
🛠 2. 플랫폼(Platform) 관련 – 돌아가는 환경
| Execution Time Constraint (TIME) | 얼마나 빠르게 작동해야 하나? (게임처럼 실시간성 필요한가?) |
| Main Storage Constraint (STOR) | 메모리 사용에 제한이 있는가? |
| Platform Volatility (PVOL) | 운영체제나 환경이 자주 바뀌는가? (업데이트 잦은 환경) |
👨💻 3. 인력(Personnel) 관련 – 사람들의 능력과 경험
| Analyst Capability (ACAP) | 기획자/분석가의 실력 |
| Programmer Capability (PCAP) | 개발자의 코딩 실력 |
| Personnel Continuity (PCON) | 팀원이 중간에 자주 바뀌는가? |
| Application Experience (APEX) | 이 분야에서 개발해 본 경험이 있나? |
| Platform Experience (PLEX) | 사용하는 기술/운영체제에 대한 경험 |
| Language and Tool Experience (LTEX) | 사용하는 언어/도구에 대한 숙련도 |
🔧 4. 프로젝트(Project) 관련 – 관리 방식과 툴
| Use of Software Tools (TOOL) | 개발 도구를 얼마나 잘 쓰는가? (IDE, 자동화 툴 등) |
| Multisite Development (SITE) | 여러 지역에서 개발하는가? → 협업이 잘 되나? |
| Required Development Schedule (SCED) | 일정이 빡빡한가? 여유로운가? |
🔁 5. 재사용(Reuse) 관련
| Required Reusability (RUSE) | 이 소프트웨어를 나중에 재사용할 수 있도록 만들어야 하나? |
89. 다음은 정보의 접근통제 정책에 대한 설명이다 (ㄱ)에 들어갈 내용으로 옳은 것은?
| 정책 | (ㄱ) | DAC | RBAC |
| 권한부여 | 시스템 | 데이터소유자 | 중앙 관리자 |
| 접근결정 | 보안등급(Label) | 신분(Identity) | 역할(Role) |
| 정책변경 | 고정적(변경 어려움) | 변경용이 | 변경 용이 |
| 장점 | 안정적 중앙집권적 | 구현 용이 유연함 | 관리 용이 |
- NAC
- MAC
- SDAC
- AAC
비유 상황: 학교 시험지 보관실 📚
등장인물
- 시스템: 학교 보안 관리자
- 데이터 소유자: 선생님
- 중앙 관리자: 교장선생님
- 접근자: 학생, 선생님 등등
📌 1. MAC (Mandatory Access Control)
"시스템이 등급에 따라 딱 정해줌. 아무도 바꿀 수 없어."
📖 비유:
- 시험지 보관실에 등급표가 붙어 있어 (예: 1급 비밀, 2급 비밀)
- **시스템이 “이 학생은 2급까지만 열람 가능”**이라고 정해둠
- 선생님이 "봐도 돼" 해도 시스템이 "안 돼!" 하면 진짜로 못 봄 ❌
🛡 특징:
- 군대, 정부처럼 보안 엄청 중요한 곳에서 사용
- 사용자가 마음대로 권한을 못 바꿈
📌 2. DAC (Discretionary Access Control)
"파일 주인이 열람 권한을 줄 수 있어."
📖 비유:
- 시험지를 만든 선생님이 열쇠를 가지고 있음
- 선생님이 "이 학생은 믿을 수 있어~ 보여줘도 돼" 하면 접근 가능
- 선생님이 직접 권한을 조절함
🪶 특징:
- 유연하지만, 보안에 취약할 수 있음
- 개인이 파일 공유할 때 적합
📌 3. RBAC (Role-Based Access Control)
"누구냐가 아니라, 어떤 역할이냐를 봐!"
📖 비유:
- 교장선생님이 역할별로 열쇠를 나눠줌
- 선생님 역할: 시험지 볼 수 있음
- 조교 역할: 성적 처리 가능
- 학생 역할: 못 봄
- 사람은 바뀌어도 역할이 같으면 같은 권한을 가짐
👔 특징:
- 기업이나 조직에서 관리하기 편하고 효율적
- 직책 기반 통제
✅ 요약 표 (비유 정리)
| MAC | 시스템이 직접 통제, 보안 등급 기반 | 등급표 보고 시스템이 허락해야 열 수 있음 |
| DAC | 파일 소유자가 직접 권한 줌 | 선생님이 "봐도 돼" 해서 열 수 있음 |
| RBAC | 역할(직책)에 따라 권한 부여 | 교장이 역할별로 권한 미리 정해둠 |
✅ 한 줄 정리
📌 MAC은 시스템이 통제, DAC은 파일 주인, RBAC은 역할 중심 통제 방식이야!
보기 설명 왜 틀렸는지
| NAC (Network Access Control) | 네트워크 접속 허용/차단하는 시스템 | 접근정책(MAC, DAC, RBAC)와는 다른 개념 |
| SDAC | 정식 용어 아님 (DAC 확장형으로 착각될 수 있음) | ❌ 공식 정책 아님 |
| AAC | Adaptive Access Control (적응형 통제)로 쓰이기도 하지만, 표의 기준과 맞지 않음 | ❌ |
90. 정보 보안의 3요소에 해당하지 않는 것은
- 기밀성
- 무결성
- 가용성
- 휘발성
정보 보안의 3요소(3대 원칙)란?
정보를 안전하게 지키기 위해 항상 지켜야 할 3가지 기본 규칙이 있어.
이걸 보통 CIA 원칙이라고 불러! (기밀성 Confidentiality, 무결성 Integrity, 가용성 Availability)
✅ 1. 기밀성 (Confidentiality)
허락된 사람만 정보에 접근 가능해야 한다!
📦 예:
- 시험지는 선생님만 볼 수 있어야 함
- 친구가 내 카카오톡 메시지를 못 보게 잠금 설정하는 것도 기밀성 보호!
✅ 2. 무결성 (Integrity)
정보가 중간에 몰래 바뀌면 안 된다!
🛠 예:
- 성적표가 해킹돼서 80점이 30점으로 바뀌면 큰일!
- 정보를 원래대로 유지하는 것이 중요
✅ 3. 가용성 (Availability)
필요할 때 언제든 정보에 접근할 수 있어야 한다!
🔓 예:
- 병원에서 환자 기록이 저장돼 있지만,
정작 아플 때 서버가 꺼져서 의사가 못 보면 큰일! - 그래서 시스템이 잘 작동하도록 유지하는 것도 중요
❌ 그럼 **휘발성(Volatility)**은?
휘발성은 보안의 3요소가 아니라, 메모리 종류를 설명하는 용어야!
💡 예:
- **휘발성 메모리(RAM)**는 전원이 꺼지면 데이터가 날아감
- 정보 보안과는 직접적인 관련이 없음
✅ 정리표
| 기밀성 | 정보가 비밀스럽게 유지되어야 함 | ✅ 포함 |
| 무결성 | 정보가 정확하게 유지되어야 함 | ✅ 포함 |
| 가용성 | 정보가 필요할 때 바로 사용 가능 | ✅ 포함 |
| 휘발성 | 메모리가 전원 끄면 사라지는 성질 | ❌ X |
91. CBD(Component Based Development) SW 개발 표준 산출물 중 분석 단계에 해당하는 것은?
- 클래스 설계서
- 통합시험 결과서
- 프로그램 코드
- 사용자 요구사항 정의서
CBD(컴포넌트 기반 개발)란?
소프트웨어를 **부품(컴포넌트)**처럼 쪼개서 만들고,
필요한 기능을 재사용하거나 조립해서 완성하는 개발 방식이야.
레고처럼 필요할 때 조립하는 느낌!
📦 소프트웨어 개발 단계별로 어떤 문서가 나올까?
| ✅ 분석 단계 | 무엇을 만들지 파악 | ✔ 사용자 요구사항 정의서 |
| 설계 단계 | 어떻게 만들지 설계 | 클래스 설계서, DB 설계서 등 |
| 구현 단계 | 직접 코딩함 | 프로그램 코드 |
| 시험 단계 | 테스트해서 오류 찾음 | 통합시험 결과서, 테스트 시나리오 등 |
❌ 보기 해설
| 클래스 설계서 | 설계 단계 | 분석 후 “어떻게 만들까”를 정할 때 작성 |
| 통합시험 결과서 | 시험 단계 | 다 만들고 나서 전체 시스템을 테스트한 결과 |
| 프로그램 코드 | 구현 단계 | 실제로 코딩하는 단계 |
| ✅ 사용자 요구사항 정의서 | 분석 단계 | 사용자가 “무엇을 원하냐”를 정리하는 문서 |
92. 구글의 구글 브레인 팀이 제작하여 공개한 기계 학습(Machine Learning)을 위한 오픈 소스 소프트웨어 라이브러리는?
- 타조(Tajo)
- 원 세그(One Seg)
- 포스퀘어(Foursquare)
- 텐서플로(TensorFlow)
정답: TensorFlow (텐서플로)
💡 텐서플로란?
구글이 만든 인공지능(AI) 라이브러리로,
사람처럼 학습하는 프로그램(기계학습)을 만들 수 있게 해주는 도구야.
- 이미지 인식, 음성 인식, 챗봇, 번역기 등 다양한 AI에 사용됨
- 오픈소스라서 누구나 무료로 사용할 수 있어
- 프로그래밍 언어는 주로 Python(파이썬) 사용
🧠 예시:
- 텐서플로로 손글씨 숫자 인식 프로그램 만들 수 있어
- 사람 얼굴 표정을 보고 감정을 예측하는 AI도 만들 수 있음
❌ 다른 보기들은?
| 타조(Tajo) | 빅데이터 처리용 시스템 (Apache Hadoop 관련) | AI 라이브러리 아님 |
| 원 세그(One Seg) | 일본 디지털 TV 방송 기술 | 완전 다른 분야 |
| 포스퀘어(Foursquare) | 위치 기반 SNS 앱 (장소 체크인 등) | 소프트웨어 라이브러리 아님 |
93. Secure 코딩에서 입력 데이터의 보안 약점과 관련한 설명으로 틀린 것은
- SQL 삽입 : 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
- 크로스사이트 스크립트 : 검증되지 않은 외부 입력 값에 의해 브라우저에서 악의적인 코드가 실행
- 운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력 값이 적절한 사전검증을 거치지 않고 사용되어 공격자가 운영체제 명령어를 조작
- 자원 삽입: 사용자가 내부 입력 값을 통해 시스템 내에 사용이 불가능한 자원을 지속적으로 입력함으로써 시스템에 과부하 발생
✅ 보기별 개념 설명
| SQL 삽입 (SQL Injection) | 사용자가 입력한 값을 통해 SQL 쿼리를 조작해 데이터베이스를 공격 | ✅ 맞음 |
| 크로스사이트 스크립트 (XSS) | 입력값에 악성 스크립트가 들어 있어 웹 브라우저에서 실행됨 | ✅ 맞음 |
| 운영체제 명령어 삽입 (OS Command Injection) | 사용자 입력값이 운영체제 명령어에 직접 들어가서 악용됨 | ✅ 맞음 |
| ❌ 자원 삽입 | 틀린 설명. 자원을 “삽입”하는 개념이 아니라, 이것은 자원 고갈 공격 또는 DoS에 가까운 설명 | ❌ 틀림 |
✅ 왜 자원 삽입이 틀렸을까?
- "자원 삽입"이라는 용어는 입력값 보안 약점으로 분류되지 않음
- "시스템에 과부하를 발생시킨다" → 이건 DoS 공격이나 **자원 고갈(Resource Exhaustion)**에 해당
즉, 자원 삽입이라는 표현 자체도 공식적인 보안 용어로 부정확하고, 설명도 틀려 있어.
✅ 정리
| SQL 삽입 | 입력값으로 DB 쿼리를 조작 | ❌ 아님 |
| XSS | 입력값으로 스크립트를 실행 | ❌ 아님 |
| OS 명령어 삽입 | 입력값으로 명령어 조작 | ❌ 아님 |
| 자원 삽입 | ❌ 용어도 설명도 틀림 | ✅ 정답 |
OWASP Top 10은
“해커들이 가장 많이 노리는 취약점 10가지”라고 보면 돼!
✅ OWASP Top 10 (2021 기준, 간단 정리)
| 1. Broken Access Control | 🔓 접근하면 안 되는 곳에 몰래 접근하는 것 (예: 학생이 선생님용 화면 보기) | |
| 2. Cryptographic Failures | 🔐 암호화가 제대로 안 돼서 정보가 노출됨 (예: 비밀번호가 그냥 평문) | |
| 3. Injection (SQL 등) | 🧨 입력값에 해킹코드 넣어서 조작 (예: 로그인 우회) | |
| 4. Insecure Design | 🏗 처음부터 설계가 허술하게 만들어짐 (보안 생각 안 하고 만든 앱) | |
| 5. Security Misconfiguration | ⚙️ 설정 실수로 보안이 뚫림 (예: 관리자 페이지가 누구에게나 열려 있음) | |
| 6. Vulnerable Components | 🧩 옛날 버전 라이브러리 사용으로 공격당함 | |
| 7. Identification & Authentication Failures | 🙈 로그인·인증이 약함 (비밀번호가 1234 등) | |
| 8. Software and Data Integrity Failures | 💣 파일이 중간에 바뀌거나 조작됨 (검증 없이 자동 업데이트 등) | |
| 9. Security Logging & Monitoring Failures | 📉 해킹 흔적을 기록하지 않아서 문제를 늦게 알아챔 | |
| 10. Server-Side Request Forgery (SSRF) | 🖥 서버가 외부 요청을 대신 보내면서 공격에 당함 |
94. 두명의 개발자가 5개월에 걸쳐 10000라인의 코드를 개발하였을 때 , 월별(man-month)생산성 측정을 위한 계산 방식으로 가장 적합한 것은?
- 10000/2
- 10000/(5x2)
- 10000/5
- (2x10000)/5
95.소프트웨어 재공학의 주요 활동 중 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 것은?
- 역공학
- 분석
- 재구성
- 이식
문제 핵심 요약
"기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있게 바꾸는 것은?"
👉 이걸 우리는 이식(Porting) 이라고 해요.
🧠 중학생도 쉽게 이해할 수 있게!
📱 이식(Porting)이란?
원래 A에서만 돌아가던 프로그램을, B에서도 돌아가게 만드는 작업!
예시:
- 안드로이드에서만 되던 앱을 아이폰에서도 쓸 수 있게 바꾸는 것
- 윈도우에서 만든 게임을 리눅스나 맥에서도 되게 만드는 것
💡 즉, "환경을 옮기는" 느낌이라 **"이식"**이라고 해!
❌ 다른 보기들은?
| 역공학 (Reverse Engineering) | 완성된 프로그램을 뜯어서 어떻게 만들었는지 분석 | 환경을 바꾸는 게 아님 |
| 분석 (Analysis) | 현재 소프트웨어가 어떻게 작동하는지 이해하는 과정 | 이식과는 다름 |
| 재구성 (Restructuring) | 코드 구조를 더 깔끔하게 정리하는 것 (기능은 그대로) | 실행 환경 변경은 아님 |
96. 전자 칩과 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추는 방법으로 소프트웨어를 완성시키는 재사용 방법은?
- 합성 중심
- 생성 중심
- 분리 중심
- 구조 중심
문제 핵심
"전자 칩이나 소프트웨어 부품(=블록, 모듈)을 끼워 맞춰서 완성하는 개발 방식은?"
✅ 정답: 합성 중심 (Composition-based)
💡 합성 중심이란?
**이미 만들어진 부품(모듈)**들을 조립해서 하나의 큰 소프트웨어를 만드는 방법이야.
📦 쉽게 말해:
- 레고 블록 조립하듯이 필요한 기능들을 끼워 맞춰서 프로그램을 완성하는 거야!
- 새로운 코드를 일일이 다 짜지 않고, 재사용 가능한 부품을 가져다 씀
🧱 예:
- 로그인 기능 → 이미 있는 모듈 사용
- 결제 기능 → 외부 라이브러리 연결
- 채팅 기능 → 다른 팀이 만든 블록 가져다 씀
❌ 다른 보기들 설명
| 생성 중심 | 새로운 코드나 컴포넌트를 생성해서 개발 | 재사용보다 새로 만드는 데 초점 |
| 분리 중심 | 기능이나 데이터 등을 분리해서 관리 | 재사용보다는 구조화에 초점 |
| 구조 중심 | 프로그램을 구조적으로 설계해서 안정성 강조 | 조립식 방식과는 개념이 다름 |
97. 다음 내용이 설명하는 것은?
- 네트워크상에 광채널 스위치의 이점인 고속 전송과 장거리 연결 및 멀티 프로토콜 기능을 활용
- 각기 다른 운영체제를 가진 여러 기종들이 네트워크 상에서 동일 저장장치의 데이터를 공유하게 함으로써, 여러 개의 저장장치나 백업장비를 단일화 시킨 시스템
- SAN
- MBR
- NAC
- NIC
SAN이란?
📦 SAN (Storage Area Network)
여러 서버와 **고속 네트워크(광채널)**를 이용해 공유 저장장치에 접속하는 방식
📌 쉽게 말하면:
서버 여러 대가 하나의 저장소를 함께 쓰는 전용 고속 네트워크 시스템이야.
📂 예시:
- 은행 서버 10대가 공통으로 하나의 고급 하드디스크를 사용
- 속도도 빠르고, 백업도 통합돼서 관리가 쉬움
✅ 장점
| ✅ 고속 전송 | 광채널(Fibre Channel) 덕분에 속도가 매우 빠름 |
| ✅ 장거리 연결 | 멀리 떨어진 서버도 저장소 공유 가능 |
| ✅ 운영체제 무관 | 윈도우, 리눅스, 유닉스 모두 접근 가능 |
| ✅ 장비 통합 | 여러 개의 하드디스크, 백업 장비를 하나로 단일화 가능 |
❌ 다른 보기 설명
| MBR (Master Boot Record) | 하드디스크의 부팅 정보 저장 영역 | 저장 네트워크와 무관 |
| NAC (Network Access Control) | 네트워크 접근 제어 시스템 (보안 목적) | 저장장치와 무관 |
| NIC (Network Interface Card) | 컴퓨터에 네트워크 연결하는 카드 | 저장소 공유 시스템이 아님 |
98. 크래커가 침입하여 백도어를 만들어 놓거나, 설정 파일을 변경했을 때 분석하는 도구는
- trace
- tripwire
- udpdump
- cron
크래커(해커)가 시스템에 몰래 침입해서:
- 백도어를 만들어 놓거나
- 설정 파일을 몰래 바꿔놨을 때
그걸 분석하고 감시하는 도구는?
👉 바로 Tripwire야.
🔍 Tripwire란? (중학생 눈높이 설명)
시스템 안의 파일들이 몰래 바뀌었는지 감시하는 보안 도구야.
📦 예시:
- 해커가 몰래 들어와서 설정 파일을 수정하거나
- 백도어(숨겨진 비밀 출입구 프로그램)를 설치하면
- Tripwire가 “파일이 바뀌었어요!” 하고 경고해줘
✅ Tripwire의 주요 기능
| ✅ 무결성 검사 | 중요한 파일이 바뀌었는지 비교 |
| ✅ 로그 기록 | 어떤 파일이, 언제, 어떻게 바뀌었는지 기록 |
| ✅ 보안 탐지 | 백도어, 설정파일 변경 등 침입 흔적 발견 가능 |
❌ 다른 보기 해설
| trace | 시스템 호출이나 코드 흐름 추적 도구 | 침입 감지용 아님 |
| udpdump | 네트워크에서 UDP 패킷만 골라 보는 도구 | 파일 변경 감시와 무관 |
| cron | 리눅스에서 정기적으로 작업 예약 실행하는 도구 (예: 매일 3시에 백업) | 보안 감지 도구 아님 |
✅ 한 줄 요약
Tripwire는 시스템 안의 중요한 파일이 몰래 바뀌었는지 감시하는 도구로, 해킹 흔적을 찾아내는 데 사용돼!
99. 실무적으로 검증된 개발보안 방법론 중 하나로, SW보안의 모범 사례를 SDLC(Software Development Life Cycle)에 통합한 소프트웨어 개발 보안 생명주기 방법론은?
- CLASP
- CWE
- PIMS
- Seven Touchpoints
문제 핵심 요약
"소프트웨어 개발 보안 생명주기(SDLC)에 보안 모범 사례를 통합한 실무 중심의 방법론은?"
👉 정답은 바로 Seven Touchpoints예요!
✅ Seven Touchpoints란?
보안 전문가 Gary McGraw가 제안한,
보안을 소프트웨어 개발 생명주기(SDLC)에 통합하는 실무적 보안 방법론이야.
- 이름 그대로 7가지 중요한 보안 활동(Touchpoints)을 개발 과정에 녹여 넣자는 의미
- 즉, **보안은 개발 후가 아니라, 개발 도중부터 챙겨야 한다!**는 생각에서 시작돼
🔐 Seven Touchpoints의 주요 7단계 (간단 요약)
| 1. 코드 검토 (Code review) | 코드 속 보안 문제를 직접 검사 |
| 2. 아키텍처 리스크 분석 | 설계 구조의 보안 위험 분석 |
| 3. 침투 테스트 (Penetration testing) | 해커처럼 테스트해서 취약점 찾기 |
| 4. 악용 사례 정의 | 공격자가 어떻게 악용할 수 있을지 생각해 보기 |
| 5. 보안 요구사항 정의 | 초반부터 보안 기능 요구사항 정리 |
| 6. 보안 테스트 | 보안 항목 중심으로 기능 테스트 |
| 7. 보안 코딩 가이드 사용 | 안전한 코딩 규칙을 지키며 개발하기 |
❌ 다른 보기에 대한 설명
| CLASP | 보안 코딩 가이드 중심 방법론 (OWASP) | SDLC 통합보다는 개발 보안 기술 목록 중심 |
| CWE (Common Weakness Enumeration) | 전 세계 보안 취약점 목록 모음집 | 보안 지식 저장소이지 방법론은 아님 |
| PIMS (Privacy Information Management System) | 개인정보 보호 관리 체계 | 보안 관리체계이지, 개발 생명주기와 무관 |
100. 소프트웨어 프로세스에 대한 개선 및 능력 측정 기준에 대한 국제 표준은
- ISO 14001
- IEEE 802.5
- IEEE 488
- SPICE
문제 핵심 요약
"**소프트웨어 프로세스(개발 방법)**의 능력을 측정하고,
그걸 개선할 수 있게 도와주는 국제 표준은?"
👉 바로 SPICE가 정답이에요.
✅ SPICE란?
📘 정식 명칭:
Software Process Improvement and Capability dEtermination
👉 줄여서 SPICE (스파이스)라고 불러요.
👉 공식 번호는 ISO/IEC 15504
🧠 쉽게 말하면:
소프트웨어를 얼마나 잘 만들고 있는지,
그 과정을 숫자로 평가하고, 어떻게 더 잘할지 알려주는 기준이에요.
📦 예시:
- 회사 A는 개발 과정이 체계적이지 않음 → 1단계
- 회사 B는 개발이 반복 가능하고 문서도 잘 되어 있음 → 3단계
- SPICE는 이런 등급 평가와 개선 방향을 제시해줘요
✅ SPICE 등급 (1~5단계)
| 1단계 | 초기 수준 (즉흥적 개발) |
| 2단계 | 관리됨 (일정, 예산 등 관리 시작) |
| 3단계 | 정의됨 (개발 프로세스가 문서화됨) |
| 4단계 | 정량적 관리 (수치로 성능 측정함) |
| 5단계 | 최적화 (지속적으로 개선함) |
❌ 다른 보기 설명
| ISO 14001 | 환경경영시스템 국제 표준 (환경 보호 관련) | ❌ 소프트웨어 아님 |
| IEEE 802.5 | 토큰링(Token Ring) 네트워크 표준 | ❌ 통신 기술 |
| IEEE 488 | GPIB (측정장비 연결용 버스 표준) | ❌ 계측장비용 |
'TIL' 카테고리의 다른 글
| 데이터베이스 구축 - 2024 2회 (0) | 2025.05.08 |
|---|---|
| 소프트웨어 개발 - 2024 2회 (1) | 2025.05.08 |
| 프로그래밍 언어 활용 - 2024 1회 (0) | 2025.04.30 |
| 데이터베이스 구축 - 2024 1회 (1) | 2025.04.30 |
| 소프트웨어 설계 2024 1회 (0) | 2025.04.30 |