기말고사 정보
출처: 공식 공유 문서 (https://docs.google.com/document/d/13xeGJcCY3e5zZECffayQOxoC1zPaSvTPX7p9jj7ZYcw)
연습 문제: 기말 연습 문제 1세트
요약
- 일시
- 15주 차에 진행
- 기간 중 본인이 원하는 시각에 응시할 수 있음
- 시험 시간
- 총 2시간
- 분량
- 이 연습 문제에 나온 것보다 4~5배
- 따라서 이 연습 문제를 30분 정도에 풀 실력이 되어야 함
- (2시간 / 4 = 30분, 2시간 / 5 = 25분)
- 시험 중 참고 자료
- 어떤 참고 자료도 허용하지 않음
- 시험 방식
- 반드시 데스크탑 또는 노트북을 이용하여야 함
- 반드시 크롬 브라우저가 필요
- 반드시 컴퓨터에 연결된 웹캠(랩탑 내장 웹캠도 가능) 및 마이크 필요
- 주변에 다른 사람들이 없는 곳(예: 자신의 방)에서 시험을 치뤄야 함
- POCU 웹사이트(나의 POCU)에 접속하여 웹캠을 켜고 진행
유의 사항
- 반드시 크롬 브라우저를 사용해야 함
- 중간에 자리를 뜨면 0점 처리
- 응시 중 문제 캡쳐 등 풀이와 관계없는 비정상적인 행동 시 0점 처리
채점 기준
- 부분 점수는 최대 50%까지 부여됨 (예: 3점 짜리의 문제인 경우 최대 1.5점)
- 아주 사소한 실수는 감점되지 않음 (예: 오타, 코딩 표준 등)
- 연습이 충분히 안 되었다고 판단되는 경우 사소한 실수여도 감점될 수 있음 (예: 코드 끝에 세미 콜론을 붙이지 않는 경우 등)
- 제시된 코드를 다른 방식으로 작성하는 문제(예: for 문을 사용한 코드를 while 문을 사용해서 재작성할 것)에서 로직을 그대로 옮기지 않고 최종 결과만 같은 경우 감점될 수 있음
- 질문 안에 여러 하위 질문이 있는 경우, 답을 적어야 하는데 안 적거나 안 적어야 하는데 적을 경우 그 부분에 대해 감점
- 예:
- a) 컴파일 중에 오류가 발생하나요? (예/아니오)
- b) 런타임 중에 오류가 발생하나요? (예/아니오)
- c) 아무 오류도 없었다면 출력 값이 무엇인가요?
- 아무 오류가 없다고 생각해서 c)만 답하면, a) b)에서 감점
- 런타임 오류가 있다고 생각해서 b)만 답하면 a)에서 감점
- 오류가 있었는데 c)도 답하면 c)에서 감점
- 예:
- 특정 기능을 사용하지 않고 코드를 작성해야 하는 문제에서 그 기능을 사용한 경우는 점수 없음
- 제시된 코드의 문제를 해결하라 했는데 다른 문제를 만들거나 꼼수로 해결한 경우는 점수 없음
문제 유형 (총 3가지)
- 코드 읽기 (예: 코드를 실행하면 화면에 무엇이 출력되나요?)
- 코드 작성하기 (예: 복사 생성자를 작성하세요.)
- 어떤 개념에 대한 설명하기 (예: 다중상속을 피해야 하는 이유를 설명하세요.)
기말고사에 대비해서 공부해야 할 주제들
7주 ~ 13주에서 배운 내용
- 상속 vs 컴포지션
- 상속이 유리한 경우
- 컴포지션이 유리한 경우
- 깊은 상속의 문제
- has-a, is-a 관계
- 다형성(polymorphism)
- 늦은 바인딩, 이른 바인딩
- final 키워드
- Object의 다형적 메서드
- 추상 메서드, 추상 클래스
- 인터페이스
- 인터페이스와 다중 상속
- Java 어노테이션(annotation)
- Object의 clone() 메서드
- 인터페이스 vs 구현
- 결합도(coupling)
- 디자인 패턴
- 팩토리 메서드 패턴
- 빌더 패턴
- 랩퍼(wrapper), 어댑터 패턴
- 프록시 패턴
- 책임 연쇄 패턴
- 옵저버 패턴
- 예외(exception)
- checked 예외와 unchecked 예외
- 다양한 오류 상황 대처법
- 올바른 예외처리 방법
- SOLID 설계 정신
노트 매핑: 007-inheritance-vs-composition ~ 014-solid-design-principles 섹션 전체