포스트

모의고사 33회

Q. 다음은 스키마 유형에 관한 설명이다. () 안에 들어갈 용어를 쓰시오.

외부 스키마(External Schema), 개념 스키마(Conceptual Schema), 내부 스키마(Internal Schema)

  • ( ① ): 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다. 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 한다. 하나의 데이터베이스 관리 시스템에서는 여러 개가 존재할 수 있다.
  • ( ② ): 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 것이다. 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 명세로서 하나만 존재한다.
  • ( ③ ): 데이터베이스의 물리적 구조를 정의한 것으로, 물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세로서 하나만 존재한다. 물리적 저장 구조에 대한 정의를 기술하고, 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
  • 스키마의 유형은 아래와 같다.
    • 외부 스키마(External Schema)
      • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조
      • 전체 데이터베이스의 한 논리적인 볼 수 있으므로 서브 스키마라고도 함
      • 하나의 데이터베이스 관리시스템에는 여러 개가 존재할 수 있음
      • 사용자 뷰를 나타냄
    • 개념 스키마(Conceptual Schema)
      • 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 스키마
      • 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 명세로서 하나만 존재
    • 내부 스키마(Internal Schema)
      • 데이터베이스의 물리적 구조를 정의한 스키마로 물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세로서 하나만 존재
      • 물리적 저장 구조에 대한 정의를 기술하고, 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마

Q. MSA(Microsoft Service Architecture), BaaS(Backend as as Service), FaaS(Function as a Service) 등의 기술을 활용하여 서버가 없는 것과 같이 직접 해당 이벤트에 접근하여 처리하는 컴퓨터 기술은 무엇인가?

서버리스 컴퓨팅(Serverless Computing)

  • MSA, BaaS, FaaS 등의 기술을 활용하여 서버가 없는 것과 같이 직접 해당 이벤트에 접근하여 처리하는 컴퓨팅 기술은 서버리스 컴퓨팅 기술이다.
  • Backend as a Service
    • SNS 위치서비스와 같은 백엔드 기능을 클라우드화하는 모바일 앱 개발에 주로 사용하는 클라우드 서비스

Q. 하나의 멀티미디어 콘텐츠(영화, 음악 등)를 N개의 기기에서 ‘연속적으로’ 자유롭게 이용할 수 있는 서비스 및 기술을 무엇이라고 하는가?

엔 스크린(N-Screen)

  • 하나의 멀티미디어 콘텐츠(영화, 음악 등)를 N개의 기기에서 ‘연속적으로’ 자유롭게 이용할 수 있는 서비스 및 기술은 엔 스크린이라고 부른다.

Q. 최근 많은 수의 스마트폰 가입자가 5G 서비스를 이용하고 있지만, 아직 속도와 다양한 네트워크 서비스 측면에서 부족한 점이 많다. 5G 서비스가 정착하기 위해서는 5G 구현을 위한 기술 성숙도가 중요하다. 특히 하나의 물리적 코어 네트워크를 독립된 다수 가상 네트워크로 분리한 뒤 고객 맞춤형 서비스를 제공하는 5G 핵심 기술인 ( ① )기술은 SDN과 NFV 기술을 활용하여 하나의 물리적인 망에 여러 개의 논리적인 망을 만들어 비용 절감이 가능하다. 또한, 동일한 시간, 주파수, 공간 자원상에 두 대 이상의 단말에 대한 데이터를 동시에 전송하여 주파수 효율을 향상시키는 비직교 다중 접속 기술인 ( ② ) 기술 역시 5G 기술 정착을 위해서 중요하다. () 안에 들어갈 용어를 쓰시오.

네트워크 슬라이싱(Network Sclicing), NOMA(Non-Orthogonal Multiple Access)

  • 네트워크 슬라이싱 기술과 NOMA 기술은 아래와 같다.
    • 네트워크 슬라이싱(Network Slicing)
      • 하나의 물리적 코어 네트워크를 독립된 다수 가상 네트워크로 분리한 뒤 고객 맞춤형 서비스를 제공하는 5G 핵심 기술
      • SDN과 NFV 기술을 활용하여 하나의 물리적인 망에 여러 개의 논리적인 망을 만들어 비용 절감 가능
    • NOMA(Non-Orthogonal Multiple Access)
      • 동일한 시간, 주파수, 공간, 자원상에 두 대 이상의 단말에 대한 데이터를 동시에 전송하여 주파수 효율을 향상시키는 비직교 다중 접속 기술
  • 네트워크 가상화 관련 기술은 다음과 같다.
    • SDN(Software Defined Network)
      • 개방형 API(오픈플로우) 기반으로 네트워크 장비의 트래픽 경로를 지정하는 컨트롤 플레인(Control Plane)과 트래픽 전송을 수행하는 데이터 플레인(Data Plane)을 분리하여 네트워크 트래픽을 중앙 집중적으로 관리하는 기술
    • NFV(Network Function Virtualization)
      • 범용 하드웨어(서버/스토리지/스위치)에 가상화 기술을 적용하여 네트워크 기능을 가상 기능(Function)으로 모듈화하여 필요한 곳에 제공(스위치, 라우터 등)하는 기술

Q. 다음은 테이블 및 컬럼명에 대한 명세이다. 학생명이 ‘이지은’, 나이가 ‘29’, 전공이 ‘실용음악과’인 학생을 학생 테이블에 삽입하는 쿼리를 작성하시오.

1
INSERT INTO STUDENT(NAME, AGE, MAJOR) VALUES ('이지은', 29, '실용음악과');
1
2
테이블명 : STUDENT(학생 테이블)
컬럼명 : NAME(학생명), AGE(나이), MAJOR(전공)
  • INSERT는 데이터 내용을 삽일할 때 사용하는 명령어이다.

    1
    
      INSERT INTO 테이블명(속성명1, ...) VALUES (데이터1, ...);
    
    • 속성의 데이터 개수, 데이터 타입이 일치해야 함
    • 속성의 타입이 숫자인 경우 데이터는 따옴표를 붙이지 않아도 되며, 문자열인 경우 따옴표를 붙여야 함
    • 속성명은 생략 가능

Q. 다음은 C언어 코드이다. 출력 결과를 쓰시오.

1 14 22

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
void main() {
	int i, j;
	int temp;
	int a[5] = {14, 22, 53, 45, 1};
	
	for(i=0; i<4; i++) {
		for(j=0; j<4-i; j++) {
			if(a[j] > a[j+1]) {
				temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}
		}
	}
	
	for(i=0; i<3; i++) {
		printf("%d ", a[i]);
	}
}

Q. 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법은 무엇인가?

PERT

  • 일정관리 모델의 종류는 다음과 같다.
    • 주 공정법(CPM; Critical Path Method)
      • 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
      • 모든 자원 제약사항을 배제한 상태로 프로젝트의 시작과 끝을 나타내는 노드(Node)와 노드 간의 연결을 통해 공정을 계산하기 위한 액티비티(Activity) 표기법
    • PERT(Program Evaluation and Review Technique)
      • 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법
    • 중요 연쇄 프로젝트 관리(CCPM; Critical Chain Project Management)
      • 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법

Q. 다음이 설명하는 용어를 쓰시오.

나씨-슈나이더만(Nassi-Shneiderman) 차트

  • 구조적 프로그래밍 표현을 위해 사용하는 차트
  • 논리의 기술에 중점을 둔 도형식 표현 방법
  • 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조로 표현
  • 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합
  • 나씨 슈나이더만 차트는 구조적 프로그래밍 표현을 위해 사용하는 차트이고, 논리의 기술에 중점을 둔 도형식 표현 방법이다.

Q. 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램은 무엇인가?

활동 다이어그램(Activity Diagram)

  • 활동 다이어그램은 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램이다.
  • 오퍼레이션이나 처리 과정이 수행되는 동안 일어나는 단계적으로 표현한다.
  • 활동 다이어그램은 하나의 유스케이스 안이나, 유스케이스 사이에서 발생하는 복잡한 처리의 흐름을 명확하게 표현할 수 있다.
  • 활동 다이어그램 구성요소는 다음과 같다.
    • 시작점(Initial Node)
      • 활동의 시작(액션이나 액티비티 시작)을 의미
      • 하나의 다이어그램 안에는 하나의 시작점만 존재
      • 검은색 동그라미로 표현

      이미지

    • 전이(Transition)
      • 실행의 흐름을 나타냄
      • 화살표로 표현

      이미지

    • 액션(Action)/액티비티(Activity)
      • 어떠한 일들의 처리와 실행을 의미
      • 액션(Action)은 더 이상 분해할 수 없는 단일 작업이고, 액티비티(Activity)는 몇 개의 액션으로 분리될 수 있는 작업
      • 모서리가 둥근 사각형으로 표현하고, 둥근 사각형 안에 액션이나 액티비티 명칭 기술

      이미지

    • 종료점(Final Node)
      • 처리의 종료를 의미
      • 하나의 다이어그램 안에는 여러 개의 종료 노드가 있을 수 있음
      • 검은색 동그라미를 포함한 원으로 표현

      이미지

    • 조건(판단)노드(Decision Node)
      • 조건에 따른 제어 흐름의 분리를 표현
      • 마름모로 표현하고 들어오는 제어 흐름은 한 개이고, 나가는 제어 흐름은 여러 개로 표현

      이미지

    • 병합 노드(Merge Node)
      • 여러 경로의 흐름이 하나로 합쳐진 것을 표현
      • 마름모로 표현하고 들어오는 제어 흐름은 여러 개이고, 나가는 제어 흐름은 한 개로 표현

      이미지

    • 포크 노드(Fork Node)
      • 평행적으로 수행되는 흐름을 나누는 노선도
      • 굵은 가로선으로 표현하고 들어오는 액티비티 흐름은 한 개이고, 나가는 액티비티 흐름은 여러 개

      이미지

    • 조인 노드(Join Node)
      • Fork Node로 나눠진 흐름을 다시 하나로 합치는 노드
      • 굵은 가로선으로 표현하고 들어오는 액티비티 흐름은 여러 개이고, 나가는 액티비티 흐름은 한 개

      이미지

    • 구획면(Swim Lane)
      • 액티비티 수행을 담당하는 주체를 구분하는 면
      • 가로 또는 세로 실선을 그어 구분

      이미지


Q. 다음은 [성적] 테이블을 이용하여 쿼리를 실행한 결과는 [결과] 테이블과 같다. [결과] 테이블에 들어갈 값을 쓰시오.

2

[성적]

이름과목
지기쌤DB
두음쌤DB
수제비쌤알고리즘
보안쌤알고리즘
클라우드쌤알고리즘
빅데이터쌤알고리즘
1
SELECT COUNT(DISTINCT 과목) FORM 성적;

[결과]

COUNT(DISTINCT 과목)
 
  • DISTINCT(중복제거)의 경우 동일한 튜플을 제거하고 검색한다.
  • 쿼리가 SELECT DISTINCT 과목 FROM 성적;일 경우 과목에서 동일한 튜플들이 하나만 조회된다.

    DISTINCT 과목
    DB
    알고리즘
  • DISTINCT된 결과가 DB, 알고리즘 2개이므로 COUNT 값은 2가 된다.

    COUNT(DISTINCT 과목)
    2

Q. 다음은 C언어 코드이다. 출력 결과를 쓰시오.

lo

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
void main() {
	char *p = "hello";
	p++;
	
	if(*p == 'e') {
		printf("%s", p+2);
	}
	else {
		printf("%c", *(p+3));
	}
}
  • char *형 포인터 변수 p를 선언과 동시에 문자열 “hello”로 초기화한다.
  • 포인터 변수 p를 1 증가시킨다.
  • if 문에서 *p가 ‘e’와 같을 경우 p+2 문자열을 화면에 출력하고 아닐 경우 *(p+3)을 출력한다. *p 값은 ’e’이므로 p+2인 문자열 “lo”를 출력한다.
초기p*(p+1)*(p+2)*(p+3)*(p+4)
p++ 이후 p*(p+1)*(p+2)*(p+3)
문자열hello

Q. 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 소프트웨어 아키텍처 패턴은 무엇인가?

MVC 패턴(Model View Controller Pattern)

  • 소프트웨어 아키텍처 패턴의 유형은 다음과 같다.
    • 브로커 패턴(Broker Pattern)
      • 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴
    • 계층화 패턴(Layered Pattern)
      • 계층화 패턴은 시스템을 계층(Layer)으로 구분하여 구성하는 패턴
      • 각 하위 모듈들은 특정한 수준의 추상화를 제공하고, 각 계층은 다음 상위 계층에 서비스를 제공
    • 클라이언트-서버 패턴(Client-Server Pattern)
      • 하나의 서버와 다수의 클라이언트로 구성된 패턴
    • 파이프-필터 패턴(Pipe-Filter Pattern)
      • 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴
    • MVC 패턴(Model View Controller Pattern)
      • 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴

Q. 기존에 생성된 클래스를 재사용할 수 있도록 중간에 맞춰주는 역할을 하는 인터페이스를 만드는 패턴으로, 상속을 이용하는 클래스 패턴과 위임을 이용하는 인스턴스 패턴의 두 가지 형태로 사용되는 디자인 패턴은 무엇인가?

어댑터(Adapter) 패턴

  • 디자인 패턴 중 구조 패턴은 아래와 같다.
    • Adapter
      • 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴으로, 상속을 이용하는 클래스 패턴과 위임을 이용하는 인스터스 패턴의 두 가지 형태로 사용되는 디자인 패턴
      • 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움
    • Decorator
      • 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴으로 기능 확장이 필요할 때 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주어 상속의 대안으로 사용하는 디자인 패턴
      • 기존 객체의 결합을 통해 기능을 동적으로 유연하게 확장
    • Proxy
      • ‘실제 객체에 대한 대리 객체’로 실제 객체에 대한 접근 이전에 필요한 행동을 취할 수 있게 만들며, 이 점을 이용해서 미리 할당하지 않아도 상관없는 것들을 실제 이용할 때 할당하게 하여 메모리 용량을 아낄 수 있으며, 실제 객체를 드러내지 않게 하여 정보은닉의 역할도 수행하는 디자인 패턴
      • 특정 객체로의 접근을 제어하기 위한 용도로 사용
    • Composite
      • 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 하는 패턴
      • 복합 객체와 단일 객체를 동일하게 취급
    • Facade
      • 복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로써 사용자와 시스템 간 또는 여타 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴으로 오류에 대해서 단위별로 확인할 수 있게 하며, 사용자의 측면에서 단순한 인터페이스 제공을 통해 접근성을 높일 수 있는 디자인 패턴
      • 통합된 인터페이스 제공
    • Flyweight
      • 다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화하여 공유함으로써 메모리를 절약하고, ‘클래스의 경량화’를 목적으로 하는 디자인 패턴
      • 여러 개의 ‘가상 인스턴스’를 제공하여 메모리 절감
    • Bridge
      • 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴
      • 구현뿐만 아니라, 추상화된 부분까지 변경해야 하는경우 활용

    이미지


Q. UI 설계 원칙 중 학습성(Learnability)이란 무엇인지 쓰시오.

학습성은 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작해야 하는 원칙이다.

  • UI 설계 원칙은 아래와 같다.

    설계 원칙설명
    직관성(Intuitiveness)누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함
    유효성(Efficiency)정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작
    학습성(Learnability)초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작
    유연성(Flexibility)사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도로 제작

Q. 다음은 공격 기법에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

스피어 피싱(Spear Phishing), APT(Advanced Persistent Threat)

최근 특정 타겟을 노리는 공격 기법이 점차 증가하고 있다. 그중 ( ① )은/는 사회 공학의 한 기법으로, 특정 대상을 선정한 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송하여, 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인정보 탈취하는 공격 기법이고, ( ② )은/는 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법으로 특수목적의 조직이 하나의 표적에 대해 다양한 IT 기술을 이용하여, 지속적으로 정보를 수집하고, 취약점을 분석하여 피해를 주는 공격 기법이다.

  • 특정 타깃을 노리는 공격 기법 중 스피어피싱과 APT에 대한 개념은 아래와 같다.

    공격 기법설명
    스피어피싱(Spaar Phishing)사회 공학의 한 기법으로, 특정 대상을 선정한 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송하여, 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인 정보를 탈취하는 공격 기법
    APT 공격(Advanced Persistent Threat)특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법으로 특수목적의 조직이 하나의 표적에 대해 다양한 IT 기술을 이용하여, 지속적으로 정보를 수집하고, 취약점을 분석하여 피해를 주는 공격 기법

Q. 다음은 접근 통제와 관련한 용어이다. () 안에 들어갈 용어를 쓰시오.

식별(Identification), 인증(Authentication), 인가(Authorization)

  • ( ① )은/는 자신이 누구라고 시스템에 밝히는 행위로 객체에게 주체가 자신의 정보를 제공하는 활동이다.
  • ( ② )은/는 주체의 신원을 검증하기 위한 활동으로 주체의 신원을 객체가 인정해 주는 행위이다.
  • ( ③ )은/는 인증된 주체에게 접근을 허용하는 활동으로 특정 업무를 수행할 권리를 부여하는 행위이다.
  • 접근 통제 관련 용어 중 식별, 인증, 인가에 대한 설명은 다음과 같다.

    구분설명
    식별(Identification)자신이 누구라고 시스템에 밝히는 행위로 객체에게 주체가 자신의 정보를 제공하는 활동
    인증(Authentication)주체의 신원을 검증하기 위한 활동으로 주체의 신원을 객체가 인정해주는 행위
    인가(Authorization)인증된 주체에게 접근을 허용하는 활동으로 특정 업무를 수행할 권리를 부여하는 행위

Q. 다음은 IT와 기간산업의 융합, IoT 확산과 함께 점차 발전하는 기술에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

Wi-SUN(Wireless Smart Utility Network)

()은/는 IEEE 802.15.4g 표준에 기반을 둔 기술로, 900MHz 대역을 활용한 장거리 무선 통신 기술로 스마트 그리드와 연계하여 전기, 수도, 가스 등의 공급자가 무선 네트워크를 이용하여 에너지를 효율적으로 관리할 수 있도록 특화된 무선 통신 기술이다.

  • 신기술 용어 중에서 스마트 그리드와 Wi-SUN의 개념은 아래와 같다.

    용어설명
    스마트 그리드(Smart Grid)전기 및 정보통신기술을 활용하여 전력망을 지능화, 고도화함으로써 고품질의 전력서비스를 제공하고 에너지 이용 효욜을 극대화하는 전력망
    Wi-SUN(Wireless Smart Utility Network)IEEE 802.15.4g 표준에 기반을 둔 기술로, 900MHz 대역을 활용한 장거리 무선 통신 기술로 스마트 그리드와 연계하여 전기, 수도, 가스 등의 공급자가 무선 네트워크를 이용하여 에너지를 효율적으로 관리할 수 있도록 특화된 무선 통신 기술

Q. 다음은 자바 코드이다. 밑줄 친 곳에 들어갈 알맞은 코드를 쓰시오.

implements

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
interface ICar {
	void move();
}
class ConCar       ICar {
	public void move() {
		System.out.print("이동");
	}
}

public class Soojebi {
	public static void main(String[] args) {
		ICar c = new ConCar();
		c.move();
	}
}
  • 인터페이스를 선언하기 위해 interface 키워드를 사용한다. ICar는 인터페이스로 move 메서드를 선언만 한다.
  • ConCar 클래스에서 ICar의 구현을 위해 implements 키워드를 사용한다.
  • move 메서드에서 “이동”을 화면에 출력한다.
  • main 메서드에서 인터페이스를 선언하고 ConCar() 생성자를 호출한다.
  • c.move()를 호출한다.

Q. 다음은 자바 코드이다. 출력 결과를 쓰시오.

03

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Clac {
	void func() {
		System.out.println("매개변수 없음");
	}
	void func(int a) {
		System.out.print(a);
	}
	void func(int a, int b) {
		int c = a + b;
		for(int i=0; i<c; i++) {
			if(i%3 == 0) {
				func(i);
			}
		}
	}
}
class Soojegi {
	public static void main(String[] args) {
		Calc c = new Calc();
		c.func(2, 3);
	}
}
  • main 메서드에서 Calc c = new Calc() 문장을 수행하여 객체 c를 생성한다.
  • c.func(2, 3); 문장에서 매개변수는 2개이므로 세 번째 func()가 호출된다. c에는 5가 대입되며 for 반복문은 0부터 5까지 반복하며 3으로 나눈 나머지가 0인 0과 3을 func(i)에 넘겨주어 화면에 0과 3을 출력한다.


참고 자료


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.