1. 소프트웨어 개발
- 대규모 소프트웨어 개발에 자원을 투입하여 초기에 예상한 결과물 구현
- 개발계획부터 폐기까지 전체적인 흐름을 체계화하여 고품질의 소프트웨어 생산을 위한 체계
1)개발과정
① SDLC(Software Development LifeCycle): 소프트웨어 개발 라이프사이클
소프트웨어 개발과정을 하나의 프로세스로 정의
- 계획(Planning) : 비용, 기간, 자원, 계획 수립
- 분석(Analysis) : SW기능/비기능, 요구정의 및 자료수집
- 설계 (Design) : 구조, 데이터, 인터페이스, UI정의
- 구현 (Implementation) : 언어선택, 코딩규칙정의, 프로그램 작성
- 테스트 (Test & Integration) : 요구반영, 예상결과 유사검증 , 오류파악
- 유지보수 (Maintenance) : 프로그램 오류수정, 새로운 요구추가, 사용환경변화 반영
② 프로그램 진행과정 (데이터 파일을 처리/가공후 정보 파일생성)
배치 프로세스 : 일괄적으로 모아놓은 대량의 데이터를 특정시간에 지정한 처리방법에 따라 처리
이벤트 : 프로그램에 의해 감지되고 처리될수 있는 동작이나 사건
③ 이벤트 기반 프로그래밍 (EDP: Event Driven Programming)
- 실행의 흐름을 예측하는 프로그래밍 기법이 GUI환경에서 사용
- 입력장치, 타이머, 프로그램 등으로부터 발생한 이벤트 관점에서 생각하는 방법
- 구동 구조
이벤트 생성 ( 이벤트 발생장치에 의해 유형이 서로 다른 이벤트 생성)
⇨ 저장 (이벤트 큐) ⇨ 이벤트 루프 (핸들러에 이벤트 생성 여부 확인 및 전달)
⇨ 실행 ( 이벤트 핸들러 )
예) 게임 실행 과정 ( 사용자가 게임 종료시 게임루프 종료 )
게임초기화 ⇨ 게임루프 ( 이벤트 검사 → 이벤트 처리 (이벤트 핸들러) → 게임 업데이트(데이터 갱신)
화면생성 → 화면 업데이트 )
2) Tic Tac Toe
- 2명의 player가 3x3판에 번갈아가며 O와 X를 기록하여 가로,세로,대각선 완성
① 규칙설정
- 각 플레이어는 기록되지 않은 빈칸에 자신의 기호표시
- 한 플레이어가 가로, 세로, 대각선을 자신의 기호로 채워 완성하면 승리
- 게임은 한 플레이어가 승리하거나 빈 칸이 남지 않아 비길때까지 지속됨
② 요구사항 : 개발시간, 관련 비용
- 게임 세부사항
- 게임 시작시 무작위로 시작할 플레이어 선택
- 플레이어 기호표시 : 사용자와 컴퓨터로 각각 O, X사용
- 플레이어 입력방법 : 입력할 빈칸의 행, 열 좌표를 입력하여 표시 (사용자 직접 입력, 컴퓨터 랜덤 선택)
- 게임종료 - 승리, 무승부 또는 종료요청 ( 사용자가 "00"입력 )
- 게임 표시방법 : 게임판을 텍스트로 출력
③ 설계
- 2차원 리스트를 사용하여 게임판을 생성, 빈칸으로 초기화 - 빈칸에 대한 지정한 기호(*)사용
- 게임판에 빈칸이 있는지 확인 - 게임판 전체를 확인하여 True/False 반환
- 플레이어 승리확인 - 8가지 승리상황에 대한 가능성 확인 (3개의 각 행/열+2개의 대각선)
- 게임판의 현재 상태출력
- 게임 시작 - 게임을 시작할 플레이어를 무작위로 선택
게임루프가동
- 게임판 현재상태 출력후 다음 플레이어가 빈칸 선택
- 플레이어가 선택할 빈칸의 위치(행과 열번호)입력 - 사용자는 입력, 컴퓨터는 무작위 행/열번호 선택
- 플레이어가 선택한 위치에 기호표시, 게임판 업데이트
- 플레이어 승리 확인 (승리 상황인 경우, 관련 메시지 출력 후 게임루프 종료)
- 게임판의 빈칸 학인 (게임판이 가득찬 경우, 무승부 메시지 출력 후 게임루프 종료)
- 게임 종료시 다시 게임루프 반복
3) 2차원 리스트
List
순서화된 값의 집합체를 저장할수 있는 데이터 타입
- 단일 식별자로 연속되는 저장공간 접근 수단제공
- 2차원 리스트는 두개의 접근 연산자를 사용하여 개별적인 값에 접근
리스트이름 [행위치][열위치]
① 2차원 리스트 구문형식
- 리스트 내부에 리스트가 정의, 2차원 리스트 생성시 원소가 결정된 상황
예) 도시간 거리를 이용한 2차원 리스트 생성
② 2차원 리스트 순회
- 각 차원을 순차적으로 순회화기 위해 2개의 반복구조가 중첩
- 전체 리스트 구조 (Distance) 생성
외부 for문을 통해 행을 만들고 내부 for문으로 1차원 리스트에 컬럼의 값을 추가한 후,
전체 구조(Distance)에 추가하여 2차원으로 구성
- 순회 : 중복 for문을 사용하여 행 별로 열의 값을 차례로 방문히여 처리가능
예) random함수를 이용한 2차원 리스트 생성과 순회
'스터디 > Python' 카테고리의 다른 글
5. 모듈과 파일 (0) | 2024.05.03 |
---|---|
4. 함수와 객체 (0) | 2024.05.02 |
3. 구조와 제어 (0) | 2024.04.21 |
2. 파이썬 Basic (0) | 2024.04.20 |
1. 정보 및 컴퓨터 구성 (0) | 2024.04.20 |