더북(TheBook)

Note ≡ 함수 선언 형식과 관련 용어 정리

함수(메서드) 관련 용어를 정리해 보겠습니다. 앞으로도 계속 다룰 내용이기에 한 번 정도 읽고 넘어갑니다.

 

public static void Main(string[] args) 
{

}

 

Main( ) 메서드 선언 형식: 메서드는 앞 코드와 구조가 같습니다. 메서드를 만들 때 사용하는 public, static, void는 다른 값으로 변경되어 서로 다른 형태로 보일 수 있는데, 이를 메서드 시그니처(signature)라고 합니다.

public: 메서드의 액세스 한정자(access modifier)를 나타냅니다. public이면 현재 메서드를 모든 클래스에서 사용 가능하고, private이면 현재 클래스에서만 사용 가능한 메서드를 만들 수 있습니다. 아직까지는 public을 생략한 채로 코드를 작성합니다.

static: static 키워드가 붙느냐(정적인 메서드) 붙지 않느냐(인스턴스 메서드)에 따라 그 의미가 다릅니다. 일단 지금까지는 모든 메서드에 static을 붙이고 있습니다. 뒤에서 클래스 만들기를 배우고 나서 static이 빠지는 형태의 함수를 다룰 것입니다.

void: 메서드의 반환 형식이 오는 자리이며, void 키워드는 반환값이 없다는 것을 나타냅니다. 이는 메서드 수행 결과 어떤 값을 반환하고자 할 때 반환하려는 데이터 형식을 의미합니다.

Main: 메서드 이름을 나타내며 영문 대문자로 시작합니다.

string[ ] args: 매개변수 영역으로, 메서드에 어떤 값을 넘겨줄 때 또는 넘겨받을 때 이를 잠시 보관해 놓는 그릇 역할을 하는 매개체가 되는 변수(배열)를 나타냅니다. 매개변수는 콤마 기호를 구분으로 0개 이상 둘 수 있습니다. Main() 메서드에서는 다른 메서드와 달리 string[] args를 사용하는데, 이는 다른 말로 명령줄 인수(command line arguments)라고 합니다. 예전 운영 체제인 도스(DOS) 시절에 주로 사용하던 방식으로, 어떤 실행 파일(EXE 파일)에 인수(argument) 값을 넘겨줄 때 넘어온 인수 값을 가리켜 명령줄 인수라고 합니다. 이를 C#에서는 Main() 메서드의 매개변수로 받아 사용합니다.

블록({ }): 메서드 실행 범위를 나타내며, 메서드 블록 내에서 선언된 변수는 해당 메서드가 종료되면 소멸합니다.

Note ≡ public 키워드

클래스를 만드는 코드와 함수를 만드는 코드 앞에는 public이 붙을 수도 있고 붙지 않을 수도 있습니다. 학습 내용상 현재까지는 둘 다 동일합니다. 굳이 신경 쓰지 않아도 됩니다. 책에서는 최소한의 코드로 보여 주려고 public을 생략하는 편입니다. 액세스 한정자인 public, private, protected 키워드 등은 뒤에서 자세히 다룹니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.