MIDTERM FAQ

Week 8: 중간고사 - 자주 묻는 질문

대전대학교 대학원 | 블록체인 기술 특론 | 연삼흠 교수

시험 관련 질문

Q1. 시험 범위는 어디까지인가요?

1주차부터 7주차까지 전 범위입니다. 각 주차별 핵심 주제:

  • 1주: 블록체인 개요 (분산원장, 탈중앙화, P2P)
  • 2주: 암호학 기초 (해시함수, 공개키 암호화, 디지털 서명)
  • 3주: 합의 알고리즘 (PoW, PoS, PBFT)
  • 4주: 블록체인 아키텍처 (블록 구조, 머클 트리, 포크)
  • 5주: 스마트 계약 기초 (Solidity, 변수, 함수, WIA-FIN-007)
  • 6주: 스마트 계약 심화 (mapping, struct, modifier, 이벤트, 가스)
  • 7주: 디지털 지갑 (HD 지갑, BIP-39, 니모닉, WIA-FIN-015)

Q2. 오픈북 시험인가요?

완전한 오픈북은 아닙니다. A4 용지 1장(양면)에 직접 정리한 개인 노트만 허용됩니다. 교재, 슬라이드, 전자기기는 사용할 수 없습니다. 노트를 작성하는 과정 자체가 훌륭한 복습이므로, 핵심 개념과 코드 패턴을 정리해 오세요.

Q3. 실기 시험은 어떻게 진행되나요?

실기 시험은 시험장 PC에서 Remix IDE 또는 WIA 시뮬레이터를 사용하여 진행됩니다:

  • Solidity 코드 작성, 컴파일, 배포, 테스트가 포함됩니다
  • 코드 오류 수정, 보안 취약점 분석 문제가 나올 수 있습니다
  • 컴파일 성공/실행 결과를 캡처하여 답안지에 첨부합니다
  • 시험 중 Remix와 WIA 시뮬레이터 외 다른 사이트 접속은 금지됩니다

Q4. 시험 시간은 얼마나 되나요?

총 90분입니다. 권장 시간 배분:

  • 객관식 15문항: 30분 (문항당 2분)
  • 서술형 10문항: 50분 (문항당 5분)
  • 실기 5문항: 40분 (문항당 8분)

시간이 부족할 수 있으므로, 아는 문제부터 먼저 풀고 어려운 문제는 나중에 돌아오세요.

Q5. 부분 점수가 있나요?

네, 서술형과 실기 문제에 부분 점수가 있습니다:

  • 서술형: 핵심 키워드를 포함하면 부분 점수 획득 가능
  • 실기: 코드가 컴파일되지 않더라도 올바른 로직이 있으면 부분 점수
  • 객관식: 부분 점수 없음 (정답 2점, 오답 0점)

모르는 문제도 반드시 답을 작성하세요.

Q6. 코딩 문법을 정확히 외워야 하나요?

완벽한 문법보다는 로직과 구조가 더 중요합니다. 예를 들어 세미콜론 하나가 빠졌다고 크게 감점하지는 않습니다. 하지만 핵심 키워드(require, modifier, event, emit, view, public 등)는 정확히 알아야 합니다. A4 노트에 자주 사용하는 코드 패턴을 정리해 오세요.

주차별 핵심 정리

Q7. 1~2주차 핵심 내용은?

1주차: 블록체인 개요

  • 블록체인 = 분산 원장 기술(DLT)
  • 핵심 특성: 탈중앙화, 불변성, 투명성, 합의
  • 퍼블릭/프라이빗/컨소시엄 블록체인 차이
  • 블록 = 트랜잭션 묶음 + 이전 블록 해시 + 타임스탬프

2주차: 암호학 기초

  • 해시함수: 일방향, 결정론적, 고정 길이 출력, 눈사태 효과
  • SHA-256: 256비트 출력, 비트코인에서 사용
  • 공개키 암호화: 개인키로 암호화/서명, 공개키로 복호화/검증
  • ECDSA: 이더리움의 디지털 서명 알고리즘
  • 타원곡선 암호화: secp256k1 곡선 사용

Q8. 3~4주차 핵심 내용은?

3주차: 합의 알고리즘

  • PoW: 해시 퍼즐 풀기, 높은 에너지 소모, 비트코인
  • PoS: 스테이킹 기반, 에너지 효율적, 이더리움 2.0
  • PBFT: 3f+1 노드 필요, 확정적 합의, 허가형 블록체인
  • 비잔틴 장애 허용: 1/3 미만 악의적 노드 감당
  • 51% 공격, Nothing at Stake 문제

4주차: 블록체인 아키텍처

  • 블록 구조: 헤더(이전 해시, 머클 루트, 난이도, 논스) + 바디(트랜잭션)
  • 머클 트리: 트랜잭션 무결성 O(log n) 검증
  • 노드 유형: 풀 노드, 라이트 노드, 아카이브 노드
  • 포크: 소프트 포크(하위 호환) vs 하드 포크(비호환)

Q9. 5~6주차 핵심 내용은?

5주차: 스마트 계약 기초

  • 스마트 계약: 자동 실행 프로그램, 불변, 투명
  • Solidity 기초: pragma, contract, 상태 변수
  • 데이터 타입: uint, int, address, string, bool, bytes
  • 함수 키워드: view, pure, payable
  • 가시성: public, private, internal, external
  • WIA-FIN-007: 감사 가능성, 접근 제어, 에러 처리

6주차: 스마트 계약 심화

  • mapping: 키-값 저장, O(1) 조회, 순회 불가
  • struct: 사용자 정의 타입
  • modifier: 함수 전/후처리, 접근 제어 패턴
  • event/emit: 블록체인 로그, indexed(최대 3개)
  • 가스 최적화: storage 캐싱, 변수 패킹, constant/immutable
  • enum: 상태 머신 패턴

Q10. 7주차 핵심 내용은?

7주차: 디지털 지갑

  • 지갑 = 개인키 관리 도구 (암호화폐를 보관하지 않음)
  • 핫 월렛(온라인, 편리) vs 콜드 월렛(오프라인, 안전)
  • HD 지갑(BIP-32): 마스터 시드에서 계층적 키 파생
  • BIP-39 니모닉: 12/24 단어, 2048 단어 목록, 체크섬 포함
  • BIP-44 경로: m/44'/60'/0'/0/0 (purpose/coin/account/change/index)
  • 키 관리: 니모닉 물리적 보관, 하드웨어 지갑, MPC
  • WIA-FIN-015: 키 암호화, 다중 인증, 자동 잠금, 백업

학습 전략

Q11. 가장 출제 비중이 높은 주차는?

모든 주차에서 균등하게 출제되지만, 5~6주차(스마트 계약)가 실기 문제와 겹치므로 상대적으로 비중이 높습니다. 특히 Solidity 코드 작성 능력이 실기 30점 전체에 영향을 줍니다.

Q12. WIA 표준도 시험에 나오나요?

네, WIA-FIN-007(스마트 계약)과 WIA-FIN-015(디지털 지갑)의 핵심 원칙이 서술형에 출제될 수 있습니다. 각 표준의 주요 원칙(5가지 정도)과 그 이유를 설명할 수 있어야 합니다. 세부 조항보다는 큰 원칙 중심으로 학습하세요.

Q13. 코드를 많이 외워야 하나요?

전체 코드를 외울 필요는 없습니다. 하지만 다음 패턴은 자유롭게 작성할 수 있어야 합니다:

  • 기본 계약 구조 (pragma, contract, constructor)
  • 상태 변수 선언과 함수 작성
  • modifier 정의 및 사용
  • event 정의와 emit
  • require를 활용한 입력 검증
  • mapping과 struct 활용

Q14. 이전 과제가 시험에 도움이 되나요?

매우 도움됩니다. 각 주차의 과제는 핵심 개념을 실습하도록 설계되었습니다. 특히:

  • HelloWorld 계약 확장 과제 (5주차) -> 실기 기본
  • 투표 DApp 과제 (6주차) -> 복합 계약 작성 능력
  • MetaMask 실습 (7주차) -> 지갑/키 관리 이해

과제에서 작성한 코드를 다시 한번 분석해 보세요.

Q15. 시험 결과는 언제 나오나요?

시험 후 약 1주일 이내에 성적을 공지합니다. 이의 신청 기간은 성적 공개 후 3일입니다. 서술형 및 실기 답안에 대한 개별 피드백은 수업 시간 또는 오피스 아워에 제공합니다.

Q16. A4 노트에 무엇을 적으면 좋을까요?

효과적인 노트 구성 추천:

  • 앞면: 1~4주차 핵심 개념, 합의 알고리즘 비교표, 블록 구조도
  • 뒷면: 5~7주차, Solidity 코드 패턴(modifier, event, mapping), BIP-39/44 경로, WIA 표준 핵심 원칙

표와 도식을 활용하면 더 많은 정보를 담을 수 있습니다. 글씨 크기를 줄이더라도 읽을 수 있는 정도로 작성하세요.

Q17. 시험에 영어 문제가 나오나요?

문제 자체는 한국어로 출제됩니다. 하지만 기술 용어(Solidity, mapping, modifier, event, BIP-39 등)는 영어 그대로 사용됩니다. 코드 작성도 당연히 영어입니다. 주요 기술 용어의 의미를 정확히 알고 있어야 합니다.

Q18. 서술형 답안 작성 팁이 있나요?

서술형 답안 작성 요령:

  • 두괄식으로 핵심 결론을 먼저 쓰고, 이유를 설명
  • 전문 용어를 사용하되 간결하게 설명
  • 비교 문제는 표로 정리하면 효과적
  • 코드 예시가 필요한 경우 의사코드(pseudocode)도 인정
  • 줄글보다 번호를 매긴 항목별 서술이 가독성이 높음

Q19. 실기 시험에서 Remix 사용법을 모르면 어떻게 하나요?

실습 시간에 Remix를 충분히 다루었으므로 기본 사용법은 알고 있어야 합니다. 시험 전 최소한 다음을 확인하세요:

  • 파일 생성 및 코드 작성
  • 컴파일러 설정 및 컴파일
  • Remix VM 배포
  • 함수 호출 및 결과 확인

시험 당일 도구 사용법에 대한 기본 안내는 제공하지만, 별도 교육 시간은 없습니다.

Q20. 시험 성적은 전체 성적에서 몇 %인가요?

중간고사는 전체 성적의 30%입니다. 전체 성적 구성:

  • 중간고사: 30%
  • 기말고사: 30%
  • 과제 및 실습: 25%
  • 출석 및 참여: 15%

중간고사를 놓치더라도 다른 영역에서 만회할 수 있지만, 가능한 한 최선을 다해주세요.