💡 AI 인사이트

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

댓글 커뮤니티

쿠팡이벤트

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

검색

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

    미니프로젝트 업무일지생성기 | ✅저자: 이유정(박사)

    프로젝트 코드명: WorkLogCard_PY_v2 프로젝트 유형: 업무일지 생성기

    코드명: WorkLogCard_PY_v2
    사용언어 Python: PY
    버전 번호 : v2
    

    🖥️ 프로젝트 개요

    사용자로부터 작성일자, 담당업무, 업무내용을 입력 받아 문자열 
    가공을 통해 업무일지를 출력합니다. 문자열 슬라이싱, 대소문자 처리, 
    공백 제거, 문자열 길이 구하기, 포맷 정리 등을 통해 콘솔에서 깔끔한 
    업무일지를 생성합니다.
    

    ◽ 프로젝트를 통해 적용되는 내용:

    • 문자열 연결 (+, f-string)
    • 슬라이싱과 인덱싱
    • 문자열 길이 측정 (len())
    • 이스케이프 문자 (\n, \t)
    • 여러 줄 문자열 출력 ("""...""")
    • 문자열 메서드: strip(), capitalize(), [:n]
    • IndexError 예외 방지 처리

    📄 기능 요구사항 (Functional Requirements):

    • FR-01: 작성일자, 담당업무, 업무내용을 사용자로부터 입력 받는다.
    • FR-02: 업무내용이 20자 이상이면 앞의 20글자까지만 출력한다.
    • FR-03: 담당업무는 첫 글자만 대문자로 출력한다.
    • FR-04: 업무일지 카드 형식으로 보기 좋게 출력한다.

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

    • 줄바꿈과 탭으로 보기 좋은 출력 구성
    • 업무내용과 담당업무의 문자열 길이 출력 포함
    • 입력 문자열에 불필요한 공백 제거 (strip())
    • IndexError나 출력 오류 방지

    🔀 작업 가이드

    1️⃣ 사용자 입력 처리

    date = input("업무 작성일을 입력하세요 (예: 2025-05-06): ")
    task = input("담당 업무를 입력하세요: ")
    content = input("업무 내용을 입력하세요: ")
    name = input("담당자 이름을 입력하세요: ")
    

    2️⃣ 문자열 처리

    • 앞뒤 공백 제거 (실수 방지용)
    • 문자열 가공

    🖨️ 출력결과 (예시)

    ==============================
    📋 업무일지 카드
    ------------------------------
    작성일자: 2025-05-06
    담당 업무: 장고개발
    업무 내용: 오늘 수행한 업무는 API 개발이였다.
    업무 내용 길이: 21자
    담당 업무 길이: 4자
    담당자 이름: 이유정
    ==============================
    

    ✅ 정답 코드 및 해설

    # 사용자 입력
    date = input("업무 작성일을 입력하세요 (예: 2025-05-06): ")
    task = input("담당 업무를 입력하세요: ")
    content = input("업무 내용을 입력하세요: ")
    name = input("담당자 이름을 입력하세요: ")
    
    # 문자열 처리
    task = task.strip()
    content = content.strip()
    task_len = len(task)
    content_len = len(content)
    
    # 최대 100자 까지만 자르기
    content = content[:100]
    
    content_wrapped = (
    	content[0:20] + "\n" +
    	content[20:40] + "\n" +
    	content[40:60] + "\n" +
    	content[60:80] + "\n" +
    	content[80:100] 
    ).strip()
    
    # 출력
    card = f"""
    ==============================
    📋 업무일지 카드
    ------------------------------
    작성일자: {date}
    담당 업무: {task}
    업무 내용: {content_wrapped}
    업무 내용 길이: {task_len}자
    담당 업무 길이: {content_len}자
    담당자 이름: {name}
    ==============================
    """
    
    print(card)
    
    
    
    TOP
    preload preload