이번에는 함수 지향적 프로그래밍에 대해 알아보겠습니다.프로그램의 규모가 커질수록 위에서 아래로 순차적으로 실행되는 절차적 코드만으로는 한계에 부딪히게 됩니다.코드의 길이가 길어지고, 동일한 로직이 중복되며, 유지보수가 매우 어려워지기 때문입니다.이러한 문제를 해결하기 위해 프로그램의 기능을 독립적인 단위로 나누는 함수 지향적 프로그래밍(Function-Oriented Programming)으로의 전환(리팩토링)이 필요합니다. 이번 글에서는 텍스트 기반 숫자 맞추기 게임의 절차적 코드를 함수 지향적 코드로 마이그레이션하는 과정과 그 과정에서 적용되는 핵심 개념들을 상세히 설명합니다.리팩토링에 앞서 기존의 코드를 올려드리겠습니다.Python - 절차적 프로그래밍1 : https://pabeba.tistory..
이번에는 '파이썬 함수의 종류와 활용법'에 대해 정리해 보려고 합니다.절차적 프로그래밍의 단점을 극복하고, 코드의 재사용성과 유지보수성을 극대화하기 위해 함수는 선택이 아닌 필수입니다.기본적으로 제공되는 내장 함수부터, 데이터를 다루는 고급 내장 함수,그리고 외부 패키지를 활용하는 방법까지 알아보겠습니다.1. 파이썬 내장 함수 (Built-in Functions)파이썬을 설치하면 별도의 설정 없이 바로 사용할 수 있는 강력한 함수들입니다.1) 파일 I/O (입출력) 함수파이썬 프로그램이 외부의 파일(리소스)과 통신하기 위해 사용합니다. 데이터의 연속된 흐름인 '스트림(Stream)'을 열고, '파일 포인터'를 반환받아 해당 파일을 제어하게 됩니다.목적: 파일 읽기, 쓰기, 생성, 추가 등 (텍스트 및 바..
오늘은 함수에 대하여 알아보도록 하겠습니다. 함수 아주 중요합니다.1. 파이썬 함수의 목적과 개요코드가 길어지고 복잡해지는 절차적 프로그래밍의 한계를 극복하기 위해 함수를 사용합니다.함수 도입의 목적재사용성 확보: 특정 기능을 하나의 단위로 묶어 같은 코드가 중복되는 것을 방지합니다.생산성 및 이익 향상: 코드 작성 및 디버깅 시간이 단축되어 개발 비용이 감소합니다.유지보수 용이: 기능 수정이 필요할 때 해당 함수 내부만 수정하면 되므로 관리가 직관적입니다.절차적 코드와의 관계절차적 코드는 흐름 제어가 복잡해지고 코드가 무한정 길어지는 단점이 있으나, 빠르고 간단한 로직 구현에는 여전히 유효합니다.현대의 파이썬 프로그래밍은 함수(또는 객체) 지향적 구조를 뼈대로 삼고, 그 내부에 절차적 코드를 적절히 혼..
지난 포스팅에서 게임의 기본 설정(게임 제목, 플레이어 이름 입력)과 UI 구성을 마쳤습니다. 이번에는 본격적인 게임의 알맹이라고 할 수 있는 난수 생성, 사용자 입력 유효성 검사, 정답 판별, 그리고 재시작 로직(Stage 4 ~ Stage 7)을 완성해 보겠습니다. 절차적 프로그래밍에서는 중첩된 반복문(while)과 조건문(if)을 어떻게 제어하고 탈출하는지가 핵심입니다.단계별로 코드를 어떻게 발전시키는지 세세하게 살펴보겠습니다. Stage 4: AI 난수 생성 (게임 준비)요구사항본격적인 게임 진행 구간게임이 시작되면 AI가 랜덤하게 1난수 함수 이용. randint()게임 1회당 1번만 생성게임을 시작하면 AI가 플레이어가 맞춰야 할 1부터 100 사이의 임의의 숫자(난수)를 생성해야 합니다.im..
이번에는 절차적 프로그래밍에 대하여 공부해 보겠습니다. 간단한 게임을 만들 겁니다. 굉장히 재밌겠죠! 절차적 프로그래밍(Procedural Programming)은 물이 위에서 아래로 흐르듯 순차적인 처리를 중요시하는 프로그래밍 기법입니다.단, 무조건 일직선으로만 코드가 실행되는 것은 아니며, 조건문(if)과 반복문(while, for)이라는 '흐름 제어'를 통해 로직을 유연하게 통제합니다. 파편화된 파이썬 기초 문법(변수, 타입, 연산자, 흐름 제어, 입출력 함수)을 하나로 통합하여 실질적인 목적을 가진 프로그램을 작성해 보겠습니다. 구현할 내용은 터미널(콘솔) 환경에서 동작하는 머드(MUD) 게임 스타일의 '숫자 맞추기 게임'입니다.컴퓨터가 1부터 100 사이의 임의의 난수를 생성하면, 플레이어가 힌..
이전 시간에는 지정된 횟수만큼 반복하는 for문에 대해 알아보았습니다.하지만 실제 프로그램을 짜다 보면 단순히 반복만 하는 것이 아니라, "특정 상황에 도달하면 반복을 완전히 멈춰라!" 혹은 "이번 순서는 건너뛰고 다음으로 넘어가라!" 같은 세밀한 조작이 필요해집니다.오늘은 반복문의 흐름을 내 마음대로 쥐락펴락할 수 있는 제어문(break, continue, else)과, 무한 반복이 필요할 때 사용하는 while문에 대해 자세히 정리해 보겠습니다.1. 반복문을 완전히 탈출하는 breakbreak는 이름 그대로 자신을 감싸고 있는 가장 가까운 반복문 하나를 부수고(탈출) 밖으로 나가는 역할을 합니다.통상적으로 if 조건문과 결합하여 "어떤 조건을 만족했을 때 그만해!"라는 용도로 많이 쓰입니다.# 1. ..