본문 바로가기
기타

함수와 메소드(멤버 함수)

by 나이아카 2022. 5. 4.

 메소드와 함수... 자바를 처음 배울 때 클래스에 선언하는 코드들을 교수님은 메소드라 불렀었었습니다. 그리고 그 전에 C언어를 배울 때는 모든 조각낸 코드들을 함수라고 불렀었죠. 그리고 시간이 지나 보니, 어느덧 메소드와 함수라는 이름을 사용하는데, 이 둘을 잘 구분하고 있나? 싶은 생각이 들어서 간단하게 정리해보고자 합니다.


 

 함수란, 수학에서는 f(x)와 같이 특정 인풋을 통해 특정한 아웃풋을 도출해내는 것을 의미합니다. 위키백과에서는 아래와 같은 그림을 통해 함수를 정의하고 있습니다.

출처: 위키백과

 그렇다면 프로그래밍에서 함수는 무엇을 의미하는 걸까요? 코딩을 해 본 사람들은 대부분 알겠지만, 이미 충분히 함수를 이해하고 사용하고 있을 것 같습니다.

int main() { ... }

 언어를 제일 처음 배울 때 배웠던 메인함수입니다. 이는 메인, 그러니까 코드를 실행시켰을 때 기준점이 되는 함수를 의미합니다. 이를 잘 살펴보면 int 라는 output type이 존재하며, 파라미터를 통해 데이터를 함수에 전달합니다. 그리고 {} 안에서 무슨 일이 벌어지는지는 모르지만, int 라는 type의 결과값을 return 해줄 것이라는 것을 우리는 알고 있습니다.

 이처럼 Input(parameter)을 통해 Function({} 안의 구현 코드)을 동작시켜 Output(return 값)을 도출시키는 것을 함수라고 부른다는 것을 알 수 있습니다.

 

 객체 지향 프로그래밍(OOP)에서 class는 데이터를 저장하고 있을 뿐 아니라, 그 데이터의 가공 및 응용을 위한 여러가지 기능들을 같이 제공하곤 합니다. 그리고 이 클래스 내부에 데이터를 사용하고 응용하거나 기능을 이용하기 위한 함수가 존재하는데, 이를 메소드라고 정의합니다. 이 메소드는 멤버 함수라고도 불리는데, 이를 통해 class에 종속된 함수라는 의미를 지니고 있음을 유추해볼 수 있습니다.


 간단하게 포스트되는 글이라서 조금 어색한 느낌이 드는데, 이 두가지를 분류해서 보는데 여러가지 차이점이 많지만, 가장 명확하게 분류할 수 있는 것은 위와 같은 형태인 것 같습니다.

'기타' 카테고리의 다른 글

가볍게 보는 아키텍처 vs 디자인 패턴  (0) 2024.07.11
프로퍼티, 그리고 위임  (0) 2022.10.26
클라우드 컴퓨팅 서비스란?  (0) 2022.04.13
해시 함수?(feat.computer science)  (0) 2021.06.17
JSON과 GSON  (0) 2021.01.26

댓글