과제와 프로젝트를 쉬지 않고 진행하면서 지난달 초에 지원했던 컴퓨터 공학 실기 시험이 생각났습니다. 날짜를 확인하니 오늘이라니… 어제 확인하니 배불리 먹고 4시간 정도 공부하고 시험을 봤다.
시험 후에 나는 확실히 많이 알지 못합니다. , SQL 수업을 들었지만 많이 기억이 나지 않습니다. 문제들을 대충 봐서는 2~3일만 해도 합격할 정도로 쉬웠던 것 같은데… 하…
20문항당 5점 만점 기준으로 60점 이상을 통과했으니 8문항 미만이어야 하는데 이미 8문항은 틀린 것으로 보인다. 이러한 질문을 살펴보겠습니다.
1. 삼항 연산자 문제
연산자 우선 순위에 관해서는 꽤 약하다는 것을 알았습니다.
int a = 32;
int b = (a++ > 32) ? a + 32 : a + 64;
System.out.printf("%d", b);
a > 32가 먼저 나오므로 잘못된 것이고 a + 64가 b에 들어갑니다. 이 시점에서 b는 a++가 실행되는 위치에 따라 96에서 97 사이에서 선택됩니다.
나는 여기에 96을 썼다. 하지만 실제로는 97로 나옵니다. 이것은 ‘(a++>32)’가 동작하기 때문이고 a는 재사용되었으므로 재사용된 a에는 a++가 적용된다.
2. SQL 인덱스 문제
중복 없이 색인을 생성하려면 ‘CREATE’ 고유한 INDEX’ 명령입니다.
‘CREATE DISTINCT INDEX’는 테이블과 같은 줄 알고 썼습니다 ㅎㅎ
3. 로그의 종류
텔넷을 대체하기 위해 만들어졌으며 포트 22를 통해 응용 프로그램 또는 프로토콜을 일치시키는 데 문제가 있었습니다.
포트 22를 보고 SFTP를 작성했습니다. 텔넷 교체작동한다는 것 애플리케이션쓰여있다는 점에서 SSH적절한 답변인 것 같습니다.
4. SQL 문의 연산 순서
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY의 연산 순서를 정리하기로 되어 있었는데, 한때 GROUP BY-HAVING으로 사전 필터링된 테이블에서 WHERE 조건이 사용되었던 것이 기억났습니다. 그래서 저는 GROUP BY를 HAVING 조건으로 생각하고 WHERE를 여기에서 생각했습니다.
그러나 실제 작업 순서는 다음과 같습니다.
‘FROM > ON > JOIN > WHERE > GROUP BY > HAVING > SELECT > DISTINCT > ORDER BY’ ~였다
즉, 나는 완전히 반대로 썼다 …
5. DDL DML DCL 분류
이를 기억하며 DDL은 테이블과 같은 큰 영역, DML은 데이터와 같은 작은 영역, DCL은 컨트롤러로 기억했습니다.
CREATE, SELECT, UPDATE, DELETE였나요? 네 가지 중 DDL을 선택하는 것이었습니다.
CREATE(테이블 생성), SELECT(테이블 선택)로 선택됩니다. 그런데 잘 생각해보면 SELECT는 테이블이 아니라 컬럼을 선택했다. (테이블은 FROM에 의해 선택됩니다…)
※ DDL: 생성, 삭제, 수정, 다듬기…
DML: 선택, 삽입, 업데이트, 삭제…
DCL: 승인, 취소, 커밋, 롤백…
6. 데이터베이스 용어
속성이 관계에서 가질 수 있는 모든 값의 집합은 무엇입니까? 서면 답변이 있는 질문이었습니다.
정말 아무것도 몰라서 그냥 튜플로 작성해서 제출했는데 답은 이렇습니다. 도메인그것은 말한다.
※ 튜플: 하나의 레코드를 나타내는 줄
도메인: 속성이 취할 수 있는 동일한 유형의 모든 원자 값 집합.
7. 데이터 유형 바이트 크기
int a = sizeof(int) + sizeof(char);
printf("%d", a);
int가 4바이트인 것은 분명하지만 char는 몇 바이트인가를 생각하고 있었습니다.
사용되는 주요 언어는 Java이며 Java에서 char는 유니코드 값을 포함하며 크기는 2바이트입니다.
하지만 문어는 C라서 잘 모르겠습니다. 방금 Java에서 했던 것처럼 4 + 2를 6으로 제출했습니다.
C의 Char는 1바이트, 정답은 5~였다
위의 7가지 질문은 분명히 틀렸습니다.
대충 재현해 본 이슈가 19개인데 1개 빼고 다 기억이 나는데 마지막 이슈는 기억이 안나네요.
그렇다면 7+1=8이므로 실패하는 것인가? 라고 할 수 있지만 자신이 옳고 틀렸다고 생각하고 마지막 질문도 틀렸다면 자격이 없기 때문에 사실상 경계선이므로 틀렸다고 생각하는 것이 편합니다 .
틀릴 수 있는 것 중 하나는
‘ 프로그램 코드 -> ? -> Object Code -> Linker -> Execution Code’ 구조에서 무엇을 선택합니까? 들어간다.
잘 모르겠어서 목적코드는 asm이고 실행코드는 bin? 컴파일러를 작성해서 제출했는데,
따지고 보면 맞는 것 같긴 한데, 아닐 수도…
※ 정답으로 추정되는 문제
– (End-to-End, 흐름을 제어하는 OSI 계층): 전송 계층
– (물리적 설계 스키마): 내부 스키마
– (아이콘이나 이미지로 사용하기 쉽게…): GUI
– (pow(2, 셀(M_PI))) : 16
– (i%3==0&&i%7==0, 1<=i<=100에서 출력,) : 21, 42, 63, 84에서 출력
– (SELECT A.Name A.Number FROM A,B WHERE A.ID = B.ID AND B.KEY = ‘C’) : | 이름 | 번호 | 테이블 만들기
– (run(“3”) 실행 run(int a)? 실행 run(String a)?) : 문자열
– (i%3==0에서 중단) : –
– (UNIX에서 파일 내용 출력 명령어) : cat
– (네트워크를 관리하는 프로토콜): SNMP(SGMP, Ipv6, FTP, HTTPS, RARP도 있음)
– (Windows에서 잠금 단축키): Win+L(ock)
※ 알 수 없는 문제..