소개
이 프로젝트에서는 LabEx 백엔드 코드에서 Lab 클래스를 구현하고 테스트하는 방법을 배우게 됩니다. Lab 클래스는 LabEx 플랫폼 내에서 실험을 나타내는 핵심 구성 요소입니다.
👀 미리보기
lab.tags=['python', 'data science', 'machine learning']
can user1 started the experiment: True
can user2 started the experiment: False
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- 중복된 태그가 lab 객체에 추가되지 않도록
insert_tag메서드를 구현하는 방법 - 인증된 사용자 및 멤버 사용자만 실험을 시작할 수 있도록, 사용자가 실험을 시작할 수 있는지 여부를 결정하는
can_be_started메서드를 구현하는 방법 Lab클래스가 예상대로 작동하는지 확인하기 위해 테스트하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 백엔드 시스템에서 핵심 클래스를 적절하게 구현하는 것의 중요성을 이해합니다.
- 클래스에 대한 깨끗하고 유지 관리 가능하며 버그 없는 코드를 작성하는 능력을 보여줍니다.
- 클래스의 기능을 테스트하고 검증하는 경험을 얻습니다.
Lab 클래스 구현
이 단계에서는 lab.py 파일에서 Lab 클래스를 구현하는 방법을 배우게 됩니다. 이 단계를 완료하려면 아래 단계를 따르세요:
- 선호하는 코드 편집기에서
lab.py파일을 엽니다. Lab클래스 정의를 찾습니다.__init__메서드를 다음 코드로 수정합니다:
def __init__(self, name, tags=None):
self.name = name
self._tags = [] if tags is None else [tags]
- 중복된 태그가 lab 객체에 삽입되지 않도록
insert_tag메서드를 구현합니다. 태그를 추가하기 전에self._tags목록에 해당 태그가 이미 존재하는지 확인하여 이를 수행할 수 있습니다.
def insert_tag(self, tag):
"""Insert tags and check if the tag already exists"""
if tag not in self._tags:
self._tags.append(tag)
- 사용자가 실험을 시작할 수 있는지 여부를 결정하기 위해
can_be_started메서드를 구현합니다. 이 메서드는 사용자가 인증되었고 멤버인 경우True를 반환하고, 그렇지 않으면False를 반환해야 합니다.
def can_be_started(self, user):
"""Check if the user can start the experiment, only logged-in member users can start the experiment"""
if user.is_authenticated and user.is_member:
return True
else:
return False
lab.py파일을 저장합니다.
Lab 클래스 테스트
이 단계에서는 Lab 클래스가 예상대로 작동하는지 확인하기 위해 테스트합니다. 이 단계를 완료하려면 아래 단계를 따르세요:
- 코드 편집기에서
lab.py파일을 엽니다. Lab객체를 생성하고can_be_started메서드를 테스트하는 파일 하단의 코드를 찾습니다.- 다음 명령을 사용하여
lab.py파일을 실행합니다:
python lab.py
- 다음 출력을 관찰합니다:
lab.tags=['python', 'data science', 'machine learning']
can user1 started the experiment: True
can user2 started the experiment: False
이 출력은 Lab 클래스가 예상대로 작동하며 다음과 같은 동작을 나타냄을 확인합니다:
Lab객체는 중복 없이 예상된 태그를 가지고 있습니다.can_be_started메서드는 인증된 멤버인user1이 실험을 시작할 수 있지만, 인증되지 않은 비멤버인user2는 시작할 수 없음을 올바르게 결정합니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



