데브허브 | DEVHUB | Elevator System - Low Level Design #technicalinterview #programming #lowleveldesignElevator System - Low Level Design #technicalinterview #programming #lowleveldesign
- 엘리베이터의 방향과 상태를 정의하는 열거형(Enums)을 사용하여 현재 상태를 명확히 파악합니다. 🚦
- 요청(Request) 클래스는 요청 층과 호출 방향을 저장하여 엘리베이터 스케줄링에 활용됩니다. 📝
- 엘리베이터(Elevator) 클래스는 새로운 요청을 추가하고 절대 거리에 따라 정렬하며,
step 메서드를 통해 한 층씩 이동하거나 문을 엽니다. ⬆️
step 메서드는 한 틱(tick) 상태 머신으로, 다음 목표 층으로 이동하거나 목표에 도달하면 문을 여는 동작으로 전환합니다. ⚙️
open_door 메서드는 문을 즉시 열고 닫는 동작을 처리하며, 실제 타이밍을 위한 플레이스홀더 역할을 합니다. 🚪
- 엘리베이터 컨트롤러(ElevatorController) 클래스는 여러 엘리베이터 인스턴스를 관리하며 전체 흐름을 제어합니다. 🧠
request_elevator 메서드는 현재 요청 층에 가장 가까운 엘리베이터를 찾아 배정합니다. 🎯
process_request 메서드는 명령 로그를 처리하고, 요청을 엘리베이터에 전달한 후 모든 엘리베이터 큐가 빌 때까지 step을 반복 호출합니다. 📜
- 엘리베이터의 현재 층, 상태, 방향을 반환하는 메서드를 제공하여 실시간 정보를 확인할 수 있습니다. ℹ️
- 구현된 코드는 모든 테스트를 성공적으로 통과하여 설계의 유효성과 안정성을 입증했습니다. ✅