728x90
728x90

이번 응용소프트웨어기초기술활용 테스트에서는 운영체제 기초 활용,
데이터베이스 기초 활용, 네트워크 기초 활용,
기본 개발환경 구축을 테스트하는 것으로 40분간 20문항의 문제를 풀면 됩니다. 


자바기반 앱개발 & 웹서비스 구축개발 :: 애플리케이션테스트 문제

자바기반 앱개발 & 웹서비스 구축개발 :: 프로그래밍언어활용 문제와 답

자바기반 앱개발 & 웹서비스 구축개발 :: 애플리케이션 배포 문제와 답

자바기반 앱개발 & 웹서비스 구축개발 :: 데이터베이스 구현 문제


 

 

1. 다음 보기 중 운영체제(Operating System)로 볼 수 없는 것은?      3

1) Unix, Linux
2) Android OS, Tizen
3) JVM, .Net Framework
4) Windows, DOS
5) iOS, MacOs

프레임워크 : 소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경

 

 

 

2. 다음 중 운영체제가 관리하는 대상으로 보기 어려운 것은?      5

1) 메모리와 같은 기억장치
2) 마우스, 키보드 등의 입력장치
3) 모니터와 같이 연결된 출력장치
4) SSD를 포함한 하드디스크 등의 저장장치
5) 네트워크로 구성된 원격지 컴퓨터와 같은 서버장치

운영체제가 관리하는 대상 : 프로세스 관리, 기억 장치 관리, 입출력 장치 관리, 정보 관리

 

 

 

 

3. 운영체제에서 가장 핵심적인 부분으로 시스템을 구성하는 중요한 자원들(메모리, 파일, 주변 장치)을 관리하며 시간관리, 프로세스 관리, CPU 스케줄링 등의 컴퓨터 운영의 핵심사항을 처리하는 것은?       1

1) 커널 (kernel)
2) 파일시스템 (file system)
3) 인터페이스 (Interface)
4) 데이터관리 (Data control)
5) 쉘 (shell)

커널 : 컴퓨터 운영체계의 가장 중요한 핵심으로써 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다.
커널에는 종료된 입출력연산 등 커널의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세스들에게 컴퓨터의 사용권을 부여하는 수퍼바이저(supervisor) 등이 포함된다. 또한 메모리나 저장장치 내에서 운영체계의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리관리자를 가지고 있다. 커널의 서비스는 운영체계의 다른 부분이나, 흔히 시스템 호출이라고 알려진 일련의 프로그램 인터페이스들을 통해 요청된다.


셸(shell) : 셸은 운영체계의 가장 바깥부분에 위치하고 있으면서, 사용자 명령어에 대한 처리를 담당. 커널과 대비.

인터페이스 : 사물과 사물 사이 또는 사물과 인간 사이의 경계에서, 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜

 

 

 

 

4. 리눅스 기본 필수 명령어 중, 해당 디렉터리에 있는 파일의 목록(list)을 나열하는 것은?    2

1) dir
2) ls
3) cd
4) pwd
5) cat

CLI (Command Line Interface)환경에서 운영체제의 기본명령어 확인하기.

 

 

 

5. 다음 중 GUI (Graphics User Interface)가 아닌 CLI (Command Line Interface)에 해당하는 것은?    1

1) Windows10의 cmd
2) Mac의 시에라 finder
3) Android의 위젯
4) 우분투 리눅스의 X윈도우
5) 애플워치의 컴플리케이션

애플워치의 컴플리케이션 : 시계 내에 시간(시, 분, 초)과 날짜(요일, 날짜) 외에 다양한 기능이 더해진 시계

 

 

 

6. ER 표기법에 대한 설명 중 옳지 않은 것은?   3

 

관계형 데이터베이스의 설계를 위한 ER 다이어그램을 작성하는 방법의 이해 확인 >> 이동

 

데이터 모델링

데이터 모델링 데이터 모델링이란 현실 세계의 업무적인 프로세스를 물리적으로 데이터베이스화 하기 위한 과정이다. 개념적 모델링 개념적 모델링은 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인..

psun.tistory.com

 

 

 

 

 

7. 다음의 내용을 모두 포함하는 데이터베이스를 ER-다이어그램으로 설계하시오. IE표기법으로 나타내시오.

1) 가족과 직원이라는 개체가 있습니다.
2) 직원에는 직원번호, 이름, 직책이라는 속성들이 있으며 직원번호로 직원을 식별 가능합니다.
3) 직원은 부양할 가족이 있을 수 있습니다.
4) 가족은 이름과 관계의 정보를 가지고 이름이 식별자(부분키) 입니다.


 

해설>> 

 

 

 

8. 아래는 java 환경에서 jdbc 드라이버를 이용하여 데이터베이스를 연동하는 예이다. 다음 설명 중 틀린 것은?       1

//booklist.java

import java.sql.Connection;

public class booklist{
	Connection con;

	public booklist(){
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		/* 11g express edition은 orcl 대신 XE를 입력한다. */
		String userid="madang";
		String pwd = "madang";

		try { /* 드라이버를 찾는 과정 */
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("드라이버 로드 성공");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try { /* 데이터베이스를 연결하는 과정 */
			System.out.println("데이터베이스 연결 준비 ...");
			con = DriverManager.getConenction(url, userid, pwd);
			System.out.println("데이터베이스 연결 성공");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

 

1) DB연결 문자열의 localhost는 웹서버 ip를 의미한다.
2) Class.forName() 메소드는 jdbc.jar의 클래스를 임포트시킨다.
3) DB연결 문자열의 마지막 요소는, 예를 들어 orcl 혹은 xe는 db의 sid이다.
4) DB연결 메소드의 파라미터는 DB연결문자열, 오라클 사용자, 비밀번호 이렇게 총 3가지이다.
5) ClassNotFoundException은 jar파일 패키지 안에 클래스가 없을 시 발생하는 예외이다.

 

localhost는 컴퓨터 네트워크에서 사용하는 루프백 호스트명으로, 자신의 컴퓨터를 의미한다. IPv4에서의 IP 주소는 127.0.0.1이며, IPv6에서는::1로 변환된다. 로컬 컴퓨터를 원격 컴퓨터인 것처럼 통신할 수 있어 테스트 목적으로 주로 사용된다. / SID :기호 식별자 ① segment identifier 세그먼트 식별자 ② symbolic instruction debugger 기호 명령어 디버거. 

참고 >> https://helloworld2016.tistory.com/78

 

 

 

9. 다음 중 java 언어를 사용하여 DB를 연동할 시, SQL 패키지에 해당하는 클래스의 메소드가 아닌 것은?      1

1) Class의 forName()
2) Statement의 executeQuery()
3) Connection의 createStatement()
4) ResultSet의 next()
5) SQLException의 printstacktrace()

데이터베이스를 활용하여 응용프로그램에서 구현시 관계된 API를 사용할 수 있는지 확인

 

 

 

10. 데이터 중복으로 인해 릴레이션 조작 시 예상하지 못한 곤란한 현상이 발생한다. 이를 무엇이라고 하는가?      4

1) nomalization
2) degree
3) cardinality
4) anomaly
5) relationship

관계형데이터베이스 설계시 발생하는 anomaly 이상현상에 대한 질문

 

 

 

 

11. 다음의 두 릴레이션 간의 관계에서 왜래키는?     2

교수 (교수번호, 교수이름, 학과번호, 직급)
학과 (학과번호, 학과이름, 학과장교수번호, 학생수)

1) 교수이름
2) 학과번호
3) 직급
4) 학생수
5) 학과이름

 

 

 

 

12. 다음 테이블에서 기본키와 왜래키는 무엇인지 찾아보시오.

학생

학번 이름 전공 교수번호
2010001 김사랑 컴공 P010
2010002 박사랑 모바일콘텐츠 P030
2010003 최사랑 모바일콘텐츠 P030
2010004 이사랑 산업공학 P010

 

교수

교수번호 이름
P010 박주현
P020 김주현
P030 황주현

 

다음 표의 키에 해당하는 속성 명을 기술하고 없을 경우 X를 표시하시오.

  기본키 외래키
학생 테이블 학번 교수번호
교수 테이블 교수번호 x

 

관계형데이터베이스 모델의 릴레이션 특징을 이해했는지 확인.

 

 

 

 

13. 다음 중 3-Tier 모델의 연결이 잘못 짝지어진 곳을 모두 고르시오.      4, 5

1) 오라클, 몽고DB - 데이터베이스
2) HTML5 - 클라이언트
3) CSS - 클라이언트
4) JSP - 클라이언트
5) javaScript - 서버

 

계층(Tier) : 컴포넌트들의 물리적인 분리 / 층(Layer) : 컴포넌트들의 논리적인 분리
3-Tier에서 각 계층은 물리적으로도 독립적이며 각 계층의 변경이 다른 계층에 의존하지 않는다.

1. 프레젠테이션(클라이언트) 계층 : 응용 프로그램의 최상위로 서로 다른 층에 있는 데이터 등과 커뮤니케이션을 한다.

- 사용자 인터페이스를 지원한다. (인터넷 브라우저의 정적인 데이터를 제공한다.)    
- 이 계층은 GUI, 또는 front-end도 불린다.
- 비즈니스로직이나 데이터관리코드를 포함해서는 안된다.
- 주로 웹서버를 뜻한다(물리적 : WEB서버)

ex) HTML, javascript, CSS, image

    

2. 애플리케이션 계층 : 비즈니스 로직 계층 또는 트랜잭션 계층이라고도 하는데, 비즈니스 로직은 워크스테이션으로부터의 클라이언트 요청에 대해 마치 서버처럼 행동한다. 차례로 어떤 데이터가 필요한지를 결정하고, 메인프레임 컴퓨터 상에 위치하고 있을 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동한다.

- 정보처리의 규칙을 가지고 있다.(동적인 데이터를 제공한다)
- middleware 또는 back-end로 불린다.
- 프레젠테이션코드나 데이터관리 코드를 포함해서는 안된다.
-주로 어플리케이션 서버를 뜻한다(물리적 : WAS서버)

ex) Java EE, ASP.NET, PHP

    

3. 데이터 계층 :  데이터베이스와 그것에 액세스해서 읽거나 쓰는 것을 관리하는 프로그램을 포함한다. 애플리케이션의 조직은 이것보다 더욱 복잡해질 수 있지만, 3계층 관점은 대규모 프로그램에서 일부분에 관해 생각하기에 편리한 방법이다.

-데이터베이스를 주로 뜻한다.
-DB 또는 File System를 접근 및 관리한다.
-back-end라고도 불린다.
-주로 DB서버를 뜻한다(물리적 : DB서버)

ex) MySQL DB, Oracle DB

 

3계층구조를 사용하면 각 계층별로 웹디자이너, 소프트웨어엔지니어, DB관리자가 역할분담을 하여 일을 효율적으로 할 수 있다.
회사 규모 및 사용자의 증가에 따라서 1,2,3계층 구조를 고려해야 한다.(물론 비용은 3계층으로 갈수록 많이 든다.)

[출처] 3 Tier Architecture(3계층 구조)|작성자 리모레모

 

 

 

 

 

14. 클라이언트-서버 네트워크 구성에서 다음 중 틀린 설명은?      5

1) listen - 서버가 클라이언트와의 연결을 대기하는 것
2) connection - 서버와 클라이언트가 연결되는 것
3) request  -  클라이언트가 서버에게 요청하는 것
4) response -  서버가 클라이언트에게 응답하는 것
5) route -  여러 클라이언트의 요청을 서버에서 순서대로 처리하는 것

..

 

 

 

 

15. 신뢰성이 없는 단순한 구조로 전송이 제대로 이루어 졌는지 확인하지 않기 때문에 응답속도가 빠른 실시간 스트리밍 등에 사용하기 위한 통신 프로토콜로 동영상 스트리밍 분야나, VoIP, mVoIP에서 사용하며 온라인 게임의 서버-클라리언트 통신에 주로 사용되는 것은 무엇인가?

* 네트워크에서 TCP/UDP 방식을 이해하는지 확인한다.
>> UDP (User Datagram Protocol)

...더보기

1. TCP/IP 프로토콜 구조

인터넷을 통해 통신을 수행하는 개체는 크게 종단 시스템과 라우터로 나눌 수 있다. 종단 시스템(end-system)은 최종 사용자(end-user)를 위한 애플리케이션을 수행하는 주체가 되며, 인터넷에 연결된 PC, 워크스테이션, PDA, 휴대폰 등이 여기에 속한다. 라우터(router)는 종단 시스템이 속한 네트워크와 다른 네트워크를 연결함으로써 서로 다른 네트워크에 속한 종단 시스템끼리 상호 데이터를 교환할 수 있도록 하는 장비다. 종단 시스템과 라우터간, 라우터와 라우터간, 그리고 종단 시스템과 종단 시스템간 통신을 수행하기 위해서는 정해진 절차와 방법을 따라야 하는데 이를 프로토콜(protocol)이라 부른다. 1~4는 모두 상호 약속한 프로토콜을 이용하여 통신을 수행한다.

인터넷에서 사용하는 핵심적인 프로토콜은 TCP와 IP로, 이를 포함한 각종 프로토콜을 총칭하여 TCP/IP 프로토콜이라 부른다. TCP/IP 프로토콜은 일반적으로 운영체제에서 그 구현을 제공하여, 일반 애플리케이션은 운영체제가 제공하는 TCP/IP 프로토콜의 서비스를 사용하여 통신을 수행하게 된다.

애플리케이션간 통신을 수행하기 위해서는 다양한 요구 조건을 만족시켜야 한다. 이러한 요구 조건의 예로는 통신할 대상을 지정하는 상호 약속된 방법, 전송 오류 확인 기능, 오류 발생 시 재전송 기능, 데이터의 순서 관계 유지 등을 들 수 있다. 일반적으로 이와 같은 기능은 프로토콜 수준에서 제공한다. 일반적으로 프로토콜은 기능별로 나누어 계층적으로 구현하며, TCP/IP 프로토콜도 이와 같은 구조를 따른다.

 

2-1. 네트워크 액세스 계층

네트워크 액세스 계층(network access layer)은 물리적 네트워크를 통한 실제적인 데이터 전송을 담당한다. 구성 요소로는 물리적인 신호를 처리하여 데이터를 송수신하는 네트워크 하드웨어 그리고 운영체제가 제공하는 디바이스 드라이버가 있다. 네트워크 액세스 계층에서는 하드웨어적으로 정의된 물리 주소(physical address)를 사용하여 통신을 수행하는데, 이러한 물리 주소는 네트워크 방식에 따라 서로 다르며, 일반적으로 상호 호환되지 않는다.

2-2. 인터넷 계층

인터넷 계층(Internet layer)은 네트워크 액세스 계층의 도움을 받아, 전송 계층이 내려 보낸 데이터를 종단 시스템까지 전달하는 역할을 한다. 네트워크 액세스 계층과 마찬가지로 여기서도 주소를 지정하는 방법이 필요하다. 여기서는 소프트웨어적으로 정의된 논리 주소를 사용하느데 이를 IP주소(Internet Protocol Address)라고 부른다. IP주소는 네트워크 액세스 계층에서 사용하는 물리 주소와는 무관하게 정의하며, 전세계적으로 유일성이 보장된다. 따라서 서로 다른 기술에 기반한 네트워크를 연결하여 인터-네트워크를 구성하는 데 핵심적인 역할을 한다. IP주소는 통신에 참여하는 종단 시스템을 유일하게 지정할 수 있는 방법을 제공하지만, 실제 데이터를 전송하려면 전송 경로를 알아야 한다. 따라서 전송 경로를 알아내기 위해 라우팅 작업이 필요하게 된다. 라우팅(routing)이란 목적지까지 데이터를 전달하기 위한 일련의 작업을 가리키는 용어로, 라우팅을 위한 정보를 획득하는 작업과 라우팅 정보를 기초로 실제 데이터를 전달(forward)하는 작업을 포함한다. 라우팅을 담당하는 전용 컴퓨터를 라우터(router)라 부르며, 라우터를 통해 다양한 종류의 네트워크가 연결되어 통신을 수행할 수 있다.

2-3. 전송 계층

전송 계층(transport layer)은 최종적인 통신 목적지를 지정하고, 오류 없이 데이터를 전송하는 역할을 한다. 인터넷 계층이 담당하는 역할은 IP주소와 라우팅을 이요하여 목적지 종단 시스템에 데이터가 도달할 수 있도록 하는 것이다. 그러나 통신의 최종 목적지는 컴퓨터가 아닌 해당 컴퓨터에서 실행되고 있는 프로그렘(프로세스)이다. 따라서 전송 계층에서는 해당 프로세스를 지정하는 일종의 주소를 사용하며, 이를 포트 번호(port number)라 부른다.

인터넷 계층의 IP가 제공하는 전송 서비스는 최선을 다하지만(best-effort), 신뢰성은 없다는(unreliable) 특징이 있다. 즉, 데이터에 문제가 생기면 목적지에 도달하지 못하는 상황이 발생할 수 있으며, 목적지에 도달하였더라도 실제 데이터의 내용이 손상됐을 가능성도 있게 된다. 전송 계층에서는 이러한 데이터 손실 또는 손상을 검출하여 잘못된 데이터가 목적지 프로세스에 전달되는 것을 방지한다.

TCP/IP 프로토콜에서 전송 계층에 해당하는 프로토콜로는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)이 있다.

2-4. 애플리케이션 계층

애플리케이션 계층(application layer)은 전송 계층을 기반으로 한 다수의 프로토콜(Telnet, FTP, HTTP, SMTP, ...)과 이 프로토콜을 이용하는 애플리케이션을 포괄한다.

 

3. 패킷 전송 원리

애플리케이션에서 보내는 데이터를 목적지까지 전송하기 위해서는 각각의 프로토콜에서 정의한 제어 정보(IP주소, 포트번호, 오류 체크 코드, ...)가 필요하다. 제어 정보는 위치에 따라, 앞쪽에 붙는 헤더(header)와 뒤쪽에 붙는 트레일러(trailer)로 나눌 수 있다. 이러한 제어 정보가 결합된 형태로 실제 데이터가 전송되는데 이를 패킷(packet)이라 부른다. 송신측에서 보낸 데이터는 TCP/IP/이더넷 계층을 지나면서 헤더 또를 트레일러 형태로 제어 정보가 덧붙여진 패킷이 생성된다. 이 패킷이 수신측에 도달하면 이더넷/IP/TCP 계층을 지나면서 차례대로 헤더 또는 트레일러가 제거되고 최종적으로 송신측이 보낸 데이터를 애플리케이션이 받게 된다.

패킷 전송 형태 (송신측, 수신측)

각 계층은 마치 동일한 위치의 상대편 계층과 통신을 하는 것으로 간주할 수 있다. 이로 인해 애플리케이션 프로그래머는 주고 받을 데이터에만 집중하여 구현하면 되고, 나머지 부분은 운영체제가 제공하는 프로토콜이 처리하는 것이다.

패킷 전송 형태 - 계층별

TCP/IP 계층간 통신

IP 주소, 포트 번호

TCP/IP 프로토콜을 이용하여 통신할 때는 IP주소와 포트 번호를 사용한다. IP주소는 32비트 값으로 일반적으로 8비트 단위로 구분하여 각각 10진수로 표기한다.(127.0.0.1)

폐쇄된 네트워크나 IP를 공유하는 경우가 아니라면 IP주소는 전세계적으로 유일한 값을 가진다. 라우터가 라우팅을 할 때는 IP헤더에 포함된 수신자 IP주소를 이용하며, 데이터를 받는 쪽에서 답장을 보내고자 할 때도 역시 IP헤더에 포함된 송신자 IP주소를 이용한다.

IP주소는 인터넷에 존재하는 호스트(종단 시스템, 라우터)를 유일하게 구별할 수 있지만 통신의 최종 주체인 프로세스를 식별하지는 못한다. 포트 번호는 각 프로세스를 구별하는 식별자다. 한 프로세스가 두 개 이상의 포트 번호를 사용하는 경우가 종종 있으며, 한 포트 번호를 두 개 이상의 프로세스가 사용하는 것도 가능하다. 따라서 포트 번호는 프로세스를 구별하는 식별자라기보다는 통신의 종착지를 나타내는 식별자로 보는 것이 바람직하다.

출처 : https://m.blog.naver.com/PostView.nhn?blogId=ehdrhs1004&logNo=220323625791&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

 

 

 

16. 다음 중 AJAX에 대한 설명으로 틀린 설명은?      4

1) 비동기 전송 방식이다.
2) 데이터의 형식은 XML 뿐만아니라 JSON도 지원한다.
3) 요청함수 구현 시 응답받을 콜백 함수의 참조를 지정한다.
4) 클라이언트 - 서버 사이의 통신 외에 서버내부 간의 통신에도 사용한다.
5) javascript로만 구현된다.

* 비동기 통신 방식을 이해하고 요청과 응답을 처리할 수 있으며, 콜백의 개념을 알고 있는 지 확인한다. 

AJAX : JavaScript의 라이브러리중 하나. Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자. 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법.
Ajax를 한마디로 정의하자면 JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술.

 

 

 

 

17. 인터넷 프로토콜로 사용되는 TCP/IP 의 계층화 모델 중 네트워크 계층에서 사용되는 프로토콜은?      3

1) FTP
2) SMTP
3) IP
4) UDP
5) TCP

* 네트워크의 TCP/IP 계층화 모델을 이해하는지 확인

 

 

 

18. http 프로토콜은 OSI 7 계층 중 어느 계층인가?      2

1) 데이터링크 계층
2) 응용 계층
3) 트랜스포트 계층
4) 세션 계층
5) 네트워크 계층

* OSI 7 계층의 이해 확인

 

 

 

19. 다음 중 IDE (통합개발환경)이 아닌 것은?        4

1) Visual Studio
2) Eclipse
3) Android Studio
4) SQL Developer
5) X-Code

 

 

 

20. git은 버전관리 패키지로써 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만 어떠한 집합의 파일의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. 리눅스 우분트 OS에서 CLI 명령어로 git 패키지를 설치하는 명령어를 서술하시오.

$ sudo ______________________________

* 버전관리 시스템 구축방법
>> apt-get install git

 

 

 

728x90
728x90
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v