[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. 실전 미션 – 포털 접근 제어 로직 구성하기
조건:
- 로그인 성공해야 함
- 회원 등급이 "staff"면 내부 공지사항 열람 가능
- "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단계에서는 조건문 + 반복문을 결합해,
로그인 시도 횟수 제한 같은 실전 시나리오를 구현합니다.