본문 바로가기
IT 이야기

방송통신대 파이썬프로그래밍기초 :: 14강. 실전 프로그래밍 2-1 &기말시험 예상기출문제(정답및 해설)

by bush 2026. 6. 5.
728x90
반응형
728x170

파이썬 기초 실전 프로젝트 2-1: 소프트웨어 개발 라이프사이클(SDLC)과 틱택토 게임 설계

지난 시간 텍스트 데이터 분석기 프로젝트에 이어, 오늘은 파이썬 프로그래밍 기초 '실전 프로젝트 2-1: 틱택토 게임 만들기'의 첫 번째 단계를 준비했습니다.

 

반응형

 

방송대파이썬프로그래밍기초

 

이번 강의에서는 단순히 코드를 작성하는 것을 넘어, 현업에서 대규모 소프트웨어를 만들 때 사용하는 소프트웨어 개발 라이프사이클(SDLC)의 개념을 배우고, 사용자의 돌발적인 행동에 반응하는 이벤트 기반 프로그래밍(EDP)과 게임의 핵심인 게임 루프의 구조를 이해하게 됩니다. 그리고 우리에게 친숙한 3x3 게임인 '틱택토(Tic Tac Toe)'를 파이썬으로 구현하기 위해 어떻게 요구사항을 정의하고 설계해야 하는지 한국방송통신대학교 컴퓨터과학과 정재화 교수님의 강의록을 바탕으로 핵심만 깔끔하게 정리해 드리겠습니다.

 

 

 

 

 

 

◆ 핵심 내용 요약

1. 소프트웨어 개발 라이프사이클 (SDLC)

고품질의 소프트웨어를 체계적으로 생산하기 위해 전체 개발 과정을 하나의 프로세스로 정의한 흐름입니다.

  1. PLANNING (계획): 비용, 기간, 자원 투입 계획 수립
  2. ANALYSIS (분석): 소프트웨어 기능/비기능 요구 정의 및 자료 수집
  3. DESIGN (설계): 구조, 데이터, 인터페이스, UI 정의
  4. IMPLEMENTATION (구현): 언어 선택, 코딩 규칙 정의, 프로그램 작성
  5. TESTING & INTEGRATION (테스트 및 통합): 예상 결과 유사 검증 및 오류 파악
  6. MAINTENANCE (유지보수): 프로그램 오류 수정, 새로운 요구 추가, 사용 환경 변화 반영

 

2. 프로그램 실행 흐름의 비교

  • 배치(Batch) 프로그램: 수집한 대량의 데이터를 특정 시간에 지정한 처리 방법에 따라 일괄적으로 처리하는 일반적인 실행 흐름입니다.
  • 이벤트 기반 프로그래밍 (EDP): 입력장치, 타이머 등에서 발생하는 사용자의 동작이나 사건(이벤트) 관점에서 실행 흐름이 제어되는 방식입니다. 실행 흐름을 미리 예측하기 힘든 환경(게임, GUI 등)에서 주로 사용됩니다.
    • 구동 구조: 이벤트 발생 장치 ➔ 이벤트 큐(저장 구조) ➔ 이벤트 루프 ➔ 이벤트 핸들러(실행 코드)
  • 게임 루프(Game Loop): 게임 프로그램에서 사용하는 독특한 흐름으로, 게임이 종료될 때까지 이벤트 검사 ➔ 이벤트 처리 ➔ 게임 업데이트 ➔ 화면 생성 ➔ 화면 업데이트 과정을 무한 반복합니다.

 

3. 실전 프로젝트: 틱택토(Tic Tac Toe) 게임 정의 및 규칙

  • 정의: 두 명의 플레이어가 $3\times3$ 판에 번갈아 가며 O와 X를 기록하여, 가로/세로/대각선 상에 일직선(3개)을 먼저 만드는 사람이 승리하는 게임입니다.
  • 승리 조건: 전체 8가지의 승리 상황(가로 3줄, 세로 3줄, 대각선 2줄)이 존재합니다.

 

4. 틱택토 프로그램 설계 요구사항

  • 게임판 표현: 2차원 리스트를 사용해 $3\times3$ 게임판을 생성하고 빈칸 기호(*)로 초기화합니다.
  • 플레이어: 사용자와 컴퓨터가 대결하며 각각 O와 X 기호를 사용합니다. (선공은 무작위 선택)
  • 입력 방식: 사용자는 행과 열의 좌표를 직접 입력하고, 컴퓨터는 빈칸 중 무작위(랜덤)로 선택합니다. (사용자가 "00"을 입력하면 게임이 즉시 종료됩니다.)
  • 게임 루프 검사: 매 턴마다 현재 플레이어의 승리 여부를 확인(8가지 방향 검사)하고, 승리자가 없고 게임판이 가득 차면 무승부로 처리 후 루프를 종료합니다.
300x250

 

◆기출문제 및 실전 예상 문제 5개

 

1. 소프트웨어 개발 라이프사이클(SDLC) 단계 중, 구조, 데이터, 인터페이스, UI를 구체적으로 정의하는 단계로 가장 적절한 것은?

 

① PLANNING (계획)

② ANALYSIS (분석)

③ DESIGN (설계)

④ IMPLEMENTATION (구현)

 

 

2. 실행의 흐름을 미리 예측하기 어려운 환경에서 사용되며, 마우스 클릭이나 키보드 입력 등 사용자의 동작(사건)을 중심으로 프로그램이 구동되도록 하는 프로그래밍 기법은 무엇인가요?

 

① 일괄 처리 프로그래밍 (Batch Programming)

② 이벤트 기반 프로그래밍 (Event Driven Programming)

③ 구조적 프로그래밍 (Structured Programming)

④ 객체 지향 프로그래밍 (Object Oriented Programming)

 

 

3. 게임 프로그램의 일반적인 실행 흐름을 제어하는 '게임 루프'의 단계를 순서대로 바르게 나열한 것은?

 

① 게임 초기화 ➔ 화면 생성 ➔ 이벤트 검사 ➔ 게임 업데이트

② 이벤트 검사 ➔ 게임 업데이트 ➔ 화면 업데이트 ➔ 게임 초기화

③ 이벤트 검사 ➔ 이벤트 처리 ➔ 게임 업데이트 ➔ 화면 생성 ➔ 화면 업데이트

④ 화면 생성 ➔ 화면 업데이트 ➔ 이벤트 처리 ➔ 게임 업데이트 ➔ 게임 초기화

 

 

4. $3\times3$ 격자판에서 진행되는 틱택토(Tic Tac Toe) 게임에서, 한 플레이어가 가로, 세로, 대각선 방향으로 자신의 기호를 일직선으로 채워 승리할 수 있는 총 상황의 가짓수는 몇 가지인가요?

 

① 6가지

② 8가지

③ 10가지

④ 12가지

 

 

5. 본 강의에서 설계한 파이썬 틱택토 게임의 규칙 및 요구사항에 대한 설명으로 올바르지 않은 것은?

 

① 게임판은 파이썬의 2차원 리스트 자료구조를 활용하여 구현한다.

② 사용자가 빈칸의 행과 열 좌표로 "00"을 입력하면 종료 요청으로 인식하여 게임을 종료한다.

③ 사용자와 컴퓨터 중 선공 플레이어는 무작위(랜덤)로 결정된다.

④ 컴퓨터는 승리 확률이 가장 높은 칸을 알고리즘으로 계산하여 최적의 위치에 기호를 표시한다.

 

728x90

◆정답 및 해설

  • 1 정답: ③
    • 해설: 소프트웨어 전체 구조, 데이터 구조, 사용자 인터페이스(UI) 등을 정의하는 단계는 DESIGN(설계) 단계입니다.
  • 2 정답: ②
    • 해설: 사용자의 동작이나 사건(Event)을 감지하고 처리하는 방식의 프로그래밍 기법을 이벤트 기반 프로그래밍(EDP)이라고 합니다.
  • 3 정답: ③
    • 해설: 게임 루프는 무한 반복하며 이벤트 검사 ➔ 이벤트 처리 ➔ 게임 업데이트 ➔ 화면 생성 ➔ 화면 업데이트의 순서로 실행 흐름을 이어 나갑니다.
  • 4 정답: ②
    • 해설: $3\times3$ 판에서 승리 조건은 가로 3개, 세로 3개, 대각선 2개로 총 8가지의 승리 상황이 존재합니다.
  • 5 정답: ④
    • 해설: 설계 요구사항에 따르면 사용자는 직접 입력을 통해 좌표를 선택하지만, 컴퓨터는 인공지능 알고리즘이 아닌 무작위(랜덤) 선택 방식을 사용하도록 설계되었습니다.

 

마무리 글

지금까지 "파이썬 프로그래밍 기초_14강_강의록_흑백.pdf"에 수록된 실전 프로젝트 2-1 내용을 함께 정리해 보았습니다.

우리가 자주 즐기던 단순한 규칙의 '틱택토' 게임 파일 하나를 만들더라도 백엔드에서는 전체 개발 프로세스(SDLC)에 맞춘 정밀한 설계와 무한히 반복하며 상태를 체크하는 '게임 루프' 구조가 필요하다는 점이 참 흥미롭지 않나요? 프로그래밍 실력을 키우기 위해서는 무작정 타이핑을 하기 전에 이번 시간처럼 구조와 요구사항을 명확히 설계하는 습관이 정말 중요합니다.

 

 

 

[이지스퍼블리싱] Do it! 점프 투 파이썬 2판/중학생도 첫날부터 실습하는 초고속 입문서 - 프로그

쿠팡에서 [이지스퍼블리싱] Do it! 점프 투 파이썬 2판/중학생도 첫날부터 실습하는 초고속 입문서 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 프로그래밍 언어 제품도 바로 쿠팡에서

www.coupang.com

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

 

 

 

 

 

728x90
반응형
그리드형

댓글