[9단계] 조건문 중첩하기 – “로그인 후, 관리자만 접근 허용하기” 실전 분기 연습

📌 학습 목표

조건문 안에 조건문을 중첩하여 다단계 분기 로직을 구성하고, 사용자 유형에 따라 기능 접근 여부를 제어하는 실전 구조를 익힙니다.

파이썬 100단계, 9단계 조건문 중첩하기 썸네일
< 조건문 실전 분기 연습 >



1. 도입 – 로그인만 되면 끝이 아닙니다

로그인을 성공해도 모든 기능을 사용할 수 있진 않습니다.

- 일반 사용자는 내 정보만 보기 가능
- 관리자만 유저 목록, 시스템 설정 접근 가능

이걸 프로그래밍으로 표현하면?
“로그인”이라는 조건이 먼저,
그 안에서 “등급”에 따라 한 번 더 분기되는 구조가 필요합니다.

→ 이게 바로 조건문의 중첩입니다.



2. 중첩 조건문의 기본 구조


if 조건A:
    if 조건B:
        실행문1
    else:
        실행문2
else:
    실행문3
  • 외부 조건이 참일 때만 내부 조건을 평가
  • 실전에서는 권한 분기, 메뉴 조건 분기 등에 매우 자주 사용됩니다


3. 실전 예제 – 관리자만 접근 가능한 시스템


user_id = input("아이디를 입력하세요: ")
password = input("비밀번호를 입력하세요: ")

if user_id == "admin" and password == "1234":
    print("✅ 로그인 성공")

    is_admin = input("관리자 모드로 들어가시겠습니까? (yes/no): ").lower()

    if is_admin == "yes":
        print("🔐 관리자 메뉴에 접근합니다.")
    else:
        print("🙋 일반 사용자로 로그인되었습니다.")
else:
    print("❌ 로그인 실패. 다시 확인해주세요.")


4. 조건문 중첩이 필요한 순간은 언제인가요?

  • 인증 이후 → 권한 확인
  • 메뉴 선택 이후 → 세부 기능 분기
  • 상황에 따라 이중 조건 검증이 필요할 때 필수적


5. 실무 팁 – 중첩이 깊어질수록 구조를 정리하라

  • 너무 많은 if 중첩은 가독성을 해칩니다
  • elif, 함수 분리, return 또는 exit() 활용도 고려
  • 실무에서는 2~3단계 중첩까지가 적정선입니다


6. 실전 미션 – 포털 접근 제어 로직 구성하기

조건:

  1. 로그인 성공해야 함
  2. 회원 등급이 "staff"면 내부 공지사항 열람 가능
  3. "guest"는 접근 제한

user_id = input("아이디를 입력하세요: ")
password = input("비밀번호를 입력하세요: ")

if user_id == "guest" and password == "0000":
    print("🙋 게스트 로그인 완료")

    grade = input("회원 등급을 입력하세요 (staff/guest): ").lower()

    if grade == "staff":
        print("📢 내부 공지사항 열람 허용")
    else:
        print("🚫 접근 제한: 등급 불충분")
else:
    print("❌ 로그인 실패")


7. 다음 단계 예고

10단계에서는 조건문 + 반복문을 결합해,
로그인 시도 횟수 제한 같은 실전 시나리오를 구현합니다.