💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

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

검색

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    미니프로젝트2 | ✅저자: 이유정(박사)

    프로젝트 코드명: `AUTO_TXT_REPO_GEN_PY_v2
    프로젝트 유형: 복습을 위한 미니 프로젝트

    코드명: AUTO_TXT_REPO_GEN_PY_v2
    텍스트 리포트 자동(Automatic text report): AUTO_TXT_REPO
    Generator (생성기) 또는 Generation : GEN
    사용언어 Python: PY
    버전 번호 : v2
    

    🖥️ 프로젝트 개요

    본 프로젝트는 사용자의 이름, 나이, 이메일, 연락처 정보를 입력받아  
    자동으로 포맷팅된 텍스트 리포트를 생성하여 콘솔에 출력하는 Python 
    기초 문법 종합 실습 과제입니다.
    

    ◽ 이 프로젝트를 통해 다음 내용을 자연스럽게 적용합니다:

    • 입력/처리/출력의 흐름 제어
    • 변수 선언 및 네이밍 규칙 준수
    • 표현식, 문장, 주석, 자료형 변환, 산술/비교/논리 연산자 활용
    • 문자열 메서드(대소문자 변환, 공백 제거, 문자열 찾기, 문자열 자르기) 실습
    • 예외 처리(ValueError, IndexError) 및 안전한 입력 처리
    • 출력 포맷(f-string 및 format 함수) 설계

    최종 출력은 사용자의 입력값을 바탕으로 문자열 분석, 연산 결과, 형식 검증을 수행하여 조건문과 리스트 처리 기능을 포함한 구조화된 리포트 형태로 완성되어야 합니다.

    📄 기능 요구사항 (Functional Requirements)

    기능 ID .... 기능 설명 세부 내용
    FR-01 사용자 입력 수집 이름, 나이, 이메일, 휴대폰 번호 입력받기
    FR-02 입력값 분석 문자열의 길이, 구성 체크, 형식 분석 등 수행
    FR-03 문자열 처리 strip, upper, lower, split, find, count 등 사용
    FR-04 숫자 연산 처리 나이 기반 사칙연산, 제곱, 나머지 계산 등 포함
    FR-05 복합 대입 연산 사용 ............ 나이에 +1, *2 등의 누적 연산 적용
    FR-06 포맷팅 출력 format() 또는 f-string 활용하여 정보 요약 출력
    FR-07 예외 처리 구현 나이 입력이 정수가 아닐 경우 ValueError 처리, 인덱스 접근 시 IndexError 처리
    FR-08 요약 리포트 출력 처리된 결과를 카드 형태로 출력

    📄 비기능 요구사항 (Non-Functional

    항목 설명
    코드 스타일 주석 5줄 이상, 적절한 식별자명, 들여쓰기 준수
    가독성 줄바꿈, 시각적 구조화, 공백 정리
    에러 핸들링 ValueError, IndexError 최소 1회 처리
    출력 포맷 텍스트 기반 리포트 구조 유지 (구분선 포함)

    🔀 작업가이드

    1️⃣ 사용자 입력 처리

    • 이름, 나이, 이메일, 연락처를 입력받기
    • 나이는 정수형으로 형 변환 (int())
    • 이메일은 '@'를 기준으로 ID와 도메인 분리 처리 (split("@"))
    • 연락처는 문자열 그대로 입력받고 나중에 포맷 가공

    2️⃣ 데이터 가공

    • 이름을 모두 대문자로 변환 (upper())
    • 이름 길이 구하기 (len())
    • 이름의 첫 글자 추출 (name[0])
    • 나이에 5를 더한 값 계산 (user_age + 5)
    • 나이 제곱값 계산 (user_age ** 2)
    • 나이를 4로 나눈 몫과 나머지 계산 (//, %)
    • 이메일 ID 길이 계산 (len(id_part))
    • 연락처 문자열에서 국번과 개인번호 추출 (split("-") 또는 인덱싱)

    3️⃣ 데이터 검증 및 예외 처리

    • 나이 입력이 숫자가 아닐 경우 ValueError 처리
    • 이메일 입력에 '@'가 없을 경우 IndexError 처리

    4️⃣ 리포트 출력 구성

    • 구분선(=====) 삽입
    • 이름/나이/취미/이메일/연락처 요약 출력
    • 분석 결과(문자열 길이, 도메인, 나이 계산 결과 등) 포함
    • 사용자 친화적 메시지 추가 (예: "데이터 분석 완료!")

    5️⃣ 출력 포맷 구성

    • 출력 내용은 다음 양식을 참고하여 구성할 것:
    ===== 사용자 정보 리포트 =====
    
    이름: EUNICE
    이름 길이: 6자
    첫 글자: E
    
    나이: 205년 후 나이: 25살
    나이 제곱: 400
    나이를 4로 나눈 몫: 5, 나머지: 0
    
    이메일 도메인: naver.com
    이메일에 '@' 포함 여부: True
    이메일 ID 길이: 9자
    
    연락처: 010-1234-5678
    국번: 1234
    개인번호 끝자리: 5678
    
    💡 데이터 분석 완료!
    ============================
    
    TOP
    preload preload