관리 메뉴

데브로맨스

【 PYTHON 】 실습 - 직원 정보 데이터 만들어보기 본문

>
카테고리 없음

【 PYTHON 】 실습 - 직원 정보 데이터 만들어보기

데브로맨스 2026. 1. 19. 21:26
반응형

Python 기초 문법 - 데이터 다루기

실습: 직원 정보 데이터 만들어보기

학습 목표

본 실습을 통해 다음 내용을 익히게 됩니다:

  • 사전(Dictionary)과 리스트(List)를 사용한 복합데이터 구조 이해
  • 실제 업무에서 자주 쓰이는 직원정보 관리 방법
  • 데이터 생성 → 조회 → 수정의 기본 CRUD 작업
  • 실무형 코드 스타일 적용

왜 직원 정보 데이터가 중요한가?

직장에서 사용하는 인사관리시스템, 급여명세서, 팀 배정 등 거의 모든 HR 업무에 직원정보가 필요합니다. 이를 프로그래밍으로 표현하면 다음과 같은 특징이 있습니다:

특성 예시
다양한 항목 이름, 부서, 연령, 급여 등
일대일 대응 "홍길동"이라는 사람은 하나의 정보셋만 가져야 함
복수 데이터 관리 100명 이상의 직원이 존재함

데이터 구조 설계

Python에서는 다음과 같은 자료구조를 결합해 복잡한 데이터를 만들 수 있습니다:

# 직원 정보 템플릿(데이터 틀)
employee_template = {
    "id": "",          # 고유 식별자
    "name": "",        # 이름
    "department": "",    # 소속 부서
    "position": "",    # 직책
    "salary": 0.0,     # 연봉(수치형)
    "is_active": True  # 근무 여부(논리형)
}

# 실제 데이터 예시
employee1 = {
    "id": "E1001",
    "name": "김지원",
    "department": "개발팀",
    "position": "SE",
    "salary": 65000000,
    "is_active": True
}

: 사전(Dictionary)은 "레이블:값" 쌍으로 데이터를 저장하는 방식입니다. 이는 실제 노트에 항목을 메모해두는 것과 같죠.

실습: 직원 정보 데이터베이스 생성

기본 데이터셋 만들기

# 빈 직원 목록 초기화
employees = []

# 샘플 데이터 추가
employees.append({
    "id": "E1001",
    "name": "박지현",
    "department": "개발팀",
    "position": "프론트엔드 개발자",
    "salary": 72000000,
    "is_active": True
})

employees.append({
    "id": "E1002",
    "name": "최민지",
    "department": "디자인팀",
    "position": "UI 디자이너",
    "salary": 68000000,
    "is_active": True
})

employees.append({
    "id": "E1003",
    "name": "이서현",
    "department": "마케팅팀",
    "position": "MD",
    "salary": 62000000,
    "is_active": False
})

# 결과 확인
print("직원 수:", len(employees))

데이터 조회 방법

# 모든 직원 보기
print("=== 전체 직원 목록 ===")
for emp in employees:
    print(f"ID: {emp['id']}, 이름: {emp['name']}, 부서: {emp['department']}")
    print("- 연봉:", emp['salary'])
    print("- 근무 여부:", emp['is_active'])
    print("---")

# 특정 조건 조회(활성 상태만 보기)
print("\n=== 활동 중인 직원 ===")
for emp in employees:
    if emp['is_active']:
        print(f"✅ {emp['name']}({emp['department']})")

# ID로 특정 사람 찾기
def find_employee(emp_id):
    for emp in employees:
        if emp['id'] == emp_id:
            return emp
    return None

found = find_employee("E1002")
print("\n=== 조회 결과 ===")
if found:
    print(f"발견됨! {found['name']}, 부서: {found['department']}")
else:
    print("미발견")

데이터 수정 및 관리

정보 업데이트

# 직원 정보 수정
def update_employee(emp_id, new_data):
    for emp in employees:
        if emp['id'] == emp_id:
            # 기존 값과 새 값 병합
            emp.update(new_data)
            return True
    return False

# 실습
update_employee("E1001", {"salary": 75000000, "position": "팀장"})
update_employee("E1003", {"is_active": True})

# 변경 사항 확인
for emp in employees:
    if emp['id'] == "E1001" or emp['id'] == "E1003":
        print(f"_UPDATED_: {emp['name']}, 연봉: {emp['salary']}, 상태: {emp['is_active']}")

추가 기능 예시

# 비활성 직원 계산
inactive_count = sum(1 for emp in employees if not emp['is_active'])
print("휴직/퇴사자 수:", inactive_count)

# 연봉 순 정렬
sorted_by_salary = sorted(
    employees, 
    key=lambda x: x['salary'], 
    reverse=True
)

print("\n=== 고액 연봉자 ===")
for emp in sorted_by_salary[:3]:
    print(f"{emp['name']}: {emp['salary']:,.0f}원")

주요 기능 요약표

기능 사용 방법 설명
추가 append() 리스트 끝에 데이터 추가
검색 반복문/조건식 ID 또는 필터링 조건 사용
수정 update() 메서드 기존 항목 값 변경
삭제 remove() 또는 del 특정 항목 제거
필터링 리스트 컴프리헨션 조건에 맞는 데이터 추출
정렬 sorted() key 매개변수로 기준 설정

실습 과제

  1. 데이터 추가: 새로운 직원 2명을 employees 리스트에 추가해보세요
  2. 쿼리 연습: "개발팀"에 속한 직원만 추출하는 함수를 작성하세요
  3. 보고서 생성: 활동 중인 직원의 평균 연봉을 계산하는 프로그램을 만드세요
  4. 데이터 검증: ID 중복이 없는지 확인하는 유효성 체크 기능 추가
# 과제 예시 스타트코드
def add_new_employee():
    new_id = input("아이디 입력: ")
    # 중복 검사 로직 구현필요

add_new_employee()

핵심 팁 정리

항목 추천 사항
키 이름 영어 대시(camelCase 또는 snake_case 사용)
데이터 저장 관련된 정보를 하나의 사전에 묶기
상태 관리 True/False, "활성"-"비활성" 등 일관된 표현 사용
오류 처리 존재하지 않는 ID 접근 시 예외 처리 권장
반응형
Comments