아래 자바 코드에서 출력되는 값을 작성하시오.
class Static{
public int a = 20;
static int b = 0;
}
public class Test{
public static void main(String[] args) {
int a = 10;
Static.b = a;
Static st = new Static();
System.out.println(Static.b++);
System.out.println(st.b);
System.out.println(a);
System.out.print(st.a);
}
}
답:
10
11
10
20
static 메모리에 있는 변수는 일반적인 인스턴스 변수(Non-static 변수)와 다르게 프로그램 내 모든 객체와 공유된다
"static" int b = 0;
Static.b = a; // Static.b에 a값 (10) 할당
Static st = new Static(); // Static의 인스턴스인 st.b 값에도 10이 할당됨
// 정적(static)변수의 값은 해당 클래스의 모든 인스턴스가 공유한다
System.out.println(Static.b++); // 후위연산자, 10이 출력되고 1 증가 (Static.b는 11)
System.out.println(st.b); //st는 Static 클래스의 인스턴스, Static.b는 11인 상태, 따라서 11 출력
출제 : [프로그래밍 언어20 - 2.JAVA언어 – 3)스태틱(static)]
#include
int main(){
char a[] = "Art";
char* p = NULL;
p = a;
printf("%sn", a);
printf("%cn", *p);
printf("%cn", *a);
printf("%sn", p);
for(int i = 0; a[i] != ''; i++)
printf("%c", a[i]);
}
답:
Art
A
A
Art
Art
char a[] = “Art”; ← a[] : {‘A’, ‘r’, ‘t’, ‘\0’}
%s : 해당 포인터부터 문자열 출력. char * 형
%c : 해당 포인터의 문자 하나 출력. char 형
*(p+i)==p[i]==*&p[i]
출제 : [프로그래밍 언어13 - 1.C언어 – 13)포인터]
C에서 배열끝에 \0 널
- 출제 : [프로그래밍 언어13 - 1.C언어 – 13)포인터]
( )은/는 비동기적인 웹 애플리케이션의 제작을 위해 JavaScript와 XML을 이용한 비동기적 정보 교환 기법이다.
( )은/는 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다.
보통 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 쪽에서는 자바스크립트를 쓴다.
( )은/는 Google Map과 Google pages에서 사용한 기술에 기반하여 제작되었다.
Asynchronous JavaScript and XML, 비동기식 자바스크립트 XML
- 답 : AJAX
- 출제 : [네트워크01 – 2.데이터 포맷]
XML + 언어 = WSDL
XML + 프로토콜 = SOAP
XML + JAVA = AJAX
XML + 검색 = UDDI
XML + 대체 = JSON
가상 회선 : 다량 데이터
데이터그램 : 짧은 패킷
- 출제 : [네트워크02 – 3.OSI 7계층 및 프로토콜]
○ 2 계층(데이터링크 계층)에서 구현되는 터널링 기술 중 하나
○ L2F와 PPTP가 결합된 프로토콜로 VPN과 인터넷 서비스 제공자(ISP)가 이용
○ IPsec을 함께 사용하면 PPTP보다 훨씬 안전하지만 보안보다 익명화에 더 적합
- 답 : L2TP
시스코의 L2F(Layer 2 Forwarding) 와 PPTP을 조합하여 만든 VPN이다. 보통 IPsec과 같은 보안용 프로토콜과 같이 사용합니다.
○ 다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 또는 이를 이용한 응용 프로그램이다.
○ 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신할 수 있다.
○ 키(Key)를 통한 인증 방법으로 사용하려면 사전에 클라이언트의 공개키를 서버에 등록해야 한다.
○기본적으로는 22번 포트를 사용한다.
원격제어
SSH : 22, 암호화하여
telnet : 23, 평문으로
- 답 : 웜, 트로이목마, 바이러스 (ㄱ,ㄴ,ㄷ)
- 출제 : [보안02 – 5.보안 용어]
ㄱ- 자가복제 가능, 이메일 공유폴더 p2p 네트워크를 이용 스스로 전파(웜)
ㄴ-"사용자가 의도치 않은 소스코드 ~" 몰래 숨겨놓는다(트로이목마)
ㄷ - ㄱ과 같은 특성을 가지고 확장 된다. 스스로 전파 못한다 (바이러스)
* 웜 : 자기 복제, 자가 전파 가능 (숙주 필요 없음)
* 트로이목마 : 사용자가 의도치 않은 소스코드, 자기 복제 X (숙주 필요 없음)
* 바이러스 : 자기 복제 능력이 있으나 자가 전파는 안됨. (숙주 필요)
2진수를 10진수로. sum = sum + (input (①) (②)) * di;
- 답 : ① % ② 10 또는 2 또는 5 (출력이 46 나오면 정답)
- 출제 : [프로그래밍 언어05 - 1.C언어 – 5)제어문(if문, switch문, while문, do~while문, for문)]
( )은/는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.
( ) 프로토콜은 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용된다.
( ) 을/를 이용한 공격에는 ( ) Flooding가 있는데 ping 명령어를 통한 ( ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른작업을 하지 못하도록 하는 공격이다.
Internet Control Message Protocol(ICMP)
오류메세지 전송
- 출제 : [보안02 – 5.보안 용어]
( )은/는 복잡한 시스템을 개발하기 쉽도록 클래스나 객체을 조합하는 패턴에 속하며,
대리라는 이름으로도 불린다. 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해 주고,
외부에서는 객체의 세부인 내용을 숨기는 역할을 한다.
- 답 : Proxy
대리 = proxy
- 출제 : [디자인 패턴01]
릴레이션 스키마: 구조를 나타내는 릴레이션
릴레이션 인스턴스: 실제 값들
* 속디차: 속성(열) = 디그리 = 차수 = 컬럼 = 항목 = 필드 = 칸
* 튜카: 튜플(행) = 카디널리티 = 행 = 레코드 = 줄
[기본형식]
DELETE FROM 테이블명 [WHERE 조건];
- 답 : delete from 학생 where 이름='민수'
버블 정렬 - a[①] = t, sort(a, ②)
- 출제 : [프로그래밍 언어10 - 1.C언어 – 10)배열]
(1) idx2
(2) nx
{'한국', '중국', '베트남', '홍콩', '태국'}
- 출제 : [프로그래밍 언어22 - 3.Python언어 – 1)입출력 함수, 리스트, 문자열, 튜풀, 딕셔너리, 집합]
파이썬 딕셔너리형으로 "출력 결과의 순서는 상관 없습니다."
값이 중복되지 않아야 하며, 출력 결과는 중괄호 {} 및 , 와 ‘ ’ 을 생략 시 오답 처리 됩니다.
set에 사용되는 함수
add | 값 1개를 추가(중복값은 무시)
update| 값 여러개를 추가(중복값은 무시)
remove| 특정 값 제거(값이 없을 경우 무시)
SELECT 과목이름 ,MIN(점수) AS 최소점수 ,MAX(점수) AS 최대점수
FROM 성적
GROUP BY 과목이름 HAVING AVG(점수) >= 90
- 출제 : [SQL02 – 2.DML]
셀프웨구해오
SELECT 컬럼1, 컬럼2, ..., 집계함수
FROM 테이블명
[WHERE 조건]
GROUP BY 컬럼1, 컬럼2, ...
[HAVING 조건식(집계함수 포함)]
GROUP BY 구문 : 복수행 대상의 데이터 분석 시 그룹핑 대상이 되는 부분을 선별해야 하는 경우 사용
HAVING 구문 : GROUP BY 구문의 기준 항목이나 소그룹 집계 함수를 활용한 조건을 적용하기 위해 사용
자바 [기출]
obj.getName()이 Vehicle의 메소드를 호출한 이유는 Car 클래스에 getName() 메소드가 없기 때문입니다.
- 답 : Vehicle name:Spark
- 출제 : [프로그래밍 언어21 - 2.JAVA언어 – 4)생성자, 상속, 오버라이딩, 오버로딩, 추상 클래스]
스키마
- 답 : ㉠ 외부, ㉡ 개념, ㉢ 내부
- 출제 : [데이터베이스01 - 1.데이터베이스 개념]
✨#외개In
외부 : 사용자 뷰
개념 : 전체적인 뷰
내부 : 물리적 저장장치
화이트박스 분기 커버리지 [기출]
분기 커버리지 : 결정(decision) 커버리지라고도 불림. 분기점(branch, 두개로 나뉘는 부분, 마름모) 위주로 테스트
참 YES : 1234561
거짓 NO : 124567
구문 커버리지 : 1234567
분기 커버리지 : 1234567, 1234561
조건 커버리지 : 1234567, 1234567, 1234561, 1234561
- 답 : ① 1234561 ② 124567 또는 ① 1234567 ② 124561
- 출제 : [테스트 수행 및 결함 조치01 – 4.테스트 커버리지]
1) Child obj = new Child(); 에서 생성자 호출
→ [class Child] Child() { this(5000); } → Child(int x) { this.x = x; } → [class Parent] Parent() { this(500); } → Parent(int x) { this.x = x; } → Parent의 x값 : 500 → Child의 x값 : 5000
=> obj 객체 내 Parent 클래스의 x값은 500, Child 클래스의 x값은 5000이 된다
2) obj.getX();
→ [class Parent] int getX() { return x; } (Child에서 getX() 메소드를 오버라이드 하지 않았으므로 Parent의 getX() 메소드를 호출한다)
=> obj 객체 내 Parent 클래스의 x값인 500을 리턴