-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create 2024-10-13-정보처리기사-실기예상문제-1.md
- Loading branch information
Showing
1 changed file
with
173 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
### 1. **소프트웨어 개발 방법론** | ||
|
||
**문제 1** | ||
소프트웨어 생명주기 모형(SDLC) 중 폭포수 모형(Waterfall Model)의 주요 단계를 순서대로 나열하고, 각 단계의 특징을 설명하시오. | ||
|
||
**해설** | ||
폭포수 모형은 각 단계가 순차적으로 진행되는 소프트웨어 개발 방법론입니다. 각 단계는 다음과 같습니다: | ||
1. **요구사항 분석**: 사용자 요구를 분석하고 명세서를 작성하는 단계. | ||
2. **설계**: 요구사항을 기반으로 시스템과 소프트웨어를 설계하는 단계. | ||
3. **구현**: 설계된 시스템을 코드로 구현하는 단계. | ||
4. **테스트**: 구현된 시스템을 테스트하여 결함을 발견하고 수정하는 단계. | ||
5. **유지보수**: 시스템 운영 중에 발생하는 문제를 해결하는 단계. | ||
|
||
--- | ||
|
||
**문제 2** | ||
애자일(Agile) 개발 방법론의 특징을 설명하고, 폭포수 모형과의 차이점을 설명하시오. | ||
|
||
**해설** | ||
애자일 방법론은 유연성과 신속성을 중시하는 개발 방법론입니다. | ||
- **특징**: 짧은 개발 주기(스프린트)를 반복하며, 요구사항 변화에 유연하게 대응. 고객과의 협력을 중시하며, 자주 반복되는 테스트와 피드백을 반영. | ||
- **폭포수 모형과의 차이점**: 폭포수 모형은 순차적인 단계적 진행을 하지만, 애자일은 반복적인 주기와 변경에 대응할 수 있는 유연한 방식입니다. | ||
|
||
--- | ||
|
||
**문제 3** | ||
XP(익스트림 프로그래밍)에서 **페어 프로그래밍(Pair Programming)**과 **테스트 주도 개발(TDD)**을 설명하시오. | ||
|
||
**해설** | ||
- **페어 프로그래밍**: 두 명의 개발자가 하나의 컴퓨터를 공유하여 함께 코딩하는 방식. 한 명은 코딩하고, 다른 한 명은 코드를 검토하여 오류를 줄이고 생산성을 높입니다. | ||
- **테스트 주도 개발(TDD)**: 테스트 케이스를 먼저 작성한 후, 이를 통과하기 위한 코드를 개발하는 방식입니다. 이는 결함을 줄이고, 코드 품질을 높이는 데 도움을 줍니다. | ||
|
||
--- | ||
|
||
### 2. **데이터베이스와 SQL** | ||
|
||
**문제 4** | ||
데이터베이스에서 **정규화(Normalization)**의 목적을 설명하고, **제1정규형(1NF)**, **제2정규형(2NF)**, **제3정규형(3NF)**을 설명하시오. | ||
|
||
**해설** | ||
**정규화**는 중복 데이터를 제거하고 데이터 무결성을 유지하는 데 목적이 있습니다. | ||
- **제1정규형(1NF)**: 모든 속성의 값이 원자값(Atomic Value)으로 구성된 릴레이션. | ||
- **제2정규형(2NF)**: 제1정규형을 만족하고, 부분 함수 종속을 제거한 릴레이션. | ||
- **제3정규형(3NF)**: 제2정규형을 만족하고, 이행적 함수 종속을 제거한 릴레이션. | ||
|
||
--- | ||
|
||
**문제 5** | ||
다음 SQL 쿼리의 결과는 무엇인가? | ||
```sql | ||
SELECT employee_name, department | ||
FROM employees | ||
WHERE salary > 5000 | ||
ORDER BY department ASC; | ||
``` | ||
|
||
**해설** | ||
이 쿼리는 `employees` 테이블에서 **급여(salary)**가 5000보다 큰 직원들의 **이름(employee_name)**과 **부서(department)**를 조회한 후, 부서명 기준으로 오름차순 정렬하여 출력합니다. | ||
|
||
--- | ||
|
||
**문제 6** | ||
SQL의 트랜잭션(transaction)에서 **ACID** 속성을 설명하시오. | ||
|
||
**해설** | ||
ACID 속성은 트랜잭션의 신뢰성과 일관성을 보장하는 데 필요한 네 가지 속성입니다. | ||
- **Atomicity(원자성)**: 트랜잭션이 모두 반영되거나, 전혀 반영되지 않아야 한다는 성질. | ||
- **Consistency(일관성)**: 트랜잭션 전후 데이터의 일관성이 유지되어야 한다는 성질. | ||
- **Isolation(고립성)**: 동시에 실행되는 트랜잭션이 서로 간섭하지 않도록 보장해야 한다는 성질. | ||
- **Durability(지속성)**: 트랜잭션이 완료된 후 그 결과는 영구적으로 저장되어야 한다는 성질. | ||
|
||
--- | ||
|
||
### 3. **시스템 분석 및 설계** | ||
|
||
**문제 7** | ||
UML 다이어그램에서 **클래스 다이어그램**과 **시퀀스 다이어그램**의 차이점을 설명하시오. | ||
|
||
**해설** | ||
- **클래스 다이어그램**: 시스템의 클래스와 클래스 간의 관계(상속, 연관, 의존성 등)를 나타낸 구조적 다이어그램. | ||
- **시퀀스 다이어그램**: 객체 간의 상호작용을 시간 순서에 따라 표현하는 다이어그램. 주로 메시지 교환 및 객체의 호출 순서를 나타냅니다. | ||
|
||
--- | ||
|
||
**문제 8** | ||
애플리케이션의 **MVC 패턴**을 설명하고, 각 구성 요소의 역할을 기술하시오. | ||
|
||
**해설** | ||
MVC(Model-View-Controller) 패턴은 애플리케이션의 구조를 세 가지 주요 요소로 나누어 효율적으로 관리하는 방법입니다. | ||
- **Model(모델)**: 데이터와 비즈니스 로직을 처리하는 부분. 데이터베이스와 상호작용하고 애플리케이션의 상태를 유지합니다. | ||
- **View(뷰)**: 사용자 인터페이스를 담당하는 부분으로, 데이터를 시각적으로 표시합니다. | ||
- **Controller(컨트롤러)**: 사용자 요청을 처리하고, 그에 따라 모델과 뷰를 연결하는 역할을 합니다. | ||
|
||
--- | ||
|
||
**문제 9** | ||
소프트웨어 아키텍처에서 **마이크로서비스(Microservices)**의 개념을 설명하고, 모놀리식(Monolithic) 아키텍처와의 차이점을 기술하시오. | ||
|
||
**해설** | ||
- **마이크로서비스**: 각각의 독립적인 서비스들이 모여 하나의 시스템을 구성하는 아키텍처입니다. 각 서비스는 독립적으로 배포되고, 관리될 수 있습니다. | ||
- **모놀리식 아키텍처**와의 차이점: 모놀리식은 모든 기능이 하나의 코드베이스에서 관리되지만, 마이크로서비스는 서비스들이 분리되어 독립적으로 운영됩니다. 마이크로서비스는 유지보수성과 확장성에서 유리합니다. | ||
|
||
--- | ||
|
||
### 4. **네트워크와 보안** | ||
|
||
**문제 10** | ||
다음 중 **DDoS 공격**의 특징을 설명하시오. | ||
|
||
**해설** | ||
**DDoS(Distributed Denial of Service)** 공격은 여러 곳에 분산된 공격 지점에서 동시에 대량의 트래픽을 특정 서버에 전송하여 서비스가 정상적으로 작동하지 못하게 만드는 공격입니다. 이로 인해 네트워크 자원이 과부하 상태에 이르러 서비스 중단이 발생합니다. | ||
|
||
--- | ||
|
||
**문제 11** | ||
다음 중 **SSL**의 개념과 역할을 설명하시오. | ||
|
||
**해설** | ||
**SSL(Secure Sockets Layer)**은 인터넷 상에서 데이터를 안전하게 주고받기 위한 암호화 프로토콜입니다. SSL을 통해 웹사이트와 브라우저 간의 통신을 암호화하여 기밀성과 무결성을 보장할 수 있습니다. | ||
|
||
--- | ||
|
||
**문제 12** | ||
네트워크에서 **IPv4**와 **IPv6**의 차이점을 설명하시오. | ||
|
||
**해설** | ||
- **IPv4**: 32비트 주소 체계를 사용하는 인터넷 프로토콜로, 약 43억 개의 주소를 제공. 주소 고갈 문제가 있음. | ||
- **IPv6**: 128비트 주소 체계를 사용하는 차세대 인터넷 프로토콜로, 거의 무한대에 가까운 주소를 제공하며, IPv4의 주소 고갈 문제를 해결. | ||
|
||
--- | ||
|
||
### 5. **소프트웨어 테스트** | ||
|
||
**문제 13** | ||
소프트웨어 테스트에서 **화이트박스 테스트**와 **블랙박스 테스트**의 차이를 설명하시오. | ||
|
||
**해설** | ||
- **화이트박스 테스트**: 소스 코드 내부 구조와 논리 흐름을 분석하여 테스트하는 방법. 내부 로직에 따라 테스트 케이스를 작성합니다. | ||
- **블랙박스 테스트**: 내부 코드 구조를 알지 않고, 외부 사용자의 요구사항에 맞춰 시스템의 동작을 테스트하는 방법. 주로 입력과 출력만을 기준으로 테스트 케이스를 작성합니다. | ||
|
||
--- | ||
|
||
**문제 14** | ||
소프트웨어 테스트에서 **경계값 분석(Boundary Value Analysis)**의 개념 | ||
|
||
을 설명하고, 테스트 시나리오를 제시하시오. | ||
|
||
**해설** | ||
경계값 분석은 입력 값의 경계(최대값, 최소값, 중간값)에서 오류가 발생할 확률이 높다는 가정 하에 테스트하는 기법입니다. 예를 들어, 허용 값의 범위가 1부터 100까지라면, 1, 100, 0, 101과 같은 경계값을 중심으로 테스트합니다. | ||
|
||
--- | ||
|
||
### 6. **프로젝트 관리** | ||
|
||
**문제 15** | ||
프로젝트 관리에서 **PERT**와 **CPM** 기법의 차이점을 설명하시오. | ||
|
||
**해설** | ||
- **PERT(Program Evaluation and Review Technique)**: 불확실한 작업 시간을 처리하기 위해 확률적 기법을 사용하여 일정 계획을 수립. | ||
- **CPM(Critical Path Method)**: 작업의 시작과 완료 시간을 확정적으로 관리하며, 중요한 경로를 식별하여 프로젝트 일정 관리를 하는 기법입니다. | ||
|
||
--- | ||
|
||
**문제 16** | ||
소프트웨어 비용 산정 기법 중 **COCOMO 모형**을 설명하시오. | ||
|
||
**해설** | ||
**COCOMO(COnstructive COst MOdel)**는 소프트웨어의 규모에 따라 개발 비용을 산정하는 기법입니다. 프로젝트의 규모를 세 가지로 분류하여 비용을 추정합니다. | ||
1. **기본형(Basic)**: 소규모 프로젝트에서 사용. | ||
2. **중간형(Intermediate)**: 중간 규모의 프로젝트에서 사용. | ||
3. **상세형(Detailed)**: 대규모 프로젝트에서 사용. | ||
|
||
--- |