Study/Java

왕초보를 위한!! 자바 기초 코드 해석 방법 1) 클래스

novxerim 2023. 6. 13. 23:17
public class DeviceController {
...
  public void sendShutDown() {
    DeviceHandle handle =getHandle(DEV1);
    if (handle != DeviceHandle.INVALID) {
      retrieveDeviceRecord(handle);
      if (record.getStatus() != DEVICE_SUSPENDED) {
        pauseDevice(handle); 
        clearDeviceWorkQueue(handle);
          closeDevice(handle); 
        } else {
          logger.log("Device suspended.Unable to shut down");
        }
      } else {
        logger. log("Invalid handle for: " + DEV1. toString());
        }
      }
  ...
}

위의 코드는 DeviceController 클래스의 일부분이다.

대부분 이름만 봐도 알아볼 수 있도록 네이밍을 하기 때문에, 차근차근 한줄 씩 읽다보면 알아볼 수 있다.

  1. DeviceController 클래스: 이 클래스는 장치를 제어하는 기능을 가지고 있는 컨트롤러 클래스이다.
  2. sendShutDown() 메서드: 이 메서드는 장치를 종료하는 기능을 수행한다.
  3. getHandle(DEV1) 호출: getHandle() 메서드를 호출하여 DEV1을 파라미터로 전달하여 DeviceHandle 객체를 반환한다. DeviceHandle은 장치를 다루기 위한 핸들(참조)이다.
  4. handle != DeviceHandle.INVALID 체크: handle이 DeviceHandle.INVALID와 같지 않은지 확인한다. 이는 getHandle() 호출이 유효한 핸들을 반환했는지 확인하는 것이다.
  5. retrieveDeviceRecord(handle) 호출: 유효한 핸들을 사용하여 장치 레코드를 검색한다.
  6. record.getStatus() != DEVICE_SUSPENDED 체크: record의 상태가 DEVICE_SUSPENDED와 같지 않은지 확인한다. 이는 장치의 상태가 일시 중지 상태인지 확인하는 것이다. retrieveDeviceRecord(handle) 메서드를 호출하여 장치 레코드를 검색하는 것인데, 이 레코드는 아마도 장치의 상태와 관련된 정보를 포함하고 있을 것이다.
    - retrieveDeviceRecord(handle) 메서드를 통해 장치 레코드를 검색한 후, 해당 레코드에는 장치의 상태와 관련된 정보가 저장되어 있을 것으로 예상되고, 이후 코드에서 record.getStatus()를 호출하여 장치의 상태를 가져왔을 것이다.
  7. pauseDevice(handle) 호출: 장치를 일시 중지시킨다.
  8. clearDeviceWorkQueue(handle) 호출: 장치의 작업 큐를 비운다.
  9. closeDevice(handle) 호출: 장치를 닫습니다.
  10. logger.log("Device suspended. Unable to shut down"): 장치가 일시 중지 상태이므로 종료할 수 없다는 메시지를 로깅합니다.
  11. logger.log("Invalid handle for: " + DEV1.toString()): 잘못된 핸들이 반환되었으므로 해당 핸들에 대한 오류 메시지를 로깅합니다.

위의 코드는 장치를 종료하기 위한 로직을 담고 있다. 유효한 핸들을 얻은 후 장치의 상태를 확인하고 일시 중지 상태가 아니라면 장치를 종료하는 절차를 수행한다. 그렇지 않은 경우, 해당 상태에 대한 메시지를 로깅한다.