• Skip to primary navigation
  • Skip to main content

IoTmaker

사물인터넷에 대한 모든 것 여기서 해결하셔요!

  • 홈
  • 책:마이크로파이썬을 활용한 사물인터넷
  • 책:따라 하면서 배우는 사물인터넷
  • 온라인 교육 코스
  • 새로운 소식
  • 의견보내기
  • 내 수강정보
  • 로그인
  • 회원가입

AI 프롬프트 활용 3-7 : 마이크로파이썬 함수와 클래스 이름 잘 짓는 법

마이크로파이썬 > AI 프롬프트

함수와 클래스 이름 짓는 법

  프롬프트 영역으로 마우스를 옮기고 Copy 버튼을 누르면 클립보드에 프롬프트의 내용이 복사됩니다.
마이크로파이썬으로 코딩할 때 함수 이름과 클래스 이름을 잘 짓는 방법을 알려줘.

AI가 만든 결과

마이크로파이썬(MicroPython)에서 함수와 클래스를 작성할 때도, 일반 파이썬의 네이밍 컨벤션(PEP 8)을 기본적으로 지키는 것이 바람직합니다. 다만, 임베디드 환경에서 동작하므로 메모리와 코드 길이에 대한 제약이 있을 수 있으니, 이름을 지나치게 길게 쓰는 것은 피하는 것이 좋습니다. 아래는 함수 이름과 클래스 이름을 잘 짓는 방법에 대한 가이드입니다.


1. 함수 이름(FUNCTION NAMES)

1.1. snake_case 스타일

  • 파이썬에서는 함수 이름을 모두 소문자로 작성하고, 단어 사이에는 밑줄(_)을 사용하는 snake_case 표기를 권장합니다.
    예)
    • read_sensor_data()
    • setup_network()
    • calculate_crc()

1.2. 의미가 담긴 짧은 이름

  • 주요 동작을 설명하는 동사 + 대상 명사 형태로, 함수가 어떤 동작을 하는지 한눈에 알 수 있는 이름을 사용합니다.
    예)
    • init_display()
    • send_command()
  • 너무 긴 이름은 자제
    예) initialize_temperature_sensor_with_default_configuration() 보다는 init_temp_sensor() 정도로 축약.

1.3. 메모리·성능 제약 고려

  • 함수명이 길면 코드 사이즈가 불필요하게 커질 수 있습니다.
  • 짧되 모호하지 않도록, 주석을 통해 설명을 보충하는 방법을 사용하세요.
    예)
    def wr_sensor():
      """
      Write data to the sensor via I2C.
      """
      ...

1.4. 일관성 유지

  • 프로젝트 전반에 걸쳐 동일한 스타일을 유지해야 합니다.
    예)
    • get_data(), set_data(), reset_data() 식으로 동사+명사를 일관되게 구성
    • 센서와 관련된 함수라면 sensor_라는 접두사를 붙이는 등

2. 클래스 이름(CLASS NAMES)

2.1. PascalCase(UpperCamelCase) 스타일

  • PEP 8에서는 클래스를 정의할 때, 각 단어의 첫 글자를 대문자로 표기하는 ‘PascalCase’(혹은 UpperCamelCase) 방식을 권장합니다.
    예)
    • MyClass, SensorManager, NetworkHandler

2.2. 역할이 드러나는 이름

  • 클래스 이름만 보고도 해당 클래스가 어떤 역할을 하는지 알 수 있어야 합니다.
    예)
    • ButtonController, LedDriver, I2CCommunicator
  • 너무 구체적이거나 긴 이름은 피하세요.
    예) AutomaticTemperatureAndHumiditySensorManager 보다는 TempHumiditySensor 정도로 간결하게.

2.3. 모듈·패키지 구조와의 연관성

  • 클래스 이름은 모듈, 패키지 이름과 잘 어울리도록 짓습니다.
    예)
    • 모듈 network 안에 NetworkManager 클래스가 존재한다면 자연스럽게 매칭
  • MicroPython처럼 코드가 비교적 간결한 환경에서는 클래스나 모듈이 복잡해지는 것을 피하고, 적절히 분할하는 것이 중요합니다.

2.4. 상속·확장 시 일관성

  • 상속 관계를 고려해, 부모 클래스와 자식 클래스 이름에 유의하세요.
    예)
    • BaseSensor → TemperatureSensor, PressureSensor
    • DisplayDriver → OledDriver, LcdDriver

3. 코드 예시

아래는 MicroPython 환경에서 자주 볼 수 있는 센서 제어 관련 예시 코드입니다.

# sensor_manager.py

class SensorManager:
    """
    센서 초기화, 데이터 읽기 등을 담당하는 클래스
    """
    def __init__(self, i2c):
        self.i2c = i2c

    def init_sensors(self):
        """
        센서를 초기화하는 함수
        """
        # 센서 초기화 로직
        pass

    def read_temperature(self):
        """
        온도 센서 데이터 읽기
        """
        temp = 0
        # I2C 통신으로 센서 값 읽기
        return temp

    def read_humidity(self):
        """
        습도 센서 데이터 읽기
        """
        humidity = 0
        # I2C 통신으로 센서 값 읽기
        return humidity

def main():
    """
    메인 루프 예시
    """
    from machine import I2C
    i2c = I2C(0)

    sensor_manager = SensorManager(i2c)
    sensor_manager.init_sensors()

    temp = sensor_manager.read_temperature()
    print("Temperature:", temp)

    hum = sensor_manager.read_humidity()
    print("Humidity:", hum)

# main()가 직접 호출되지 않도록 하고, import 후에 호출하거나
# if __name__ == "__main__": 조건에서 호출하는 방식을 사용
  • 위 예시에서 클래스를 SensorManager로 명명하고, 함수는 snake_case로 작성했습니다.
  • 함수 이름을 init_sensors(), read_temperature() 등으로 하여, 동작을 직관적으로 표현했습니다.

4. 정리

  1. 함수 이름(Function Names)

    • 소문자와 밑줄(_)을 사용하는 snake_case
    • 기능을 짧고 명확하게 표현(동사+명사 조합 권장)
    • 너무 길지 않게, 필요한 설명은 주석으로 보충
  2. 클래스 이름(Class Names)

    • 각 단어의 첫 글자를 대문자로 하는 PascalCase
    • 클래스의 역할이 드러나는 간결한 이름
    • 상속·모듈과의 구조적 일관성 고려
  3. MicroPython 환경 특성 고려

    • 메모리와 코드 크기의 제약이 크므로, 불필요하게 긴 이름은 지양
    • 짧고 일관성 있는 이름을 짓고, 필요한 설명은 주석으로 보완
    • 전체 코드 구조를 단순화하여, 클래스나 함수가 너무 비대해지지 않도록 유지

이러한 원칙들을 지키면 MicroPython 환경에서도 가독성이 높고 유지보수하기 쉬운 코드를 작성할 수 있습니다.

Copyright © 2025 ·로그인