기말고사 정보

출처: 공식 공유 문서 (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주에서 배운 내용

  1. 상속 vs 컴포지션
    • 상속이 유리한 경우
    • 컴포지션이 유리한 경우
    • 깊은 상속의 문제
    • has-a, is-a 관계
  2. 다형성(polymorphism)
    • 늦은 바인딩, 이른 바인딩
    • final 키워드
    • Object의 다형적 메서드
  3. 추상 메서드, 추상 클래스
  4. 인터페이스
    • 인터페이스와 다중 상속
    • Java 어노테이션(annotation)
    • Object의 clone() 메서드
  5. 인터페이스 vs 구현
    • 결합도(coupling)
  6. 디자인 패턴
    • 팩토리 메서드 패턴
    • 빌더 패턴
    • 랩퍼(wrapper), 어댑터 패턴
    • 프록시 패턴
    • 책임 연쇄 패턴
    • 옵저버 패턴
  7. 예외(exception)
    • checked 예외와 unchecked 예외
    • 다양한 오류 상황 대처법
    • 올바른 예외처리 방법
  8. SOLID 설계 정신

노트 매핑: 007-inheritance-vs-composition ~ 014-solid-design-principles 섹션 전체