학습 로그/Python3

D+8 [Team Porject] 팀플 전 브레인스토밍

goodjop79 님의 블로그 2026. 4. 10. 13:59

◇ 일자 : 2026년 4월 10일(금)
◇ 주제 : 프로그램 개발을 위한 현장 브레인스토밍
               및 함수의 이해
목표
     1. 틀리는 것을 두려워 하지 않게 된다
     2. 일상을 프로그래밍 하는 것을 습관화 한다
     3. 스스로 이해하지 못하는 기술에 자동완성을 사용할 생각에서 벗어나도록 한다
     4. 개발자는 최소 2년이상 생각하며 공부하고, 틀리더라도 직접 작성한다
     5. 랜덤 값, 로컬 시간 가져오는 함수 외 외장함수 사용은 금지한다
     6. 논리 구조와 순서도를 그리는 연습을 한다   * 문제해결 : "분석" --> "설계" --> "구현"

1. 현장 중심의 프로그램 기획 및 브레인스토밍

1.1 키오스크(Kiosk) 운영 현장 분석

단순히 책상 앞에 앉아 코드를 작성하는 것이 아니라, 실제 사용자가 제품을 사용하는 **현장(Field,메가커피)**에서 아이디어를 발굴하는 과정의 중요성을 학습

1.2 개발자를 위한 실무 Tip

  • 프로젝트 수정 : 새로운 개발 요소가 추가되어 프로젝트 전체에 영향을 미칠 경우, 개발자들과 협의(토의)가 필요
  • 개발기간 산정 :예상 개발 기간의 3배수를 실제 기간으로 설정해야 한다. 이는 단순 코딩뿐만 아니라 사용성 테스트, 오류 보완 및 수정 기간을 반드시 포함해야 하기 때문이다.
  • 납기 준수: 프로그램 개발에서 가장 중요한 신뢰 척도는 납기일을 준수하는 것이다.
  • 본질에 집중: 화려한 UI 뒤에는 결국 **문자열 처리, 입력 값 수신, 단계별 로직(Code)**만이 존재한다.
  • 역량 강화: 기술적 도구는 변해도 결국 개발자의 실력이 프로젝트의 성패를 결정한다.

2. 파이썬 함수의 이해 및 활용

2.1 함수의 의미

  함수는 특정한 작업을 수행하기 위해 독립적으로 설계된 코드의 집합이다. 반복되는 코드를 하나로 묶어 재사용성을 높이고
  프로그램의 구조를 파악하기 쉽게 만든다.

2.2 함수의 기본 구조 및 선언

파이썬에서 함수는 def 키워드를 사용하여 선언하며, 매개변수를 통해 외부 데이터를 함수 내부로 전달할 수 있다.

2.3 리턴값(Return Value)의 중요성

  • 개념: input() 함수가 사용자 입력을 받아 결과값을 돌려주듯, 모든 함수는 실행 후 그 결과를 호출자에게 반환해야 한다.
  • 목적: 함수가 정상적으로 동작했는지에 대한 결과값이나, 작업 중 발생한 실패 값을 리턴함으로써 다음 로직의 진행 여부를 결정하는 근거로 삼는다.
  • ※ 함수 실습문제 풀이

3. 결 론

3.1 핵심 개념의 내재화

     프로그래밍의 기초인 자료형, 조건문, 반복문, 함수는 머리로 이해하는 것을 넘어 손이 기억하도록 실습 문제를 반복 풀이해야 한다. 특히 현장 분석을 통해 로직을 설계하는 훈련이 병행되어야 함

3.2 자기주도 학습 전략

  • 반복 학습: 이해가 명확하지 않은 부분은 개념을 다시 검토하고 코드를 재작성한다.
  • 기록의 자산화: 이해되지 않는 부분이나 새롭게 배운 해결 방안은 개인 블로그에 정리하여 지속적으로 관리한다. 이는 개인 포트폴리오의 기초가 된다.

Python 문법키워드

<<Python Keywords : 파이썬 예약어, 문법키워드>>
1. 조건 및 흐름 제어 (로직의 방향 결정)
     if, elif, else : "만약 ~라면"을 판단할 때 사용. 프로그램의 "분기점"을 만들 때 필수
     for, while 반복문 : 리스트의 데이터를 하나씩 꺼내거나(for), 특정 조건이 만족될 때까지 반복(while)할 때 사용
     break, continue : 반복문을 중간에 멈추거나(break), 다음 순번으로 바로 넘어갈 때(continue) 사용
2. 데이터 및 값 (기본 상태)
    True, False : 참과 거짓을 나타내는 논리값
    None : "값이 없음" 또는 "비어 있음"을 나타낼 때 사용
    and, or, not : 여러 조건을 조합하거나 결과를 뒤집을 때 사용하는 논리 연산자
3. 함수 및 클래스 정의 (구조 만들기)
    def : 새로운 함수를 만들 때 사용 (가장 많이 보게 될 단어!)
    return : 함수의 결과값을 돌려줄 때 사용
    class : 객체 지향 프로그래밍의 핵심인 ''클래스''(""붕어빵 틀"")를 정의할 때 사용
    lambda : 이름이 없는 간단한 익명 함수를 한 줄로 만들 때 사용합니다.
4. 모듈 및 변수 관련
    import, from, as : 외부 라이브러리를 가져오거나(import), 특정 부분만 가져올 때(from), 혹은 이름을 별명으로 바꿀 때(as) 사용
    global, nonlocal : 함수 내부에서 외부 변수에 접근하거나 값을 수정할 때 사용
    del : 변수나 객체를 메모리에서 삭제할 때 사용
5. 예외 처리 (에러 대비)
    try, except, finally : 코드 실행 중 에러가 발생해도 프로그램이 멈추지 않게 막거나, 에러 발생 시 대처 방법을 적을 때 사용
    raise, assert : 강제로 에러를 발생시키거나(raise), 특정 조건이 맞는지 검사하여 틀리면 에러를 낼 때(assert) 사용
    (예) 키오스크에서 선택을 잘못 입력했을때 애러를 알려주는 것?????
6. 기타 특수 기능
    with : 파일을 열거나 리소스를 사용할 때, 사용 후 자동으로 닫아주기 위해 사용 (예: with open(...))
    async, await : 비동기 프로그래밍(동시에 여러 일을 처리하는 것 처럼 보이게 함)을 할 때 사용
    yield : 함수를 종료하지 않고 값을 바깥으로 하나씩 내보낼 때(제너레이터) 사용
    pass : 아무것도 하지 않고 빈칸으로 남겨두고 싶을 때(나중에 코드를 채울 용도 등) 사용

💡 언제 주로 많이 사용하나요?
    - 로그인 기능: if와 else를 사용하여 아이디/비번이 맞는지 체크할 때
    - 데이터 분석: for 문으로 수만 개의 데이터를 하나씩 검사하고, import로 pandas 같은 도구를 가져온다
    - 웹 크롤링: try와 except를 사용해 인터넷 연결이 끊겨도 프로그램이 죽지 않게 관리한다.
    - 파일 읽기: with open을 사용해 안전하게 메모장이나 엑셀 파일을 읽어옵니다
 

메가커피 키오스크는 배열, 입력순서, 반복, 결재수단 배열순, 알림창이 어떻게 구성되었나? 이벤트창 소스공개는?