1과목: 소프트웨어 설계
1장 요구사항 확인
1) 소프트웨어 개발 모형 중 나선형 모델의 활동 과정이 아닌것은?
틀린 이유 분석: 나선형 모델의 활동 과정에 대해 개념이 부족함. 다른 모델들도 마찬가지.. 해당부분 체크필요.
해설: 나선형 모델(Spiral Model)은 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형으로, 나선을 따라 돌듯이 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로(프로토타입을 지속적으로 발전시켜) 완벽한 최종 소프트웨어를 개발하는 것 이다. 소프트웨어 개발 과정의 앞 단계가 끝나야만 다음 단계로 넘어갈 수 있는 선형 순차적 모형은 폭포수 모형이다.
2) 다음 중 스크럼에 대한 설명으로 잘못된 것은?
틀린 이유 분석: 스크럼에 대한 개념 부족
해설: 스프린트 검토 회의에서 개선할 사항에 대한 피드백이 정리되면 제품 책임자는 이를 다음 스프린트에 반영할 수 있도록 제품 백로그를 업데이트한다.
3) 다음에 제시된 XP(eXtreme Programming)의 개발 프로세스를 순서에 맞게 나열된 것은?
틀린 이유 분석: XP의 개발 프로세스 순서에 대한 개념 부족.
해설: 릴리즈 계획 수립 -> 주기(Iteration) -> 승인 검사(Acceptance Test) -> 소규모 릴리즈 순서이다.
4) 다음 중 오픈 소스 사용에 따른 고려사항에 속하지 않는 것은?
틀린 이유 분석: 오픈소스에서 강조하는 "무료"와 "비용"에 대한 부분 기억.
해설: 오픈 소스란 누구나 제한없이 무료로 사용할 수 있도록 소스 코드를 공개한 것 이다.
5) 요구사항 협상은 요구사항이 서로 충돌하는 경우 이를 적절히 해결하는 과정이다. 다음 중 요구사항이 서로 충돌되어 적절한 기준점을 찾아 합의해야 하는 경우가 아닌 것은?
틀린 이유 분석: 요구사항 협상에 대한 개념 부족
해설: 이미 우선 순위가 부여된 요구사항은 충돌이 발생하지 않는다.
6) 객체지향 개발 방법론 UML의 관계 표시법 중 의존(Dependency)을 표현하는 기호는?
틀린 이유 분석: UML의 관계 표시법을 표현하는 기호를 잘 몰랐기 때문에 틀렸다. -> 해당 부분 정리 필요.
2장 화면 설계
1) 사용자 인터페이스 설계 시 고려 사항으로 가장 거리가 먼 것은?
틀린 이유 분석: 사용자 인터페이스 설계 시 고려 사항에 대한 이해 부족.
해설: 사용자 인터페이스는 다양성이 아닌 표준화를 고려해야한다.
2) 다음 중 네비게이션에 대한 설명으로 틀린 것은?
틀린 이유 분석: 네비게이션에 대한 개념 부족.
해설: 네비게이션은 시스템이 아니라 사용자 중심으로 설계되어야 한다.
3) 다음 중 웹 사이트의 내비게이션 요소가 아닌 것은?
틀린 이유 분석: 네비게이션에 대한 개념 부족.
해설: 템플릿은 '형판, 보기 판'이라는 의미로 일정한 모양으로 만들어진 틀을 의미한다. 템플릿은 웹 사이트의 네비게이션 요소가 아니다.
4) 다음 중 웹 사이트의 내비게이션 요소가 아닌 것은?
틀린 이유 분석: 네비게이션에 대한 개념 부족.
해설: 템플릿은 '형판, 보기 판'이라는 의미로 일정한 모양으로 만들어진 틀을 의미한다. 템플릿은 웹 사이트의 네비게이션 요소가 아니다.
5) 다음 중 화면 단위로 삽입될 구성 요소나 콘텐츠, 기능 등을 구체적으로 정리해 놓은 문서는 무엇인가?
틀린 이유 분석: 스토리보드.
해설: 없음.
6) 사용자의 요구사항을 조사하기 위한 인터뷰 진행 시 유의사항으로 틀린 것은?
틀린 이유 분석: 사용자의 요구사항을 조사하기 위한 인터뷰 진행 시 유의사항에 대한 개념 부족.
해설: 사용자 인터뷰를 진행한 후 파악된 요구사항을 토대로 사용자 리서치를 계획하고 진행해야 한다.
7) ISO / IEC 9126은 국제적으로 소프트웨어 제품의 품질을 측정하는데 이용되고 있다. 다음 중 ISO / IEC 9126에서 정의한 소프트웨어의 품질 특성이 아닌 것은?
틀린 이유 분석: 사ISO / IEC 9126에서 정의한 소프트웨어의 품질 특성에 대한 개념 부족.
해설: ISO / IEC 9126에서 정의한 소프트웨어의 품질 특성: 기능성, 신뢰성, 사용성, 효율성, 유지 보수성, 이식성.
3장 애플리케이션 설계
1) 추상화의 유형에서 이벤트 발생의 구체적인 절차 또는 방법을 정의하지 않고 대표할 수 있는 표현으로 대체하는 것을 무엇이라고 하는가?
틀린 이유 분석: 추상화의 유형에 대한 이해 부족.
해설:
과정 추상화: 자세한 수행과정을 정의하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 방법.
데이터 추상화: 데이터의 세부적인 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법.
2) 소프트웨어 아키텍처의 설계 과정을 순서대로 가장 옳게 나열할 것은?
틀린 이유 분석: 소프트웨어 아키텍처의 설계 과정에 대한 이해 부족.
해설: 소프트웨어 아키텍처의 설계 과정은 설계 목표 설정, 시스템 타입 결정, 아키텍처 패턴 적용, 서브시스템 구체화, 검토 순이다.
3) 다음 그림은 MVC(Model-View-Controller) 아키텍처 패턴을 나타낸 것이며, 세 가지 요소가 별도의 컴포넌트로 구성된다. 가, 나, 다에 해당되는 요소를 바르게 나열한 것은?
틀린 이유 분석: 뷰를 제어하는 것이 컨트롤러라는 중요한 요소를 헷갈렷었다.
해설:
MVC 패턴의 구성 요소:
4) 아키텍처의 패턴에 관한 설명 중 가장 옳지 않은 것은?
틀린 이유 분석: 아키텍처의 각각의 패턴들에 대한 이해 부족.
해설: 레이어 패턴은 상위 계층이 제공하는 서비스를 하위 계층의 서브시스템이 사용하도록 구성되어 있는 패턴이다.
5) 다음중 아키텍처 스타일과 이를 기반으로 하는 시스템의 관계를 짝 지은 것으로 가장 옳지 않은 것은?
1) Layer Pattern - OSI 참조 모델
2) Master-Slave Patter - 장애 허용 시스템
3) Blackboard Patter - 차량 식별 시스템
4) MVC Pattern - 병렬 컴퓨팅 시스템
틀린 이유 분석: 아키텍처 스타일에 대한 개념 부족.
해설: MVC 패턴은 대화형 어플리케이션에 적합하며, 병렬 컴퓨팅 시스템에 적합한 패턴은 마스터 - 슬레이브 패턴이다.
6) 객체 지향 개념에서 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정을 무엇이라고 하는가?
1) 정보 은닉(Information Hiding)
2) 클래스(Class)
3) 캡슐화(Encapsulation)
4) 통합(Integration)
틀린 이유 분석: 캡슐화와 클래스에 대한 모호한 문제 표현.
해설:
정보 은닉: 정보 은닉은 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법.
클래스: 공통된 속성과 연산을 갖는 객체의 집합으로, 객체의 일반적인 타입을 의미.
7) 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합성이며 자료 구조의 어떠한 변화, 즉 포맷이나 구조의 변화는 그것을 조회하는 모든 모듈 및 변화되는 필드를 실제로 조회하지 않는 모듈에까지도 영향을 미치게 되는 결합성은?
1) Data Coupling
2) Stamp Coupling
3) Control Coupling
4) Content Coupling
틀린 이유 분석: 각각의 결합에 대한 개념 부족.
해설:
제어 결합도(Control Coupling): 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어 요소를 전달하는 결합도
공통 결합도(Common Coupling): 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
스탬프 결합도(Stamp Coupling): 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
8) 모듈의 응집도에 대한 설명 중 틀린 것은?
1) 모듈의 응집도란 모듈 안의 요소들이 서로 관련되어 있는 정도를 말한다.
2) 기능적 응집도는 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 요소의 입력 자료로서 제공되는 형태이다.
3) 교환적 응집도는 동일한 입력과 출력을 사용하는 소작업들이 모인 모듈에서 볼 수 있다.
4) 논리적 응집도는 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우이다.
틀린 이유 분석: 응집도 각각에 대한 개념 부족.
해설: 기능적 응집도는 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도 이며, 2번 보기의 내용은 순차적 응집도에 대한 설명이기 때문에 틀린 것 이다.
9) 효과적인 모듈 설계 방법으로 가장 거리가 먼 것은?
1) Coupling은 약하게 Cohesion은 강하게 설계한다.
2) Complexity는 줄이고 Redundancy를 최대한 늘릴 수 있도록 설계한다.
3) Maintenance가 용이하도록 설계한다.
4) Module 크기는 시스템의 전반적인 기능과 구조를 이해하기 쉬운 크기로 설계한다.
틀린 이유 분석: 각각의 단어에 대한 영단어 vocab 이해 부족.
해설: 모듈의 중복성(Redundancy)은 가능한 최소화 하는 것이 좋다.
10) 주로 도시 분류 코드에 사용되는 코드는?
1) 10진 코드
2) 순서 코드
3) 문자 코드
4) 분류 코드
틀린 이유 분석: 각각 코드의 사용 예시와 코드 자체에 대한 이해 부족.
해설:
제어 결합도: 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어 요소를 전달하는 결합도.
공통 결합도: 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도.
스탬프 결합도: 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
11) 주로 도시 분류 코드에 사용되는 코드는?
1) 10진 코드
2) 순서 코드
3) 문자 코드
4) 분류 코드
틀린 이유 분석: 각각 코드의 사용 예시와 코드 자체에 대한 이해 부족.
해설:
제어 결합도: 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어 요소를 전달하는 결합도.
공통 결합도: 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도.
스탬프 결합도: 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
12) 다음 중 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴은?
1) Abastract Factory 패턴
2) Facade 패턴
3) Singleton 패턴
4) Interpreter 패턴
틀린 이유 분석: Facade 패턴에 대한 개념 / 정보 부족.
해설:
추상 팩토리 패턴: 구체적인 클래스에 의존 하지 않고, 인터페이스를 통해 서로 연관 / 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현하는 패턴
싱글톤 패턴: 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없는 패턴
인터프리터 패턴: 언어에 문법 표현을 정의하는 패턴
13) 다음 중 디자인 패턴에 대한 설명으로 가장 옳지 않은 것은?
1) Singleton: 하나의 객체를 생성하여 해당 객체를 어디서든 참조할 수 있도록 한다
2) Bridge: 구현에서 추상을 분리하여 독립적으로 다양성을 가질 수 있다.
3) Chain of Responsibility: 한 객체가 처리하지 못한 요청을 다음 객체가 처리하는 형태이다.
4) Strategy: 알고리즘을 하나로 캡슐화하여 원하는 알고리즘의 선택이 가능하지만, 알고리즘의 변경이 미치는 영향이 크다.
틀린 이유 분석: 각각의 디자인 패턴들에 대한 정확한 개념이나 묘사 이해 부족.
해설:
전략 패턴은 알고리즘들을 개별적으로 캡슐화하여 필요할 때 마다 원하는 알고리즘을 선택하여 사용할 수 있는 패턴이다.
14) 차량 네비게이션 소프트웨어에서 GPS를 수신하는 경우와 수신하지 못하는 경우에 따라 차량의 위치를 구하는 다른 알고리즘을 선택하고자 할 때 가장 적합한 설계 패턴은?
1) 데코레이션 패턴
2) 전략 패턴
3) 어댑터 패턴
4) 플라이웨이트 패턴
틀린 이유 분석: 각각의 디자인 패턴들에 대한 정확한 개념이나 묘사 이해 부족.
해설:
데코레이션 패턴: 객체 간의 결합으로 능동적으로 기능들을 확장할 수 있는 패턴.
어댑터 패턴: 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴.
플라이웨이트 패턴: 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 공유해서 사용함으로써 메모리를 절약하는 패턴
15) 상속을 사용하지 않고도 객체의 기능을 동적으로 확장할 수 있도록 해주는 설계 패턴은?
1) 데코레이션 패턴
2) 프록시 패턴
3) 빌더 패턴
4) 커맨드 패턴
틀린 이유 분석: 각각의 디자인 패턴들에 대한 정확한 개념이나 묘사 이해 부족.
해설:
프록시 패턴: 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴
빌더 패턴: 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성하는 패턴
커맨드 패턴: 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴
16) 여러 객체들이 서로 메시지를 주고받는 상호 작용을 특정 객체 안에 캡슐화하여 서로의 존재를 모르는 상태에서도 메시지를 주고받으며 협력할 수 있도록하는 설계 패턴은?
1) Template Method
2) Mediator
3) Visitor
4) Bridge
틀린 이유 분석: 각각의 디자인 패턴들에 대한 정확한 개념이나 묘사 이해 부족.
해설:
템플릿 메소드: 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴
방문자 패턴: 자료구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
브리지 패턴: 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴
17) 알고리즘 설계 기법으로 거리가 먼 것은?
1) Divide and Conquer
2) Greedy
3) Static Block
4) Backtracking
틀린 이유 분석: 알고리즘 설계 기법에 대한 개념 부족.
해설:
분할 정복 / 분할 통치: 큰 문제를 보다 작은 문제로 분할하여 해결하는 전략
동적 계획법: 아래 단계의 간단한 문제부터 해결하면서 점차 상위로 나아가는 상향식 접근 방식
탐욕 알고리즘: 완벽한 해결책 보다는 차선책을 목표로 하며, 상황에 맞는 해결책을 즉석에서 모색하는 방식
백트래킹: 깊이 우선 탐색 알고리즘을 이용한 기법으로, 문제 해결을 위한 모든 가능성을 트리로 구축하는 방식
4장 인터페이스 설계
1) 다음 중 송 / 수신 데이터 식별 시 해당하는 데이터 종류가 아닌 것은?
1) 오류 식별 항목
2) 공통 코드
3) 인터페이스 표준 항목
4) 송 / 수신 데이터 항목
틀린 이유 분석: 중요도 C이하라 본적이 없음.
해설:
공통 코드: 시스템들에서 공통적으로 사용하는 코드
인터페이스 표준 항목: 송 / 수신 시스템을 연계하는데 표준적으로 필요한 데이터
송 / 수신 데이터 항목: 송 / 수신 시스템이 업무를 수행하는데 사용하는 데이터
2) 인터페이스 처리 유형 중 데이터를 매건 단위로 처리할 경우 비용이 많이 발생할 때 사용하는 방식은?
1) 실시간 방식
2) 지연 처리 방식
3) 일괄 처리 방식
4) 배치 방식
틀린 이유 분석: 중요도 C이하라 본적이 없음.
해설:
없음
3) 다음 중 시스템 연계 기술에 대한 설명으로 가장 옳지 않은 것은?
1) DB Link는 수신 시스템에서 DB Link를 생성하고 송신 시스템에서 해당 DB Link를 직접 참조하는 방식이다.
2) 연계 솔루션은 EAI 서버와 송 / 수신 시스템에 설치되는 클라이언트를 이용하는 방식이다.
3) Socket은 클라이언트는 통신을 위한 소켓을 생성하여 포를 할당하고 서버의 통신 요청 시 서버와 연결하고 통신하는 네트워크 기술이다.
4) Web Service는 웹 서비스에서 WSDL과 UDDI, SOAP 프로토콜을 이용하여 연계하는 방식이다.
틀린 이유 분석: 중요도 C이하라 본적이 없음.
해설:
Socket은 서버가 통신을 위한 소켓을 생성하여 포트를 할당하고 클라이언트의 통신 요청 시 클라이언트와 연결하여 통신하는 네트워크 기술이다.
4) 다음 중 시스템 인터페이스 설계서에 대한 설명으로 가장 옳지 않은 것은?
1) 시스템 인터페이스 설계서는 시스템의 내 / 외부 인터페이스를 식별하고 인터페이스 명세를 기술하기 위해 작성한다.
2) 시스템 인터페이스 설계서는 시스템 인터페이스 목록과 시스템 인터페이스 정의서로 구성된다.
3) 시스템 인터페이스 목록은 개념 모델링 과정에서 도출한 개체 타입과 관련 속성, 식별자에 등에 대한 전반적인 정보를 포함한다.
4) 시스템 인터페이스 정의서는 데이터 송신 시스템과 수신 시스템 간의 데이터 저장소와 속성 등의 상세 내역을 포함한다.
틀린 이유 분석: 중요도 C이하라 본적이 없음.
해설:
시스템 인터페이스 목록은 연계 업무와 연계에 참여하는 송 / 수신 시스템의 정보, 연계 방식과 통신 유행 등에 대한 정보를 포함한다.
개념 모델링 과정에서 도출한 개체 타입과 관련 속성, 식별자 등에 대한 개괄적인 정보를 포함하는 것은 개체 정의서이다.
2과목: 소프트웨어 설계
1장 요구사항 확인
1) 큐에 대한 설명으로 옳지 않은 것은?
1) 입력은 리스트의 한 끝에서, 출력은 그 상대편 끝에서 일어난다.
2) 운영체제의 작업 스케줄링에 사용된다.
3) 오버플로는 발생될 수 있어도 언더플로는 발생되지 않는다.
4) 가장 먼저 삽입된 자료가 가장 먼제 삭제되는 FIFO 방식으로 처리된다.
틀린 이유 분석: 큐에 대한 정보 부족.
해설: 오버플로는 큐가 꽉 채워져 있는 상태로 더 이상 자료를 삽입할 수 없는 상태이고, 언더플로는 자료가 없어서 자료를 제거할 수 없는 상태를 말하는 것으로 큐는 오버플로와 언더플로가 모두 발생할 수 있다.
2) DBMS의 기능에 대한 설명으로 잘못된 것은?
1) DBMS의 주요 기능은 크게 정의, 조작, 제어 기능으로 분류할 수 있다.
2) 정의 기능은 자료형, 이용 방식, 구조 정의, 제약 조건 등을 명시하는 기능이다.
3) 조작 기능에는 데이터를 조작할 때 처리 결과의 정확성을 유지하는 병행 제어 기능이 포함된다.
4) 제어 기능에는 무결성, 보안 유지, 권한 검사 등이 포함된다.
틀린 이유 분석: DBMS 각각의 정의, 조작, 제어에 대한 개념 부족.
해설: 조작 기능은 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능이다.
3) 해싱 함수 중 레코드 키를 여러 부분으로 나누고, 나눈 부분의 각 숫자를 더하거나 XOR한 값을 홈 주소로 사용하는 방식은?
틀린 이유 분석: 중요도 C 이하라 안봄.
해설: 해싱함수
제산법: 레코드 키를 해시표의 크기보다 큰 수 중에서 가장 작은 소수로 나눈 나머지를 홈 주소로 삼는 방식, 즉 h(K) = K mod Q임.
제곱법: 레코드 키 값을 제곱한 후 그중간 부분의 값을 홈 주소로 삼는 방식.
폴딩법: 레코드 키 값을 여러 부분으로 나눈 후 각 부분의 값을 더하거나 XOR한 값을 홈 주소로 삼는 방식.
기수 변환법: 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수는 절단하고, 이를 다시 주소 범위에 맞게 조정하는 방법.
대수적 코딩법: 키 값을 이루고 있는 각 자리의 비트 수를 한 다항식의 계수로 간주하고, 이 다항식을 해시표의 크기에 의해 정의된 다항식으로 나누어 얻은 나머지 다항식의 계수를 홈 주소로 삼는 방식.
계수 분석법: 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 택해서 홈 주소로 삼는 방식.
무작위법: 난수를 발생시켜 나온 값을 홈 주소로 삼는 방식.
4) 트랜잭션을 제어하기 위해 사용하는 명령어인 TCL의 종류에 속하지 않는 것은?
1) COMMIT
2) RETURN
3) ROLLBACK
4) SAVEPOINT
틀린 이유 분석: 난이도 C 이하라 안봄.
해설: TCL의 종류에는 변경 내용을 반영하는 COMMIT, 이전 상태로 되돌리는 ROLLBACK, 중간 저장점을 지정하는 SAVEPOINT가 있다.
5) 소프트웨어 개발에서 데이터 입 / 출력에 대한 설명으로 옳지 않은 것은?
1) 소프트웨어의 기능 구현을 위해 데이터 베이스로부터 데이터를 입 / 출력 하는 것이다.
2) 데이터베이스의 데이터를 입 / 출력하기 위해 TCL을 사용한다.
3) SQL을 통해 데이터베이스에서 처리되는 하나의 논리적 작업 단위를 트랜잭션이라고 한다.
4) 소프트웨어가 데티어베이스에 있는 데이터를 조작하기 위해서는 SQL 매핑 또는 ORM 기술을 사용해야 한다.
틀린 이유 분석: 난이도 C 이하라 안봄.
해설: 데이터베이스의 데이터를 조작하는데 사용하는 언어는 SQL이고, TCL은 트랜잭션을 제어하는데 사용하는 명령어이다.
6) 입력 순서에 따라 배열된 5개의 데이터 (8, 3, 5, 2, 4)를 어떠한 정렬 방식에 의해 1단계 정렬시킨 결과가 2, 8, 5, 3, 4가 되었다면 사용된 정렬 알고리즘은?
1) Bubble Sort.
2) Heap Sort.
3) Selection Sort.
4) Insertion Sort.
틀린 이유 분석: 각각의 정렬 방식들에 대한 개념 이해 부족.
해설:
선택 정렬은 앞에서부터 정렬되기 시작한다. 즉 1단계를 마치고 나면 가장 작은 값이 맨 앞으로 오며, 2단계를 마치면 두 번째로 작은 값이 두번째로 온다.
버블 정렬은 뒤에서부터 정렬되기 시작한다. 즉 1단계를 마치고 나면 가장 큰 값이 맨 뒤로 가고 2단계를 마치면 두 번째로 큰 값이 뒤에서 두번째에 위치한다.
삽입 정렬은 1단계를 마치면 첫 번째와 두 번째 값만 비교하여 교환한다.
3장 제품 소프트웨어 패키징
1) 다음 중 패키징 작업 과정에 대한 설명으로 잘못된 것은?
1) 짧은 개발 주기를 반복하는 애자일 기법인 경우 패키징 주기는 보통 2 ~ 4주 내에서 지정하며, 모든 주기가 완료된 후에 최종적으로 패키징을 수행한다.
2) 패키징한 결과물을 온라인으로 배포할 때는 별도로 마련한 운영 서버에 설치 및 사용 메뉴얼과 함께 배포 파일을 등록하여 고객이 직접 다운받아 사용할 수 있도록 한다.
3) 패키징한 결과물을 오프라인으로 배포할 때는 CD-ROM이나 DVD, USB 등에 설치 및 사용 메뉴얼과 함께 배보 파일을 담는다.
4) 프로젝트 개발 과정에서 패키징한 결과물은 테스트 서버에 배포한다.
틀린 이유 분석: 패키징 작업 과정에 대한 개념 부족.
해설: 패키징은 모든 주기가 완료된 후에 최종적으로 수행하는 것이 아니라 각 주기가 끝날 때 마다 수행한다.
2) 다음은 릴리즈 노트 작성의 일반적인 과정이다. 순서에 맞게 나열한 것은?
틀린 이유 분석: 릴리즈 노트 작성 과정에 대한 개념 부족.
해설: 없음.
3) 디지털 저작권 관리에 대한 설명으로 잘못된 것은?
1) 디지털 저작권 관리란 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 관리 및 보호하는 기술이다.
2) 원본 콘텐츠가 디지털인 경우에는 아날로그로 변환한 후 패키저에 의해 DRM 패키징을 수행한다.
3) 콘텐츠의 크기가 작은 경우에는 사용자가 콘텐츠를 요청하는 시점에서 실시간으로 패키징을 수행한다.
4) 패키징을 수행하면 콘텐츠에는 암호화된 저작권자의 전자서명이 포함되고 저작권자가 설정한 라이선스 정보가 Clearing House에 등록된다.
틀린 이유 분석: 디지털 저작권 관리에 대한 개념 부족(3번과 2번 중 답을 찾지 못하고 찍었음).
해설: 디지털 저작권 관리는 디지털 콘텐츠를 관리 및 보호하는 기술로 원본 콘텐츠가 디지털이 아닌 아날로그인 경우 디지털로 변환한 후 패키저에 의해 DRM 패키징을 수행한다.
4장 어플리케이션 테스트 관리
1) 다음 중 애플리케이션 테스트에 대한 설명으로 틀린 것은?
1) 애플리케이션 테스트는 소프트웨어에 잠재되어 있는 결함을 찾아내는 일련의 행위이다.
2) 테스트는 고객의 요구사항을 만족했는지 verification 해야 한다.
3) 테스트는 오류 검출 뿐만 아니라 새로운 오류의 유입도 방지할 수 있다.
4) 테스트를 효과적으로 실행하면 최소한의 시간과 노력으로 많은 결함을 찾을 수 있다.
틀린 이유 분석: 틀리지는 않았지만, verification 즉 검증 테스트와, Validation, 즉 확인 테스트 간의 사이에서의 차이점을 알 필요가 있어서 가져왔다.
해설:
Verification: 개발자의 입장에서 명세서에 맞게 만들여졌는지를 점검하는 것.
Validation: 사용자의 입장에서 고객의 요구사항에 맞게 구현되었는지 점검하는 것.
2) 다음 중 소프트웨어의 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 나타내는 것은 무엇인가?
1) 테스트 하네스.
2) 테스트 오라클.
3) 테스트 적합성.
4) 테스트 케이스.
틀린 이유 분석: 틀리지는 않았지만, 헷갈릴 수 있는 문제라서 가져왔다.
해설: 없음.
정답: 테스트 오라클.
3) 다음 중 애플리케이션 테스트에 대한 설명으로 틀린 것은?
1) 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트는 명세 기반 테스트이다.
2) 테스터의 이전 경험과 기술을 기반으로 수행하는 테스트는 경험 기반 테스트이다.
3) 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트는 구조 기반 테스트이다.
4) 동등 분할, 경계 값 분석, 구분 기반, 결정 기반 등은 명세 기반 테스트이다.
틀린 이유 분석: 틀리지는 않았지만, 헷갈릴 수 있는 문제라서 가져왔다.
해설: 구분 기반, 결정 기반 등은 구조 기반 테스트이다.
정답: 4번.
4) 다음 중 워크 스루와 인스펙션에 대한 설명으로 가장 옳지 않은 것은?
1) 워크스루는 전문가들에 의해 개발자의 작업 내역이 검토된다.
2) 워크스루는 제품 개발자가 주최가 된다.
3) 워크스루는 오류 발견과 발견된 오류의 문제 해결에 중점을 둔다.
4) 인스펙션은 워크스루를 발전시킨 형태이다.
틀린 이유 분석: 워크 스루와 인스펙션에 대한 개념 부족.
해설: 워크 스루의 목적은 오류 해결이 아니라 오류의 조기 검출이다.
정답: 3번.
5) 다음 중 단위 테스트에 대한 설명으로 틀린 것은?
1) 소프트웨어의 최소 단위인 모듈에 초점을 맞춰 테스트한다.
2) 소프트웨어 개발자가 코딩에 대해 테스트하는 것 이다.
3) 주로 블랙박스 테스트를 실행한다.
4) 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행한다.
틀린 이유 분석: 단위 테스트에 대한 개념 이해 부족.
해설: 단위 테스트는 주로 구조적 테스트인 화이트박스 테스트를 실행한다.
정답: 3번.
6) 상향 식 통합 테스트의 과정이 옳게 나열된 것은?
ㄱ) 드라이버라는 제어 프로그램의 작성.
ㄴ) 낮은 수준의 모듈들을 클러스터로 결합.
ㄷ) 클러스터의 검사.
ㄹ) 클러스터를 상위로 결합.
틀린 이유 분석: 상향식 통합 테스트 과정 순서에 대한 개념 이해 부족.
해설: 없음.
정답: ㄴ -> ㄱ -> ㄷ -> ㄹ.
7) 다음 중 애플리케이션의 성능을 측정하는 지표들에 대한 설명으로 틀린 것은?
1) 처리량: 일정 시간 내에 애플리케이션이 처리하는 일의 양
2) 응답 시간: 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
3) 경과 시간: 애플리케이션이 작업을 처리하기 시작한 시간부터 처리가 완료될 때까지 걸린 시간
4) 자원 사용률: 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU, 메모리, 네트워크 등의 사용량
틀린 이유 분석: 틀리진 않았지만, 헷갈릴만한 문제라 챙겨와봄.
해설: 경과 시간: 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때 까지 걸린 시간.
정답: 3번.
8) n개의 원소를 정렬하는 방법 중 평균 수행시간 복잡도와 최악 수행시간 복잡도가 모두 O(nlog2n)인 정렬은?
1) 삽입 정렬
2) 힙 정렬
3) 버블 정렬
4) 선택 정렬
틀린 이유 분석: 각각 정렬들에 대한 시간 복잡도 개념 이해 부족.
해설: 삽입 정렬, 버블 정렬, 선택 정렬은 평균과 최악 수행시간 복잡도가 모두 O(n2)이다.
정답: 2번 힙 정렬.
5장 인터페이스 구현
1) 다음 중 시스템 인터페이스 설계서에 대한 설명으로 옳은 것은?
1) 한 시스템의 인터페이스 현황을 확인하기 위하여 시스템이 갖는 인터페이스 목록과 인터페이스 명세를 보여주는 문서이다.
2) 인터페이스를 통한 각 세부 기능의 개요, 세부 기능이 동작하기 전에 필요한 사전 / 사후 조건 등을 정의한 문서이다.
3) 정적, 동적 모형으로 각 시스템의 구성 요소를 표현한 다이어그램을 통해 정의한 문서이다.
4) 제공하는 인터페이스 서비스에 대한 상세 명세를 표현하는 문서이다.
틀린 이유 분석: 인터페이스 설계서에 대한 개념 부족.
해설:
2번 보기는 상세 기능별 인터페이스 명세서, 3번은 정적 / 동적 모형을 통한 인터페이스 설계서, 4번은 데이터 정의를 통한 인터페이스 설계서에 대한 설명이다.
정답: 1번
2) 다음 중 시스템 인터페이스를 위한 내 / 외부 모듈 연계 기술이 아닌 것은?
1) ESM
2) Hybrid
3) Point-to-Point
4) Hub & Spoke
틀린 이유 분석: 인터페이스 모듈 연계 기술에 대한 개념 부족.
해설:
ESM(Enterprise Security Management)은 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션이다.
정답: 1번
3) 하나의 독립적인 기능을 수행하는 모듈의 구성 요소와 세부적인 동작을 정의한 것으로, 컴포넌트의 구성 요소와 동작을 정의한 컴포넌트 명세서와 컴포넌트와 컴포넌트 간 상호 작용을 정의한 인터페이스 명세서로 구성된 것은?
1) 인터페이스 설계서
2) 테이블 정의서
3) 인터페이스 요구사항 정의서
4) 모듈 세부 설계서
틀린 이유 분석: 컴포넌트 명세서와 인터페이스 명세서로 구성된 것인 모듈 세부 설계서에 대한 개념 부족.
해설:
없음
정답: 4번
4) 다음 중 송 / 수신 인터페이스 엔티티를 사용하여 인터페이스 동작을 할 때 발생할 수 있는 상황이 아닌 것은?
1) 데이터 정합성 오류
2) 데이터 전송 주체의 논리적 오류
3) DB Connection 오류
4) 송신 데이터 생성 시 프로세스의 논리적 결함
틀린 이유 분석: 인터페이스 엔티티에 대한 개념 부족.
해설:
4번은 인터페이스 객체 송 / 수신 시 발생할 수 있는 예외 상황이다.
정답: 4번
5) 다음 중 인터페이스 보안 기능을 적용하는 일반적인 영역에 해당하지 않는 것은?
1) Application
2) DataBase
3) Transport
4) Network
틀린 이유 분석: 인터페이스 보안 기능을 적용하는 일반적인 영역에 대한 개념 부족.
해설:
인터페이스 보안 기능은 일반적으로 네트워크, 애플리케이션, 데이터베이스 영역에 적용한다.
정답: 3번
6) 다음 중 인터페이스 구현 검증 도구에 대한 설명으로 옳은 것은?
1) xUnit: Java, C++, .Net등 다양한 언어를 지원하는 단위 테스트 프레임워크.
2) Selenium: 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크.
3) STAF: FitNesse와 STAF의 장점을 통합한 NHN의 테스트 자동화 프레임워크.
4) FitNesse: Ruby를 사용하는 애플리케이션 테스트 프레임워크
틀린 이유 분석: 인터페이스 구현 검증 도구에 대한 이해 부족.
해설:
1번이 아닌 2~4번이 틀린 이유는 다음과 같다.
2번 Selenium은 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크이다.
3번 STAF는 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크이다. 3번의 내용은 NTAF에 대한 설명이다.
4번 FitNesse는 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크이다. 4번의 내용은 watir에 대한 설명이다.
정답: 1번
7) 다음 중 인터페이스 명세서의 항목이 아닌 것은?
1) 인터페이스 명
2) 오퍼레이션 명
3) 반환값
4) 컴포넌트명
해설:
인터페이스 명세서 항목
인터페이스 ID, 인터페이스명, 오퍼레이션명, 오퍼레이션 개요, 사전 조건, 사후 조건, 파라미터, 반환값 등
정답: 4번
8) 다음 중 인터페이스 객체 송 / 수신 시 발생할 수 있는 예외 원인이 아닌 것은?
1) 네트워크 및 서버 불안정
2) 데이터 트랜잭션 시 프로그램의 논리상 오류
3) 특수문자 등으로 파싱 시 오류
4) 수신 인터페이스 데이터 처리 시 프로그램의 논리적 결함
틀린 이유 분석: 인터페이스 객체 송 / 수신 시 발생할 수 있는 예외 원인에 대한 개념 부족.
해설:
2번은 송 / 수신 인터페이스 엔티티를 사용하여 인터페이스를 수행할 때 발생할 수 있는 예외 사항이다.
정답: 2번
9) 인터페이스 보안 기능을 적용할 때 DB, Schema, Entity 등의 접근 권한과 Procedure, Trigger 등 데이터베이스 동작 객체의 보안 취약점을 보완해야 하는 영역은?
1) Application
2) DataBase
3) Network
4) Transport
틀린 이유 분석: 중요도 C이라 안 봄.
해설:
인터페이스 보안 기능
네트워크 영역: 인터페이스 송 / 수신 간 스니핑등을 이용한 데이터 탈취 및 변조 위협을 방지하기 위해 네트워크 트래픽에 대한 암호화 설정.
애플리케이션 영역: 소프트웨어 개발 보안 가이드를 참조하여 애플리케이션 코드 상의 보안 취약점을 보완하는 방향으로 애플리케이션 보안 기능 적용.
데이터베이스 영역: 데이터베이스, 스키마, 엔티티의 접근 권한과 프로시저, 트리거 등 데이터베이스 동작 객체의 보안 취약점에 보안 기능 적용.
정답: 2번
3과목: 소프트웨어 설계
1장 인터페이스 구현
1) 데이터베이스의 구성 요소 중 개체에 대한 설명으로 적합하지 않은 것은?
1) 속성들이 가질 수 있는 모든 값들의 집합이다.
2) 데이터베이스에 표현하려고 하는 현실 세계의 대상체이다.
3) 유형, 무형의 정보로서 서로 연관된 ㅁ쳐 개의 속성으로 구성된다.
4) 파일의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 수행한다.
틀린 이유 분석: 개체에 대한 개념 부족.
해설:
속성들이 가질 수 있는 모든 값들의 집합은 도메인이라고 한다.
정답: 1번
2) what is the entity type definition correctly?
1) a set of attributes that have the same entities.
2) a set of entities that have the same domains.
3) a set of attributes that have the same domains.
4) a set of entities that have the same attributes.
틀린 이유 분석: 개체 타입(Entity Type)에 대한 개념 부족.
해설:
개체 타입(Entity Type)은 같은 개체를 갖는 속성들의 집합이다.
정답: 1번
3) 개체-관계 모델에 대한 설명으로 옳지 않은 것은?
1) 오너-멤버(Owner-Member) 관계라고도 한다.
2) 개체 타입과 이들 간의 관계 타입을 기본 요소로 이용하여 현실 세계를 개념적으로 표현한다.
3) E-R 다이어그램에서 개체 타입은 사각형으로 나타낸다.
4) E-R 다이어그램에서 속성은 타원으로 나타낸다.
틀린 이유 분석: 개체-관계 모델에 대한 개념 부족.
해설:
오너-멤버(Owner-Member) 관계라고도 불리는 데이터 모델은 논리적 데이터 모델 중 하나인 네트워크(망)형 데이터 모델이다.
정답: 1번
4) 다음 영문의 괄호에 적합한 Database System은?
영문 보기: Database management systems that process data from the perspective of a ( ) structure use a set of two dimensional tables to represent the logical relationships among the records of a user's files.
1) Hierarchical Database
2) Network Database
3) Relational Database
4) Object-oriented Database
틀린 이유 분석: 데이터베이스 시스템에 대한 개념 부족.
해설:
관계형 데이터베이스(Relational Database) 구조의 측면에서 데이터를 처리하는 데이터베이스 관리 시스템은 사용자의 파일에 있는 레코드들의 논리적 관계를 나타내는 일련의 2차원적 테이블(표)을 사용한다.
정답: 3번
5) 관계대수에 대한 설명으로 옳지 않은 것은?
1) 릴레이션을 처리하기 위한 연산의 집합으로 피연산자가 릴레이션이고 결과도 릴레이션이다.
2) 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 특징을 가지고 있다.
3) 일반 집합 연산과 순수 관계 연산이 있다.
4) 수학의 Predicate Calculus에 기반을 두고 있다.
틀린 이유 분석: 관계 대수에 대한 개념 부족.
해설:
수학의 Predicate Calculus에 기반을 두고 관계 데이터베이스를 위해 제안된 것은 관계해석이다.
정답: 4번
6) 관계 데이터베이스의 정규화에 대한 설명으로 옳지 않은 것은?
1) 3NF는 무손실 조인 또는 종속성 보존을 저해하지 않고도 항상 3NF 설계를 얻을 수 있다.
2) 3NF는 정규형에서 모든 이행 종속을 제거하지 못한 경우라도 정보의 중복에 대한 문제가 존재하지 않는 장점을 가지고 있다.
3) 모든 BCNF(Boyce-Codd Normal Form)가 종속성을 보존하는 것은 아니다.
4) 모든 BCNF 스키마는 3NF에 속하게 되며, 따라서 BCNF가 3NF보다 한정적 제한이 더 많다.
틀린 이유 분석: 정규화에 대한 개념 부족.
해설:
3NF는 정규형에서 모든 이행 종속을 제거하지 못한 경우 정보의 중복에 대한 문제가 존재한다.
정답: 2번
7) 관계 데이터 모델링 중 BCNF(Boyce-Codd Normal Form)에 대한 옳은 설명으로만 짝지어진 것은?
보기)
ㄱ) - BCNF에 속하는 릴레이션은 반드시 제3정규형에 속한다.
ㄴ) - 제3정규형에 속하지만 BCNF에 속하지 않는 릴레이션이 있다.
ㄷ) - 복합 속성을 허용하지 않는다.
ㄹ) - 완전 함수적 종속성 개념에 기반을 두었다.
1) ㄱ
2) ㄱ, ㄴ
3) ㄱ, ㄴ, ㄷ
4) ㄱ, ㄴ, ㄷ, ㄹ
틀린 이유 분석: 관계 데이터 모델링 중 BCNF에 대한 정확한 이해 부족
해설:
BCNF는 복합 속성을 혀옹하며, 릴레이션의 모든 결정자가 후보키라는 개념에 기본을 두고 있다.
정답: 2번
8) 정규화에 관한 설명으로 옳지 않은 것은?
1) 릴레이션 R의 도메인들의 값이 원자 값만을 가지면 릴레이션 R은 제1정규형에 해당된다.
2) 릴레이션 R이 제1정규형을 만족하면서, 키가 아닌 모든 속성이 기본키에 완전 함수 종속이면 릴레이션 R은 제2정규형에 해당된다.
3) 정규형들은 차수가 높아질수록(제1정규형 -> 제5정규형) 만족시켜야 할 제약 조건이 감소된다.
4) 릴레이션 R이 제2정규형을 만족하면서, 키가 아닌 모든 속성들이 기본키에 이행적으로 함수 종속되지 않으면 릴레이션 R은 제3정규형에 해당된다.
틀린 이유 분석: 정규화에 대한 개념 부족.
해설:
정규형들은 차수가 높아질수록 만족시켜야 할 제약 조건이 증가한다.
정답: 3번
9) 데이터 사전에 대한 설명으로 부적합한 것은?
1) 여러가지 스키마와 이들 속에 포함된 사상들에 관한 정보도 컴파일되어 저장된다.
2) 데이터베이스를 실제로 접근하는 데 필요한 정보를 유지, 관리하며 시스템만이 접근한다.
3) 사전 자체도 하나의 데이터베이스로 간주되며, 시스템 카탈로그라고도 한다.
4) 데이터베이스가 취급하는 모든 데이터 객체들에 대한 정의나 명세에 관한 정보를 관리 유지한다.
틀린 이유 분석: 데이터사전에 대한 개념 부족.
해설:
데이터 사전은 테이블로 구성되어 있어 일반 사용자도 SQL을 이용하여 내용을 검색해 볼 수 있다. 하지만 데이터 사전의 내용을 변경할 수는 없다.
정답: 2번
2장 인터페이스 구현
1) 물리적 데이터베이스 설계 시 고려 사항으로 가장 거리가 먼 것은?
1) 레코드의 크기.
2) 파일에 대한 트랜잭션의 갱신과 참조 성향.
3) 수행될 질의와 트랜잭션의 예상 빈도.
4) 인덱스의 구조.
틀린 이유 분석: 데이터베이스 설계 시 고려 사항에 대한 개념 부족.
해설:
수행될 질의를 안다는 것은 요구사항 분석 이후의 내용이므로 개념적 설계 단계에서 고민할 문제이다.
정답: 3번
2) 다음 중 물리 데이터베이스 모델의 구성 요소인 테이블에 대한 설명으로 틀린 것은?
1) 테이블에는 데이터베이스의 모든 데이터가 저장된다.
2) 파티셔닝 테이블은 대용량의 테이블을 물리적 단위로 나눈 것 이다.
3) 외부 테이블은 외부 파일을 데이터베이스 내에 존재하는 일반 테이블처럼 이용할 수 있는 데이터베이스의 객체이다.
4) 클러스터 인덱스 테이블은 일반적인 인덱스를 사용하는 테이블에 비해 접근 경로가 단축된다.
틀린 이유 분석: 테이블에 대한 개념 부족.
해설:
파티셔닝 테이블은 대용량의 테이블을 논리적 단위인 파티션으로 나눈 것 이다.
정답: 2번
3) 트랜잭션의 정의 및 특징이 아닌 것은?
1) 한꺼번에 수행되어야 할 일련의 데이터베이스 연산집합
2) 사용자의 시스템에 대한 서비스 요구 시 시스템의 상태변환 과정의 작업 단위
3) 병행제어 및 회복 작업의 논리적 작업 단위
4) 트랜잭션의 연산이 데이터베이스에 모두 반영되지 않고 일부만 반영시키는 원자성의 성질
틀린 이유 분석: 트랜잭션에 대한 개념 부족.
해설:
트랜잭션의 특징 중 원자성은 트랜잭션의 연산이 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다는 성질이다. 즉 일부만 반영되어서는 안 된다는 것이다.
정답: 4번
4) A 은행에서 B라는 사람이 고객 인증 절차를 거쳐 잔액을 조회한 후, 타인에게 송금하는 도중에 장애가 발생하였을 경우 문제가 발생한다. 이러한 경우의 부작용을 방지할 수 있는 트랜잭션의 특성은?
1) 일관성
2) 고립성
3) 지속성
4) 원자성
틀린 이유 분석: 트랜잭션 특성에 대한 개념 부족.
해설:
A은행에서 B라는 사람이 고객 인증 절차를 거쳐 잔액을 조회한 후, 타인에게 송금하는 도중에 장애가 발생하였을 경우 트랜잭션이 완벽히 수행되지 않았으므로 트랜잭션이 취소되어야 한다. 이러한 트랜잭션의 특징을 원자성이라고 한다.
정답: 4번