자바스크립트는 클래스 기반이 아니라 프로토타입 기반의 객체지향 언어다. 클래스를 먼저 정의하고 객체를 만드는 방식이 아니라, 이미 있는 객체를 복사하거나 확장해 상속을 구현한다. '자바스크립트는 클래스 기반 언어'라고 설명하면 틀린 선지가 된다.
C언어의 라이브러리도 구분한다. stdlib.h는 문자열과 수치 간 변환, 동적 메모리 할당 같은 범용 함수를 포함하는 표준 라이브러리다. 문자열을 정수형으로 변환하는 함수는 atoi이고, 부동소수점 변환은 atof, 정수에서 문자열로의 변환은 itoa, 올림은 ceil이다. 문자열 처리 함수에서 두 문자열을 비교하는 것은 strcmp이고, 연결(concat)은 strcat이 담당한다.
라이브러리의 개념도 함께 본다. 표준 라이브러리는 언어가 기본으로 제공하는 기능이고, 외부 라이브러리는 별도로 설치해야 한다. 이 둘을 반대로 설명한 선지가 틀린 설명이 된다.
Java에서는 사용하지 않는 객체를 정리하는 모듈이 있다. 힙에 남아 있으나 변수가 참조값을 잃거나 변수 자체가 없어져 더 이상 사용되지 않는 객체를 제거하는 역할을 하는 것은 Garbage Collector다. Java의 표준 출력 클래스 System.out에는 printing이라는 메서드가 존재하지 않는다.
같은 세트에 섞여 나오는 기본 개념도 정리한다. 모듈 사이의 결합도는 낮을수록 좋은 설계다. C언어 변수명에는 하이픈(-)을 쓸 수 없고, Cobol은 컴파일러를 거치는 전통적인 컴파일 언어이므로 스크립트 언어가 아니다.
예제
선지 판단은 자바스크립트를 프로토타입 기반 언어로 읽는지, stdlib.h를 범용 함수를 담은 표준 라이브러리로 보는지, 문자열을 정수로 바꾸는 함수를 atoi로 짝지었는지, 두 문자열 비교를 strcmp로, 연결을 strcat으로 구분하는지, 표준 라이브러리와 외부 라이브러리의 설치 여부를 뒤집지 않았는지, 사용하지 않는 힙 객체를 제거하는 모듈을 Garbage Collector로 고르는지, System.out에 printing 메서드가 없다고 판정하는지, Cobol을 스크립트 언어에서 빼는지에서 갈린다.
대표 기출 3문항
Java에서 사용되는 출력 함수가 아닌 것은?
System.out.print( )
System.out.println( )
System.out.printing( )
System.out.printf( )
정답과 해설 보기
정답 ③ · Java 표준 출력 메서드가 아닌 것을 찾는 문제이다. System.out 클래스에는 print, println, printf 세 가지 출력 메서드가 존재한다.
Java의 표준 출력 클래스 System.out에는 printing 메서드가 존재하지 않는다.
C언어에서 문자열을 정수형으로 변환하는 라이브러리 함수는?
atoi( )
atof( )
itoa( )
ceil( )
정답과 해설 보기
정답 ① · C언어에서 문자열을 정수형으로 변환하는 표준 라이브러리 함수를 고르는 문제이다. atoi는 ASCII to Integer의 약자로 stdlib.h에 정의된 함수이며 문자열을 정수로 변환한다.