IT Tech/computer-science

함수(Function)와 메서드(Method)

Developer JS 2024. 10. 30. 17:21
반응형

제가 웹 어플리케이션 개발을 배우면서 가장 먼저 배운 언어는 Java입니다. 당연히 Java를 먼제 배워서 메서드(Method)에 익숙해져있었습니다. 한참이 지난 후에야 JavaScript를 배우면서 함수(Function)을 배우게 되었습니다.

 

그럼 그렇게 배우는 과정에서 들게 된 생각은 무엇이었을까요? 함수와 메서드는 같은 것이라는 생각입니다. 물론 우리 선생님들은 그렇게 가르치지 않으셨지만, 배우는 사람이 가르치는 사람이 말하는 모든 것을 소화할 수 있다면 누군가를 가르친다는 것으로 돈을 버는 일은 불가능 했을 것입니다. 

 

당연히 저는 가르침대로 이해하는 것이 아니라 그냥 제가 느낀대로 이해하게 되었고, 그 결과가 함수와 메서드의 차이가 도대체 무엇일까입니다.

 

같아 보이지만 같다고 할 수 없는 사이인 함수와 메서드에 대해서 알아보도록 합시다.

 

1. 함수(Function)

  • 정의: 특정 작업을 수행하는 코드 블록. 입력값(인자)을 받아 처리하고, 결과값을 반환할 수 있습니다.
  • 특징:
    • 독립적: 객체나 클래스에 속하지 않고 독립적으로 존재할 수 있습니다.
    • 재사용성: 여러 곳에서 호출하여 동일한 작업을 수행할 수 있습니다.

 

2. 메서드(Method)

  • 정의: 클래스나 객체에 속한 함수. 객체의 상태(속성)를 변경하거나, 객체의 행동을 정의합니다.
  • 특징: 
    • 종속적: 반드시 클래스나 객체에 속해 있어야 합니다.
    • 객체 지향적: 객체의 상태를 기반으로 동작을 수행합니다.

 

결국 메서드도 함수입니다. 그런데 함수와는 다릅니다. 특히 Java에서는 독립적인 함수가 존재하지 않습니다. 모든 함수가 클래스에 속해있기 때문에 함수는 메소드가 되는 것입니다.

 

반면에 JavaScript나 Python같은 언어에서는 각각 독립적인 함수를 선언할 수 있습니다. 중요해보이지 않지만, 중요한 함수와 메서드의 관계에 대해서 포스팅 해봤습니다. 재밌네요.

728x90
반응형

'IT Tech > computer-science' 카테고리의 다른 글

이진 파일(Binary File)이란 무엇일까  (0) 2024.03.06