본문 바로가기
카테고리 없음

함수란 무엇인가요?

by AI 세상, 2025. 4. 16.
반응형

이번 시간에는 프로그래밍에서 정말 중요한 개념인 함수(function)에 대해 배워볼 거예요. 아두이노에서는 이미 setup()loop()를 써봤죠? 사실 이것도 함수예요!

함수는 특정한 일을 처리하는 코드의 묶음이에요. 자주 반복되는 일을 함수로 만들어두면 코드가 훨씬 깔끔해지고 이해하기 쉬워져요.

왜 함수가 필요할까요?

예를 들어, LED를 3번 깜빡이는 코드를 여러 번 써야 한다면 어떻게 할까요? 매번 코드를 복사해서 붙여 넣는 것보다는, ‘LED 깜빡이기’라는 이름의 함수를 만들어두면 간단하게 해결돼요.

함수 만드는 방법

함수는 아래처럼 생겼어요:

void 함수이름() {
  // 여기에 함수가 하는 일을 적어요
}

여기서 void는 “돌려주는 값이 없다”는 뜻이고, 함수이름은 내가 정하는 이름이에요.

예시: LED 켜기 함수

void turnOnLED() {
  digitalWrite(13, HIGH);
}

이 함수는 13번 핀에 연결된 LED를 켜는 일을 해요. turnOnLED();라고 쓰면 이 코드가 실행돼요.

함수를 사용하는 전체 예제

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  blinkLED(); // 함수를 호출해요
  delay(2000); // 2초 쉬기
}

void blinkLED() {
  digitalWrite(13, HIGH);
  delay(500);
  digitalWrite(13, LOW);
  delay(500);
}

blinkLED()라는 함수를 만들어 LED를 한 번 깜빡이게 하고, loop() 안에서 그 함수를 호출해서 계속 실행하게 만든 거예요.

함수의 장점

  • 코드를 반복해서 쓰지 않아도 돼요.
  • 코드를 읽기 쉽게 만들어요.
  • 여러 부분에서 재사용 가능해요.
  • 버그가 생겨도 함수 안만 고치면 돼요!

함수 이름 짓는 팁

  • 동작을 설명하는 이름이 좋아요. 예: blinkLED(), readSensor()
  • 띄어쓰기는 안 되니 camelCase 또는 _를 써요. 예: turnOnLed(), turn_on_led()

매개변수가 있는 함수 (조금 심화)

조금 더 나아가면 함수에 값을 전달해서 더 유용하게 만들 수도 있어요. 이걸 매개변수(parameter)라고 해요.

void blinkNTimes(int count) {
  for (int i = 0; i < count; i++) {
    digitalWrite(13, HIGH);
    delay(300);
    digitalWrite(13, LOW);
    delay(300);
  }
}

이제 blinkNTimes(5); 라고 쓰면 LED가 5번 깜빡여요!

함수는 어떻게 실행되나요?

함수는 만들기만 해서는 실행되지 않아요. 함수를 '호출(calling)'해야 실제로 실행돼요. 호출은 함수 이름 뒤에 괄호 ()를 붙여서 해요.

turnOnLED();  // 함수 실행!

실습 아이디어

  • LED를 켜고 끄는 함수를 각각 만들어보기
  • 버튼을 누르면 특정 함수가 실행되게 해 보기
  • 센서값을 읽고 출력하는 함수를 만들어보기

마무리하며

이번 글에서는 함수를 만드는 방법과 사용하는 이유를 배웠어요. 앞으로는 복잡한 코드도 함수를 잘 활용하면 정리된 구조로 쉽게 작성할 수 있어요.

다음 시간에는 아두이노에서 아주 자주 쓰이는 delay() 함수의 정확한 의미와 활용법에 대해 자세히 배워볼 거예요!


 

 

 

반응형