25/07/19 기사 실기
1. Static 메서드 vs 상속
부모 클래스와 자식 클래스가 동일한 이름의 static 메서드를 가질 때,
Parent p = new Child();
후p.a();
를 호출하면 어떤 메서드가 실행되나요?
👉 정답: Parent
의 static 메서드가 실행됨 (정적 바인딩, 참조 타입 기준)
2. 서브넷 마스크 / 호스트 계산
IP주소가 192.169.1.132이고 서브넷 마스크가 255.255.255.192일 때, 해당 구간의 네트워크 주소와 구간에서 실제로 사용 가능한 호스트 개수는?
👉 정답:
- 네트워크 주소:
192.169.1.128
- 사용 가능한 호스트 수:
62
- /26
- 호스트 수 = 2^6 - 2 = 64 - 2 (네트워크 주소, 브로드캐스트 주소 제외) = 62
- 서브넷 간격은 64: 192.169.1.0, 192.169.1.64, 192.169.1.128, 192.169.1.192
- →
192.169.1.132
는192.169.1.128 ~ 192.169.1.191
구간에 속함
3. 세션 하이재킹 & 디자인 패턴
세션 하이재킹이란? 예방 방법은?
GoF 디자인 패턴 중 자주 출제되는 예는?
👉 예시 답변:
- 세션 하이재킹은 사용자의 세션 ID를 탈취하여 인증 없이 접근하는 공격
- 예방: HTTPS, 세션 타임아웃, HttpOnly 쿠키, 재인증 등
- 패턴 예시: 싱글톤, 팩토리, 전략 패턴 자주 출제
4. 자료구조 코드 해석
다음 큐 연산의 출력 결과는?
enqueue(1), enqueue(2), dequeue(), enqueue(3), dequeue(), dequeue()
👉 정답: 2 3
(1은 먼저 빠지고, 2 → 3 순으로 빠짐)
5. C 구조체 + 이중포인터 + define 초기화
#define N 3
이 있고 구조체 배열을 초기화할 때, 포인터가 가리키는 위치는?
👉 이중포인터가 배열의 첫 원소를 가리키고 있는지 추적할 수 있어야 함
6. 자바 람다식 + 예외 처리
👉 throw
는 예외 객체를 던짐, throws
는 예외를 위임함
7. DB 프로젝션 문제
테이블 하나만 있을 때 프로젝션을 수행하면 어떤 결과가 나오는가?
파이 기호 π 옆에 붙은 속성 이름이나 숫자의 의미는?
👉 정답: 특정 속성만 추출한 결과가 나옴. 숫자는 속성의 인덱스 또는 필드 번호일 수 있음 (문맥에 따라 다름)
8. SQL 파티셔닝
SQL 파티셔닝 종류 3가지?
해싱 분할, 범위 분할, 나머지 하나는?
👉 정답: 리스트 분할
9. 파이썬 set + 비트연산
len(set1 & set2)
는 무슨 의미인가?
👉 정답: 두 집합의 교집합 크기를 반환 (비트연산자 &
는 set에서 교집합 연산)
10. String, primitive vs reference
문자열을 primitive로 vs 객체 배열로 만들고 swap 할 때 출력 결과 비교하기
"=="
연산은 참조값 비교.equals()
는 내용 비교- primitive는 값 자체, reference는 주소 비교
11. 자바 오버로딩 vs 오버라이딩, 바인딩
오버로딩과 오버라이딩의 바인딩 시점 비교
- 오버로딩: 컴파일 타임
- 오버라이딩: 런타임
- 변수는 오버라이딩 안 됨, 메서드만 가능
12. 화이트박스 테스트 (분기 커버리지 포함)
분기 커버리지(Branch Coverage)란 조건문의 모든 참/거짓 분기가 적어도 한 번씩 실행되어야 함
👉 테스트 케이스 보고 순서 작성하기
12. 22번 포트
22번 포트는 네트워크에서 SSH (Secure Shell) 프로토콜에 기본적으로 할당된 포트로, SSH를 이용한 모든 원격 접속과 안전한 파일 전송(SFTP, SCP)에 사용된다.
- 원격 접속 시 일반적으로
ssh user@host
명령어가 22번 포트를 통해 통신한다. - 방화벽 설정 시 22번 포트를 열어줘야 SSH 접속이 가능하다.
13. set 교집합(&)
set(dict.values())
는 딕셔너리의 값들만 뽑아서 중복 없이 집합(set) 형태로 만드는 코드이다.- ()는 튜플 → 튜플끼리는 교집합 연산(&) 안됨.
- {}는 set
len(set((2, 4, 6, 8)) & set((2, 8, 99)))
- set((2, 4, 6, 8)) → {2, 4, 6, 8}
- set((2, 8, 99)) → {2, 8, 99}
- 교집합: {2, 8} → 길이 2